sliterMedJava Skrevet 4. april 2005 Del Skrevet 4. april 2005 Sliter med vectorer... I en deloppgave jeg har skal jeg gjoere en natural join paa 2 eller flere resultsets som jeg har lagt inn i vectorer (en vector pr resultset). Faar skrevet ut datane som ligger inne i vectoren, men jeg skulle ogsaa gjort en natural join paa de tabellene (resultsettene). Det foreleseren har sagt, er at det holder med en Select*from tabelnavn for de aktuelle tabellene ( som bruker taster inn at han/hun vil gjoere en join paa). Deretter skal det gaa med en dobbel for-loekke. Jeg har det naa, men skjoenner kke helt hvor og hvordan denne joinen skal skje... Noen som kan hjelpe??? Lenke til kommentar
sliterMedJava Skrevet 5. april 2005 Forfatter Del Skrevet 5. april 2005 Dette er koden min så langt... package Assign1; import java.util.*; import java.io.*; import java.sql.*; public class Join2 { public ResultSetMetaData rsmd; private Connection conn1 = null; private Connection conn2 = null; private Statement stmt1 = null; private Statement stmt2 = null; private String query_depts = null; private String query_employees = null; private String query_join = null; private ResultSet rs1 = null; private ResultSet rs2 = null; private ResultSet rs3 = null; DeptsConnection dc = new DeptsConnection(); CanTakeConnection ctc = new CanTakeConnection(); EmployeesConnection ec = new EmployeesConnection(); CarsConnection cc = new CarsConnection(); InputStreamReader in = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(in); protected Hashtable hash; public Join2()throws IOException, SQLException{ System.out.println("Name one tab to join: " ); String jointab1 = br.readLine(); System.out.println("Name tab two in the join: " ); String jointab2 = br.readLine(); Vector<Vector> join = new Vector<Vector>(); Vector<Object> depts = new Vector<Object>(); Vector<Object> employ = new Vector<Object>(); try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn1 = DriverManager.getConnection("jdbc:odbc:Depts"); conn2 = DriverManager.getConnection("jdbc:odbc:Employees"); stmt1 = conn1.createStatement(); stmt2 = conn2.createStatement(); query_depts = new String("SELECT DeptName, Boss, Owes FROM depts"); rs1 = stmt1.executeQuery(query_depts); while(rs1.next()){ depts.add(rs1.getString("DeptName")); depts.add(rs1.getString("Boss")); depts.add(rs1.getInt("Owes")); }//end while rs1.close(); stmt1.close(); conn1.close(); query_employees = new String("SELECT Name, DeptName FROM employees"); rs2 = stmt2.executeQuery(query_employees); while(rs2.next()){ employ.add(rs2.getString("Name")); employ.add(rs2.getString("DeptName")); }//end while rs2.close(); stmt2.close(); conn2.close(); join.add(depts); join.add(employ); for(int i=0; i<join.size(); i++){ //joins består av depts og employ // for(int k=0; k<depts.size(); i++){ //depts består av rs - Select * From depts // for(int l=0; l<employ.size(); l++){ //employ består av rs - Select * from employees for(int j=0; j<join.elementAt(i).size(); j++){ //dette er da en rad av depts eller første rs System.out.println("element inner vector: " + join.elementAt(i).elementAt(j)); }//end for // }//end for // }//end for }//end for }//end try catch(ClassNotFoundException cnfe){ System.err.println(cnfe); }//end cnfe catch(SQLException sqlex){ System.err.println(sqlex); }//end sqlex catch(Exception e){ e.printStackTrace(); }//end e } }//end class Join Skjønner ikke hvor jeg skal gjøre joinen og hvordan... Kan noen hjelpe meg før jeg blir gal ?! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå