Einrichten aktuelle schema in DB2 JDBC-DataSource
Ich habe geschrieben eine Methode, um eine DB2-Datenquelle Beispiel für die jdbc-Verbindung und der Ausführung der Abfrage
public static DataSource getDB2DataSource() {
String [] db2Details= getDB2Details();
DB2DataSource dataSource = new DB2DataSource();
//DB2SimpleDataSource dataSource = new DB2SimpleDataSource ();
dataSource.setUser("TESTUSER");
dataSource.setPassword("TESTPASSWD");
dataSource.setServerName("localhost");
dataSource.setDatabaseName("TESTDB");
dataSource.setPortNumber(50000 ); //
dataSource.setCurrentSchema("DB2TEST");
dataSource.setDriverType(4);
return dataSource;
}
und versuchen zum ausführen einer SQL-Abfrage in der Ebene tyle jdbc
Connection conn = dbSource.getConnection();
String qryString = "SELECT NAME FROM EMPLOYEE where ID = 4 FOR FETCH ONLY WITH UR";
Statement stmnt = conn.createStatement();
ResultSet rSet = stmnt.executeQuery(qryString);
while (rSet.next() )
{
System.out.println ("ID : " + rSet.getString("NAME"));
}
auf die Ausführung bin ich immer Fehler
: DB2 SQL error: SQLCODE: -204, SQLSTATE: 42704, SQLERRMC: "TESTUSER".MITARBEITER
Nun hatte ich bereits eingestellt-schema in der Datenquelle über unter Anweisung
dataSource.setCurrentSchema("DB2TEST");
Aber wie es scheint, ist es nicht die Einstellung schema auf diese Weise.
Ich würde gerne verstehen, was ich bin fehlt.
---- Update - - - - -
Scheint es, wenn ich DB2SimpleDataSource statt DB2DataSOurce. setCurrentSchema funktioniert Prima. Es scheint ein problem in der Treiber-version 8.1
BTW, ich weiß schon, ich kann das schema durch Ausführung der Anweisung SET
schema wie untenstmnt.executeUpdate("SET SCHEMA DB2TEST");
Aufbau-schema diese Art scheint nicht sehr geeignet.
Auch die Einstellung schema über die Verbindung geholtes Objekt von datasource ist nicht eine option, da muss ich pass Instanz von DataSource zu meiner Methode.
- Versuchen Erteilung
setSchema()
auf eine Verbindung, sobald Sie es erhalten, nicht auf die datasource. - Ich muss es tun auf die dataSource. Ich bin versucht zu testen, mein code und ich muss mich übergeben-datasource-Objekt. Auch dort ist nicht setSchema für die Verbindung.
- docs.oracle.com/javase/7/docs/api/java/sql/...
- Hmm, das ist gut. Ich beschloss die setSchema Teil. Es scheint, die JRE in das Projekt wurde von WebSphere JRE, die nicht hatte setSchema für die Verbindung.
- Seine ruhige seltsam, dass die dataSource ist nicht die Einnahme-schema, wenn durch setCUrrentSchema
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die DB2 special Registers:
Quelle: https://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.apdv.java.doc/src/tpc/imjcc_rjv00016.html
currentSchema=MYSCHEM1;currentFunctionPath=MYSCHEM1;