Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
# Project exclude paths
/out/
/out/
/.idea/
/tmpDB.db
/target/
19 changes: 15 additions & 4 deletions .idea/dataSources.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Binary file modified homework.db
Binary file not shown.
66 changes: 52 additions & 14 deletions task2/src/main/java/DBUtility.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,41 +18,70 @@ public class DBUtility {
*/


void AddPrinters(Statement stmt){
// TODO: 16.12.2019
void AddPrinters(Statement stmt) throws SQLException {
ArrayList<Printer> 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<String> selectExpensivePC(Statement stmt){
//todo
return null;
public ArrayList<String> selectExpensivePC(Statement stmt) throws SQLException {
ArrayList<String> 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;
}

/*
* Метод должен вернуть список id ноутов, скорость процессора
* которых выше чем 2500
*/

public ArrayList<Integer> selectQuickLaptop(Statement stmt) {
// TODO: 16.12.2019
return null;
public ArrayList<Integer> selectQuickLaptop(Statement stmt) throws SQLException {
ArrayList<Integer> 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<String> selectMaker(Statement stmt){
public ArrayList<String> selectMaker(Statement stmt) throws SQLException {
ArrayList<String> 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;
}

Expand All @@ -65,9 +94,18 @@ public ArrayList<String> 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;

}
Expand Down
10 changes: 5 additions & 5 deletions task2/src/test/java/DBTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -47,28 +47,28 @@ public void testTable() throws SQLException {
}

@Test
public void testExpensivePC(){
public void testExpensivePC() throws SQLException {
ArrayList<String> 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<Integer> 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<String> 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);
}
Expand Down
Binary file added task2/target/classes/A.class
Binary file not shown.
Binary file modified task2/target/classes/DBUtility.class
Binary file not shown.
Binary file added task2/target/classes/classWork/Ex1.class
Binary file not shown.
Binary file added task2/target/classes/classWork/Ex2.class
Binary file not shown.
Binary file added task2/target/classes/classWork/Wow.class
Binary file not shown.
Binary file modified task2/target/test-classes/DBTests.class
Binary file not shown.
Binary file modified task2/target/test-classes/HomeWorkLesson2.class
Binary file not shown.
10 changes: 5 additions & 5 deletions task3/task3.iml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.6.0-RC1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.6.0-RC1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.6.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.6.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.6.0-RC1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.0-RC1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.0-RC1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.6.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.4.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.0.0" level="project" />
</component>
Expand Down
10 changes: 5 additions & 5 deletions task4/task4.iml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.6.0-RC1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.6.0-RC1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.6.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.6.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.6.0-RC1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.0-RC1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.0-RC1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.6.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.4.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.0.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
Expand Down