Gå til innhold

Gjoere en natural-join paa 2 eller flere vectorer


Anbefalte innlegg

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
Videoannonse
Annonse

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...