In Java auf SQL Anywhere Datenbank mittels JDBC in Windows und Linux zugreifen

Um auf eine SAP SQL-Anywhere Datenbank in Java zuzugreifen, muß man einen Sql-Anywhere Client installieren. Diesen kann man für Testzwecke z.B. von folgender Seite bekommen: https://wiki.scn.sap.com/wiki/display/SQLANY/SAP+SQL+Anywhere+Database+Client+Download  Für dieses Beispiel verwenden wir die SQL Anywhere V 16.0.

Danach muss dem Webcontainer (in unserem Fall Tomcat) der Java Library Path zum Verzeichnis des Clients gegeben und die Datei sajdbc4.jar im Classpath erreichbar sein.

Tomcat muß dazu als Startparameter der Pfad zur dbjodbc16.dll mitgegeben werden:

-Djava.library.path="c:\pfad_zu_sql_anywhere_client\bin32"

Weiters muß man die Datei c:\pfad_zu_sql_anywhere_client\Java\sajdbc4.jar in den Classpath kopieren.

Unter Linux muß man, nachdem der Client installiert wurde, den Befehl

source "/opt/sqlanywhere16/bin64/sa_config.sh"

ausführen um die Umgebungsvariablen für SQL Anywhere zu setzen. Dies muß immer vor Start des Tomcat passieren, deshalb kann man diesen Befehl z.B. in die setenv.sh der Tomcat-Installation aufnehmen:

source "/opt/sqlanywhere16/bin64/sa_config.sh"
JAVA_OPTS="-Djava.library.path=/opt/sqlanywhere16/lib64"

Danach sollte der Zugriff auf die SQL Anywhere Datenbank funktionieren:

Class.forName("sybase.jdbc4.sqlanywhere.IDriver");			
Connection conn = DriverManager.getConnection("jdbc:sqlanywhere:uid=dbuser;pwd=dbpasswd;host=hostName");

// Beispiel für zugriff			
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery ("select max(id) as maxid from students");
while (rset.next()) {
 	System.out.println("Das Ergebnis ist: " + rset.getString("MAXID"));
}
rset.close();
stmt.close();
conn.close();

 

Schreibe einen Kommentar