Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.sql.*;
- import java.util.ArrayList;
- import java.util.List;
- public class Main {
- private static int[] nestedLoopJoin(List<Professor> profs, List<Vorlesung> vls) {
- int counterMatches = 0;
- int counter = 0;
- for (int i = 0; i < vls.size(); i++) {
- for (int j = 0; j < profs.size(); j++) {
- if (vls.get(i).getGelesenVon() == profs.get(j).getPersNr()) {
- counterMatches++;
- }
- counter++;
- }
- }
- return new int[]{counter,counterMatches};
- }
- private static int[] mergeJoin(List<Professor> profs, List<Vorlesung> vls) {
- int counterMatches = 0;
- int counter = 0;
- int currentProf = 0;
- for (int i = 0; i < vls.size(); i++) {
- if (vls.get(i).getGelesenVon() == profs.get(currentProf).getPersNr()) {
- counterMatches++;
- } else {
- currentProf++;
- }
- counter++;
- }
- return new int[]{counter,counterMatches};
- }
- /**
- * Führen Sie den kompilierten Code mit
- * java -cp .:postgresql-9.4.1208.jar Exercise3
- * aus. Passen Sie gegebenenfalls den Pfad zur postgres-jar an.
- */
- public static void main(String[] args) {
- try{
- // setup connection
- Class.forName("org.postgresql.Driver");
- String url = "jdbc:postgresql://localhost/uni?user=postgres&password=Sur.15.Mi";
- Connection conn = DriverManager.getConnection(url);
- // setup lists
- List<Professor> professoren = new ArrayList<Professor>();
- List<Vorlesung> vorlesungen = new ArrayList<Vorlesung>();
- // setup stmt
- Statement stmt = conn.createStatement();
- // Professoren
- ResultSet rsetProf = stmt.executeQuery("select * from Professoren") ;
- while (rsetProf.next()) {
- professoren.add(new Professor(rsetProf));
- }
- // Vorlesungen
- ResultSet rsetVorl = stmt.executeQuery("select * from Vorlesungen ORDER BY gelesenVon") ;
- while (rsetVorl.next()) {
- vorlesungen.add(new Vorlesung(rsetVorl));
- }
- int[] ergNL = nestedLoopJoin(professoren,vorlesungen);
- System.out.println("Vergleiche Nested-Loop-Join: "+ergNL[0]);
- System.out.println("Matches Nested-Loop-Join: "+ergNL[1]);
- int[] ergMerge = mergeJoin(professoren,vorlesungen);
- System.out.println("Vergleiche Merge-Join: "+ergMerge[0]);
- System.out.println("Matches Merge-Join: "+ergMerge[1]);
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- class Professor {
- private String name;
- private int persnr;
- private String rang;
- private int raum;
- public Professor(ResultSet rset) throws SQLException {
- name = rset.getString("name");
- persnr = rset.getInt("persnr");
- rang = rset.getString("rang");
- raum = rset.getInt("raum");
- }
- public String getName() {
- return name;
- }
- public int getPersNr() {
- return persnr;
- }
- public String getRang() {
- return rang;
- }
- public int getRaum() {
- return raum;
- }
- }
- class Vorlesung {
- private int vorlnr;
- private String titel;
- private int sws;
- private int gelesenVon;
- public Vorlesung(ResultSet rset) throws SQLException {
- vorlnr = rset.getInt("vorlnr");
- titel = rset.getString("titel");
- sws = rset.getInt("sws");
- gelesenVon = rset.getInt("gelesenVon");
- }
- public int getVorlnr() {
- return vorlnr;
- }
- public String getTitel() {
- return titel;
- }
- public int getSws() {
- return sws;
- }
- public int getGelesenVon() {
- return gelesenVon;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement