Untitled

 avatar
unknown
plain_text
a year ago
12 kB
6
Indexable
1.

public class Main {
    public static void main(String[] args){
        Connection conn = null;
        String connectionString =
                "jdbc:oracle:thin:@//admlab2.cs.put.poznan.pl:1521/"+
                        "dblab03_students.cs.put.poznan.pl";
        Properties connectionProps = new Properties();
        connectionProps.put("user", "sbd151569");
        connectionProps.put("password", "sbd151569");
        try {
            conn = DriverManager.getConnection(connectionString,
                    connectionProps);
            System.out.println("Połączono z bazą danych");

            try (Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT z.nazwa, COUNT(p.id_prac) as liczba " +
                    "FROM pracownicy p " +
                    "JOIN zespoly z ON p.id_zesp = z.id_zesp " +
                    "GROUP BY z.nazwa")) {
                int suma = 0;
                while (rs.next()) {
                    suma += rs.getInt("liczba");
                    System.out.println(rs.getInt("liczba") + " w zespole " + rs.getString("nazwa"));
                }
                while (rs.next()) {
                    suma += rs.getInt("liczba");
                    System.out.println(rs.getInt("liczba") + " w zespole " + rs.getString("nazwa"));
                }
                System.out.println("Zatrudniono " + suma + " pracowników");
            } catch (SQLException ex) {
                System.out.println("Błąd wykonania polecenia: " + ex.getMessage());
            }


        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE,
                    "Nie udało się połączyć z bazą danych", ex);
            System.exit(-1);
        }

        try {
            conn.close();
            System.out.println("Rozłączono z bazą danych");
        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, "Nie udało się połączyć z bazą danych", ex);
        }
    }
}


2.

public class Main {
    public static void main(String[] args){
        Connection conn = null;
        String connectionString =
                "jdbc:oracle:thin:@//admlab2.cs.put.poznan.pl:1521/"+
                        "dblab03_students.cs.put.poznan.pl";
        Properties connectionProps = new Properties();
        connectionProps.put("user", "sbd151569");
        connectionProps.put("password", "sbd151569");
        try {
            conn = DriverManager.getConnection(connectionString,
                    connectionProps);
            System.out.println("Połączono z bazą danych");

            try (Statement stmt = conn.createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                 ResultSet rs = stmt.executeQuery("SELECT p.nazwisko, (p.placa_pod + COALESCE(p.placa_dod, 0)) as placa_calkowita " +
                         "FROM pracownicy p " +
                         "WHERE p.etat = 'ASYSTENT' " +
                         "ORDER BY placa_calkowita ASC")) {
                rs.first();
                System.out.println("Asystent, który zarabia najmniej: " + rs.getString("nazwisko") + ", zarabia " + rs.getDouble("placa_calkowita"));
                rs.absolute(rs.getRow() - 3);
                System.out.println("Trzeci najmniej zarabiający asystent: " + rs.getString("nazwisko") + ", zarabia " + rs.getDouble("placa_calkowita"));
                rs.last();
                rs.previous();
                System.out.println("Przedostatni najmniej zarabiający asystent: " + rs.getString("nazwisko") + ", zarabia " + rs.getDouble("placa_calkowita"));
            } catch (SQLException ex) {
                System.out.println("Błąd wykonania polecenia: " + ex.getMessage());
            }



        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE,
                    "Nie udało się połączyć z bazą danych", ex);
            System.exit(-1);
        }

        try {
            conn.close();
            System.out.println("Rozłączono z bazą danych");
        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, "Nie udało się połączyć z bazą danych", ex);
        }
    }
}



3. 

public class Main {
    public static void main(String[] args){
        Connection conn = null;
        String connectionString =
                "jdbc:oracle:thin:@//admlab2.cs.put.poznan.pl:1521/"+
                        "dblab03_students.cs.put.poznan.pl";
        Properties connectionProps = new Properties();
        connectionProps.put("user", "sbd151569");
        connectionProps.put("password", "sbd151569");
        try {
            conn = DriverManager.getConnection(connectionString,
                    connectionProps);
            System.out.println("Połączono z bazą danych");

            Statement stmt = conn.createStatement();

            int[] zwolnienia = {150, 200, 230};

            String[] zatrudnienia = {"Kandefer", "Rygiel", "Boczar"};

            for (int id : zwolnienia) {
                stmt.executeUpdate("UPDATE pracownicy SET zatrudniony = NULL WHERE id_prac = " + id);
            }

            for (String nazwisko : zatrudnienia) {
                stmt.executeUpdate("INSERT INTO pracownicy (id_prac, nazwisko, zatrudniony) VALUES (pracownicy_seq.NEXTVAL, '" + nazwisko + "', SYSDATE)");
            }

            stmt.close();

        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE,
                    "Nie udało się połączyć z bazą danych", ex);
            System.exit(-1);
        }

        try {
            conn.close();
            System.out.println("Rozłączono z bazą danych");
        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, "Nie udało się połączyć z bazą danych", ex);
        }
    }
}


4.  
conn.setAutoCommit(false);
        try(Statement stmt= conn.createStatement();
                ResultSet rs= stmt.executeQuery(
                       "SELECT NAZWA, PLACA_MIN, PLACA_MAX” +  “FROM ETATY");) {
            while(rs.next()) {
                System.out.println(rs.getString(1) + " "+ rs.getFloat(2) + " "+ rs.getFloat(3));
            }
           
            stmt.executeUpdate("INSERT INTO ETATY (NAZWA, PLACA_MIN, PLACA_MAX) VALUES ('OPERATOR', 500, 800)");
        } catch(SQLException ex) {
            System.out.println("Błąd wykonania polecenia: "+ ex.getMessage());
        }
        try(Statement stmt= conn.createStatement();
                ResultSet rs= stmt.executeQuery(
                         "SELECT NAZWA, PLACA_MIN, PLACA_MAX” + “FROM ETATY");) {
            while(rs.next()) {
                System.out.println(rs.getString(1) + " "+ rs.getFloat(2) + " "+ rs.getFloat(3));
            }
        } catch(SQLException ex) {
            System.out.println("Błąd wykonania: "+ ex.getMessage());
        }
        conn.rollback();
        try(Statement stmt= conn.createStatement();
                ResultSet rs= stmt.executeQuery(
                        "select nazwa, placa_min, placa_max " + "from etaty");) {
            while(rs.next()) {
                System.out.println(rs.getString(1) + " "+ rs.getFloat(2) + " "+ rs.getFloat(3));
               
                stmt.executeUpdate("INSERT INTO ETATY (NAZWA, PLACA_MIN, PLACA_MAX) VALUES ('OPERATOR', 500, 800)");
            }
        } catch(SQLException ex) {
            System.out.println("Błąd wykonania polecenia: "+ ex.getMessage());
        }
        conn.commit();
        try(Statement stmt= conn.createStatement();
                ResultSet rs= stmt.executeQuery(
                        "select nazwa, placa_min, placa_max " + "from etaty");) {
            while(rs.next()) {
                System.out.println(rs.getString(1) + " "+ rs.getFloat(2) + " "+ rs.getFloat(3));
            }
        } catch(SQLException ex) {
            System.out.println("Błąd wykonania polecenia: "+ ex.getMessage());
        }

5.

String [] nazwiska={"Woźniak", "Dąbrowski", "Kozłowski"};
int [] place={1300, 1700, 1500};
String []etaty={"ASYSTENT", "PROFESOR", "ADIUNKT"};

PreparedStatement pstmt = null;
try {
    pstmt = conn.prepareStatement( "INSERT INTO pracownicy(id_prac, nazwisko, placa_pod, etat) VALUES ((SELECT MAX(id_prac)+1 FROM pracownicy), ?, ?, ?)");
} catch (SQLException ex) {
    System.out.println("Blad wykonania polecenia prepareStatement: "+ ex.getMessage());
}

for (int i=0; i<nazwiska.length; i++) {
    try {
        pstmt.setString(1, nazwiska[i]);
        pstmt.setInt(2, place[i]);
        pstmt.setString(3, etaty[i]);
        pstmt.executeUpdate();
    } catch (SQLException ex) {
        System.out.println("Blad wykonania polecenia executeUpdate: "+ ex.getMessage());
    }
}

6.
try{
    conn.setAutoCommit(false);
} catch(SQLException ex) {
    System.out.println("Blad wykonania polecenia setAutocommit: "+ ex.getMessage());
}

String prac = "pracNum";
PreparedStatement pstmt = null;
try {
    pstmt = conn.prepareStatement( "INSERT INTO pracownicy(id_prac, nazwisko, placa_pod, etat) VALUES (?, ?, ?, ?)");
} catch (SQLException ex) {
    System.out.println("Blad wykonania polecenia prepareStatement: "+ ex.getMessage());
}


long start = System.nanoTime();
for (int i=190000; i<192000; i++) {
    try {
        pstmt.setInt(1, i);
        pstmt.setString(2, prac + i );
        pstmt.setInt(3, 1000);
        pstmt.setString(4, "ASYSTENT");
        pstmt.executeUpdate();
    } catch (SQLException ex) {
        System.out.println("Blad wykonania polecenia loopa1: "+ ex.getMessage());
    }
}
long czas = System.nanoTime() - start;
System.out.println("Czas wykonania bez batch: " + czas/1000000 + "ms");

start = System.nanoTime();
for (int i=192000; i<194000; i++) {
    try {
        pstmt.setInt(1, i);
        pstmt.setString(2, prac + i );
        pstmt.setInt(3, 1000);
        pstmt.setString(4, "ASYSTENT");
        pstmt.addBatch();
    } catch (SQLException ex) {
        System.out.println("Blad wykonania polecenia loopa2: "+ ex.getMessage());
    }
}
try {
    pstmt.executeBatch();
} catch (SQLException ex) {
    System.out.println("Blad wykonania polecenia executeBatch: "+ ex.getMessage());
}

czas = System.nanoTime() - start;
System.out.println("Czas wykonania z batch: " + czas/1000000 + "ms");

try
{
    conn.rollback();
} catch(SQLException ex) {
    System.out.println("Blad wykonania polecenia rollback: "+ ex.getMessage());
}


7.

CREATE OR REPLACE FUNCTION CaplitalizeSurname(p_id_prac IN NUMBER, p_nazwisko OUT VARCHAR2 )
RETURN number IS
BEGIN
    SELECT nazwisko INTO p_nazwisko FROM pracownicy WHERE id_prac=p_id_prac;
    UPDATE pracownicy SET nazwisko=INITCAP(nazwisko) WHERE id_prac=p_id_prac;
    p_nazwisko:=INITCAP(p_nazwisko);
    RETURN 1;
EXCEPTION
    WHEN OTHERS THEN
        RETURN 0;
END;
*/

try (CallableStatement stmt = conn.prepareCall(
    "{? = call CaplitalizeSurname(?, ?)}"))
{
    stmt.registerOutParameter(1, Types.INTEGER);
    stmt.setInt(2, 300);
    stmt.registerOutParameter(3, Types.VARCHAR);
    stmt.execute();
    System.out.println("Zwrocono: " + stmt.getInt(1));
    System.out.println("Nazwisko: " + stmt.getString(3));
} catch (SQLException ex) {
    System.out.println("Blad wykonania prepareCall: "+ ex.getMessage());
}



Editor is loading...
Leave a Comment