Programmieren - alles kontrollieren 4.937 Themen, 20.656 Beiträge

Mit java eine Schnittstelle zu einer Datenbank erzeugen?

Tromain / 3 Antworten / Flachansicht Nickles

Hallo Leute,


ich habe folgendes Problem, ich muss zu einer SQL Datenbank eine Schnittstelle mit Java2 Programmieren. Die Schnittstelle soll die Daten aus der ersten Datenbank auslesen die ich festlege und in eine zweite Datenbank übergeben. Ich hatte mir gedacht das ich die ausgelesenen Daten erstmal in eine Temporäre Datei übergebe und dann von dort aus dann in die zweite Datenbank übergeben, aber es muss auch einen direkten Weg geben, denn der Weg den ich gewählt habe funktioniert nicht. Kann mir irgendjemand der schon sowas ähnliches gemacht hat seinen Sourcecode schicken. Wäre total dufte von Euch.

bei Antwort benachrichtigen
vergisses Tromain „Mhm meine JDBC-ODBC Schnittstelle läuft bereits, wird von SQL2000 mitgeliefert....“
Optionen

Hi,

falls es einen Thin JDBC Client für MS SQL Server 2000 gibt,
würde ich diesen der JDBC-ODBC Bridge vorziehen.
Dann kannst Du zeitgleich jeweils eine Verbindung zu beiden
DB´s aufbauen (hier die Oracle Variante):

Als Membervariable der Klasse definieren:
Connection conn1,conn2;
Statement stmt;
ResultSet res;

Die Connect Methode:
private void ConnectToDB() throws SQLException
{
conn=DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.1.99:1521:db1",
"username","userpassword");
stmt=conn.createStatement();

conn1=DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.1.100:1521:db2",
"username2","userpassword2");
}

Das Select aus der Quelle:
private void executeQuery() throws SQLException
{
res=stmt.executeQuery(" SELECT "+
"Feld1,"+
"Feld2,"+
"Feld3 "+
"FROM Tabellenname "+
"WHERE Feld1 = 1 ) "+
"ORDER BY Feld2");
}

Die Daten ins Ziel eintragen:
private void doCopy() throws SQLException
{
String sFeld1,sFeld2,sFeld3,sInsert;
PreparedStatement pstmt;
int rc;
while(res.next())
{
sFeld1=new String(res.getString(1);
sFeld2=new String(res.getString(2);
sFeld3=new String(res.getString(3);
sInsert=new String("insert into Tabelle (Feld1,Feld2,Feld3) values ( ? , ? , ?)");
pstmt=conn1.prepareStatement(sInsert);
pstmt.setString(1,sFeld1);
pstmt.setString(2,sFeld2);
pstmt.setString(3,sFeld3);
rc=pstmt.executeUpdate();
}
}

Und das Disconnect von den DB´s nicht vergessen:
private void DisConnectFromDB() throws SQLException
{
conn.close();
conn1.close();
}


Ich habe das Ganze natürlich nicht getestet, Fehler sind
also gut Möglich, Verbesserungen bestimmt auch ;-)

Gruss, vergisses

bei Antwort benachrichtigen