Gå til innhold

Gjoere en natural-join paa 2 eller flere vectorer


Anbefalte innlegg

Skrevet

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???

Videoannonse
Annonse
Skrevet

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 ?!

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...