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 unten

stmnt.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
InformationsquelleAutor Acewin | 2016-03-14
Schreibe einen Kommentar