diff --git a/.gitignore b/.gitignore
index 21b4487..a97d5a0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,5 @@
# Project exclude paths
-/out/
\ No newline at end of file
+/out/
+/.idea/
+/tmpDB.db
+/target/
\ No newline at end of file
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
index 70c42e6..fa6975e 100644
--- a/.idea/dataSources.xml
+++ b/.idea/dataSources.xml
@@ -5,7 +5,7 @@
sqlite.xerial
true
org.sqlite.JDBC
- jdbc:sqlite:C:\Users\Mikhail\IdeaProjects\Java3\homework.db
+ jdbc:sqlite:C:\Geekbrains\Java3\homework.db
file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.25.1/license.txt
@@ -20,9 +20,6 @@
true
org.sqlite.JDBC
jdbc:sqlite:$PROJECT_DIR$/tmpDB.db
-
-
-
sqlite.xerial
@@ -44,5 +41,19 @@
org.sqlite.JDBC
jdbc:sqlite:classwork.db
+
+ sqlite.xerial
+ true
+ org.sqlite.JDBC
+ jdbc:sqlite:C:\Geekbrains\Java3\homework.db
+
+
+ file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.25.1/license.txt
+
+
+ file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.25.1/sqlite-jdbc-3.25.1.jar
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_6_0_RC1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_6_0_RC1.xml
deleted file mode 100644
index f8bf2aa..0000000
--- a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_6_0_RC1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_6_0_RC1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_6_0_RC1.xml
deleted file mode 100644
index 4d72560..0000000
--- a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_6_0_RC1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_6_0_RC1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_6_0_RC1.xml
deleted file mode 100644
index 1d54e61..0000000
--- a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_6_0_RC1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_6_0_RC1.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_6_0_RC1.xml
deleted file mode 100644
index a5016bb..0000000
--- a/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_6_0_RC1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_6_0_RC1.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_6_0_RC1.xml
deleted file mode 100644
index a74d90f..0000000
--- a/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_6_0_RC1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/homework.db b/homework.db
index 255eaf1..7b7b3f4 100644
Binary files a/homework.db and b/homework.db differ
diff --git a/task2/src/main/java/DBUtility.java b/task2/src/main/java/DBUtility.java
index 0e67b06..dcc950d 100644
--- a/task2/src/main/java/DBUtility.java
+++ b/task2/src/main/java/DBUtility.java
@@ -18,22 +18,42 @@ public class DBUtility {
*/
- void AddPrinters(Statement stmt){
- // TODO: 16.12.2019
+ void AddPrinters(Statement stmt) throws SQLException {
+ ArrayList printers = new ArrayList<>();
+ Printer printer1 = new Printer(1012,"HP", "col", "laser", 20000);
+ Printer printer2 = new Printer(1010,"Canon", "bw", "jet", 5000);
+ Printer printer3 = new Printer(1010,"Canon", "bw", "jet", 5000);
+ printers.add(printer1);
+ printers.add(printer2);
+ printers.add(printer3);
+
+ for (Printer printer : printers) {
+ stmt.addBatch("INSERT INTO Printer (model, maker, color, type, price) VALUES (" + printer.getModel()
+ + ", '" + printer.getMaker() + "', '" + printer.getColor() + "', '" + printer.getType()
+ + "', " + printer.getPrice() + ");");
+ }
+ stmt.executeBatch();
}
- public void createPrinterTable(Connection con, Statement stmt){
- // TODO: 16.12.2019
+ public void createPrinterTable(Connection con, Statement stmt) throws SQLException {
+ stmt.execute("CREATE TABLE IF NOT EXISTS " +
+ "Printer (id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE " +
+ ", model INTEGER, maker TEXT, color TEXT, type TEXT, price INTEGER)");
+ AddPrinters(stmt);
}
/*
* Метод должен вернуть список уникальных моделей PC дороже 15 тысяч
*/
- public ArrayList selectExpensivePC(Statement stmt){
- //todo
- return null;
+ public ArrayList selectExpensivePC(Statement stmt) throws SQLException {
+ ArrayList models = new ArrayList<>();
+ ResultSet rs = stmt.executeQuery("select distinct p.model from pc p where p.price > 15000");
+ while (rs.next()) {
+ models.add(rs.getString("model"));
+ }
+ return models;
}
/*
@@ -41,18 +61,27 @@ public ArrayList selectExpensivePC(Statement stmt){
* которых выше чем 2500
*/
- public ArrayList selectQuickLaptop(Statement stmt) {
- // TODO: 16.12.2019
- return null;
+ public ArrayList selectQuickLaptop(Statement stmt) throws SQLException {
+ ArrayList ids = new ArrayList<>();
+ ResultSet rs = stmt.executeQuery("SELECT l.id from Laptop l where l.speed > 2500");
+ while (rs.next()) {
+ ids.add(rs.getInt("id"));
+ }
+ return ids;
}
/*
* Метод должен вернуть список производителей которые
* делают и пк и ноутбуки
*/
- public ArrayList selectMaker(Statement stmt){
+ public ArrayList selectMaker(Statement stmt) throws SQLException {
ArrayList ans = new ArrayList<>();
- // TODO: 18.02.2020
+ ResultSet rs = stmt.executeQuery("SELECT DISTINCT pr.maker from Product pr, (" +
+ "SELECT p.maker from Product p where p.type = 'PC' and p.type <> 'Laptop') p " +
+ "where pr.type = 'Laptop' and pr.maker = p.maker");
+ while (rs.next()) {
+ ans.add(rs.getString("maker"));
+ }
return ans;
}
@@ -65,9 +94,18 @@ public ArrayList selectMaker(Statement stmt){
* или сделать любым другим способом
*/
- public int makerWithMaxProceeds(Statement stmt){
+ public int makerWithMaxProceeds(Statement stmt) throws SQLException {
int result = 0;
- //todo
+ ResultSet rs = stmt.executeQuery("select max(m.sum) summ from (select sum(m.price) sum, p.maker from " +
+ "(SELECT pc.price, pc.model from PC pc\n" +
+ "UNION ALL\n" +
+ "SELECT l.price, l.model from Laptop l) m,\n" +
+ "(SELECT p.* FROM Product p GROUP by p.model) p\n" +
+ "where m.model = p.model\n" +
+ "group by p.maker) m");
+ while (rs.next()) {
+ result = rs.getInt("summ");
+ }
return result;
}
diff --git a/task2/src/test/java/DBTests.java b/task2/src/test/java/DBTests.java
index 64d94e4..fc47c76 100644
--- a/task2/src/test/java/DBTests.java
+++ b/task2/src/test/java/DBTests.java
@@ -19,7 +19,7 @@ public void starter() {
try {
util = new DBUtility();
Class.forName("org.sqlite.JDBC");
- con = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\Mikhail\\IdeaProjects\\Java31\\homework.db");
+ con = DriverManager.getConnection("jdbc:sqlite:C:\\Geekbrains\\Java3\\homework.db");
stmt = con.createStatement();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
@@ -47,28 +47,28 @@ public void testTable() throws SQLException {
}
@Test
- public void testExpensivePC(){
+ public void testExpensivePC() throws SQLException {
ArrayList list = util.selectExpensivePC(stmt);
list.sort(Comparator.comparing(o->o));
Assert.assertArrayEquals(new String[]{"2205", "2210"}, list.toArray());
}
@Test
- public void testQuickLaptop(){
+ public void testQuickLaptop() throws SQLException {
ArrayList list = util.selectQuickLaptop(stmt);
Collections.sort(list);
Assert.assertArrayEquals(new Integer[]{3, 7}, list.toArray());
}
@Test
- public void testMaker(){
+ public void testMaker() throws SQLException {
ArrayList list = util.selectMaker(stmt);
Collections.sort(list);
Assert.assertArrayEquals(new String[]{"Intel"}, list.toArray());
}
@Test
- public void maxCostTest(){
+ public void maxCostTest() throws SQLException {
int max = util.makerWithMaxProceeds(stmt);
Assert.assertEquals(140000, max);
}
diff --git a/task2/target/classes/A.class b/task2/target/classes/A.class
new file mode 100644
index 0000000..4bf1a1a
Binary files /dev/null and b/task2/target/classes/A.class differ
diff --git a/task2/target/classes/DBUtility.class b/task2/target/classes/DBUtility.class
index 8e43b51..b436bbf 100644
Binary files a/task2/target/classes/DBUtility.class and b/task2/target/classes/DBUtility.class differ
diff --git a/task2/target/classes/classWork/Ex1.class b/task2/target/classes/classWork/Ex1.class
new file mode 100644
index 0000000..97aab68
Binary files /dev/null and b/task2/target/classes/classWork/Ex1.class differ
diff --git a/task2/target/classes/classWork/Ex2.class b/task2/target/classes/classWork/Ex2.class
new file mode 100644
index 0000000..b35ec74
Binary files /dev/null and b/task2/target/classes/classWork/Ex2.class differ
diff --git a/task2/target/classes/classWork/Wow.class b/task2/target/classes/classWork/Wow.class
new file mode 100644
index 0000000..0de06f9
Binary files /dev/null and b/task2/target/classes/classWork/Wow.class differ
diff --git a/task2/target/test-classes/DBTests.class b/task2/target/test-classes/DBTests.class
index 8b582aa..231b0dc 100644
Binary files a/task2/target/test-classes/DBTests.class and b/task2/target/test-classes/DBTests.class differ
diff --git a/task2/target/test-classes/HomeWorkLesson2.class b/task2/target/test-classes/HomeWorkLesson2.class
index e372c08..29cb2c3 100644
Binary files a/task2/target/test-classes/HomeWorkLesson2.class and b/task2/target/test-classes/HomeWorkLesson2.class differ
diff --git a/task3/task3.iml b/task3/task3.iml
index 2a3c5ba..2b9ae0b 100644
--- a/task3/task3.iml
+++ b/task3/task3.iml
@@ -13,12 +13,12 @@
-
-
+
+
-
-
-
+
+
+
diff --git a/task4/task4.iml b/task4/task4.iml
index 2394831..d140331 100644
--- a/task4/task4.iml
+++ b/task4/task4.iml
@@ -11,12 +11,12 @@
-
-
+
+
-
-
-
+
+
+