Elexis API documentation
Version 2.1.6 as of December 11 2011

ch.rgw.tools
Class JdbcLink

java.lang.Object
  extended by ch.rgw.tools.JdbcLink

public class JdbcLink
extends java.lang.Object

Weiterer Abstraktionslayer zum einfacheren Zugriff auf eine jdbc-fähige Datenbank


Nested Class Summary
 class JdbcLink.Stm
           
 
Field Summary
static int BINARY
           
static int CONNECT_CLASSNOTFOUND
           
static int CONNECT_FAILED
           
static int CONNECT_SUCCESS
           
static int CONNECT_UNKNOWN_ERROR
           
static int CONNECTION_CANT_CREATE_STATEMENT
           
static int CONNECTION_CANT_PREPARE_STAMENT
           
static int CONNECTION_SQL_ERROR
           
 java.lang.String DBFlavor
           
static int INTEGRAL
           
 int keepStatements
           
 int lastErrorCode
           
 java.lang.String lastErrorString
           
static int OTHER
           
static int TEXT
           
static int TRANSACTION_COMMIT_FAILED
           
static int TRANSACTION_COMMIT_NOT_SUPPORTED
           
static int TRANSACTION_ROLLBACK_FAILED
           
 int verMajor
           
 int verMinor
           
 
Constructor Summary
JdbcLink(java.sql.Connection c)
           
JdbcLink(java.lang.String driver, java.lang.String connect, java.lang.String flavor)
          Erstelle einen neuen jdbcLink.
 
Method Summary
 boolean commit()
           
 boolean connect(java.lang.String user, java.lang.String password)
          Verbindung zur Datenbank herstellen TODO return value is always true because exception is thrown on error
static JdbcLink create4DLink(java.lang.String host)
          Bequemlichkeitsmethode für einen JdbcLink auf einen 4D-Server
static JdbcLink createH2Link(java.lang.String database)
          Bequemlichkeitsmethode, um einen Link auf eine H2-Datenbank zu bekommen.
static JdbcLink createHsqlDBLink(java.lang.String host)
          Bequemlichkeitsmethode, um einen JdbcLink auf eine als Server laufende HSQL-Datenbank zu erhalten
static JdbcLink createInProcHsqlDBLink(java.lang.String database)
          Bequemlichkeitsmethode, um einen JdbcLink auf eine InProcess laufende HSQL-Datenbank zu erhalten
static JdbcLink createMySqlLink(java.lang.String host, java.lang.String database)
          Bequemlichkeitsmethode, um einen JdcbLink auf eine MySQL-Datenbank zu erhalten
static JdbcLink createODBCLink(java.lang.String dsn)
           
static JdbcLink createPostgreSQLLink(java.lang.String host, java.lang.String database)
          Bequemlichkeitsmethode für einen JdbcLink auf einen PostgreSQL- Server
 java.lang.String dbDriver()
           
 void disconnect()
          Verbindung zur Datenbank lösen
 boolean dumpTable(java.io.BufferedWriter w, java.lang.String name)
           
 int exec(java.lang.String sql)
          Wrapper für Stm#exec
 boolean execScript(java.io.InputStream i, boolean translate, boolean stopOnError)
           
static int generalType(int t)
           
 java.sql.Connection getConnection()
           
 java.lang.String getConnectString()
           
 java.lang.String getDriverName()
           
 JdbcLink.Stm getStatement()
          Ent Statement aus dem pool beziehen.
static java.lang.String getString(java.sql.ResultSet r, java.lang.String field)
          Einen String-Value aus dem aktuellen Datensatz des ResultSets holen.
static java.lang.String getVersion()
           
 boolean isAlive()
          Anfrage, ob die Verbindung steht
static boolean nextMatch(java.sql.ResultSet r, java.lang.String field, FuzzyMatcher m)
          Unscharfes Suchen im ResultSet.
 java.sql.PreparedStatement prepareStatement(java.lang.String sql)
          Ein Prepared Statement anlegen
 int queryInt(java.lang.String sql)
           
 java.lang.String queryString(java.lang.String sql)
          Einen String-Wert abfragen.
static java.lang.String readStatement(java.io.InputStream is)
           
 void releaseStatement(JdbcLink.Stm s)
          Ein Stm - Statement in den pool zurückgeben.
 boolean rollback()
           
 boolean setAutoCommit(boolean value)
           
 void setPoolable(boolean poolable)
           
 java.lang.String translateFlavor(java.lang.String sql)
          Einen SQL-String in die bekannten flavors übersetzen.
static java.lang.String wrap(byte[] in, java.lang.String flavor)
          Utility-Funktion zum Datenbankkonformen Verpacken von byte arrays zwecks Einfügen in BLOB-Felder.
static java.lang.String wrap(java.lang.String s)
          Utility-Funktion zum Einpacken von Strings in Hochkommata und escapen illegaler Zeichen
 java.lang.String wrapFlavored(java.lang.String s)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

lastErrorCode

public int lastErrorCode

lastErrorString

public java.lang.String lastErrorString

verMajor

public int verMajor

verMinor

public int verMinor

DBFlavor

public java.lang.String DBFlavor

keepStatements

public int keepStatements

CONNECT_SUCCESS

public static final int CONNECT_SUCCESS
See Also:
Constant Field Values

CONNECT_CLASSNOTFOUND

public static final int CONNECT_CLASSNOTFOUND
See Also:
Constant Field Values

CONNECT_FAILED

public static final int CONNECT_FAILED
See Also:
Constant Field Values

CONNECT_UNKNOWN_ERROR

public static final int CONNECT_UNKNOWN_ERROR
See Also:
Constant Field Values

TRANSACTION_COMMIT_FAILED

public static final int TRANSACTION_COMMIT_FAILED
See Also:
Constant Field Values

TRANSACTION_ROLLBACK_FAILED

public static final int TRANSACTION_ROLLBACK_FAILED
See Also:
Constant Field Values

TRANSACTION_COMMIT_NOT_SUPPORTED

public static final int TRANSACTION_COMMIT_NOT_SUPPORTED
See Also:
Constant Field Values

CONNECTION_CANT_CREATE_STATEMENT

public static final int CONNECTION_CANT_CREATE_STATEMENT
See Also:
Constant Field Values

CONNECTION_CANT_PREPARE_STAMENT

public static final int CONNECTION_CANT_PREPARE_STAMENT
See Also:
Constant Field Values

CONNECTION_SQL_ERROR

public static final int CONNECTION_SQL_ERROR
See Also:
Constant Field Values

INTEGRAL

public static final int INTEGRAL
See Also:
Constant Field Values

TEXT

public static final int TEXT
See Also:
Constant Field Values

BINARY

public static final int BINARY
See Also:
Constant Field Values

OTHER

public static final int OTHER
See Also:
Constant Field Values
Constructor Detail

JdbcLink

public JdbcLink(java.lang.String driver,
                java.lang.String connect,
                java.lang.String flavor)
Erstelle einen neuen jdbcLink. Es wird kein Connect-Versuch gemacht, das heisst, der Konstruktor wird nie scheitern.

Parameters:
driver - Treiber-String (wie org.hsql.jdbc)
connect - Connect-String (wie jdbc:odbc:data)

JdbcLink

public JdbcLink(java.sql.Connection c)
Method Detail

getVersion

public static final java.lang.String getVersion()

createMySqlLink

public static JdbcLink createMySqlLink(java.lang.String host,
                                       java.lang.String database)
Bequemlichkeitsmethode, um einen JdcbLink auf eine MySQL-Datenbank zu erhalten


createInProcHsqlDBLink

public static JdbcLink createInProcHsqlDBLink(java.lang.String database)
Bequemlichkeitsmethode, um einen JdbcLink auf eine InProcess laufende HSQL-Datenbank zu erhalten

Parameters:
database - ein Dateiname für die zu erzeugende bzw. zu verwendende Datenbank

createHsqlDBLink

public static JdbcLink createHsqlDBLink(java.lang.String host)
Bequemlichkeitsmethode, um einen JdbcLink auf eine als Server laufende HSQL-Datenbank zu erhalten

Parameters:
host - Server, auf dem die Datenbank läuft.

createH2Link

public static JdbcLink createH2Link(java.lang.String database)
Bequemlichkeitsmethode, um einen Link auf eine H2-Datenbank zu bekommen. Da der mysql-compatibility-mode für ALTER commands nicht korrekt funktioniert, wird ein h2 DBFlavor für die übersetzung der Statements übergeben.

Parameters:
database -
Returns:

create4DLink

public static JdbcLink create4DLink(java.lang.String host)
Bequemlichkeitsmethode für einen JdbcLink auf einen 4D-Server

Parameters:
host - de Server, auf dem die 4D-Datenbnak läuft
Returns:

createPostgreSQLLink

public static JdbcLink createPostgreSQLLink(java.lang.String host,
                                            java.lang.String database)
Bequemlichkeitsmethode für einen JdbcLink auf einen PostgreSQL- Server

Parameters:
host -
Returns:

createODBCLink

public static JdbcLink createODBCLink(java.lang.String dsn)

connect

public boolean connect(java.lang.String user,
                       java.lang.String password)
Verbindung zur Datenbank herstellen TODO return value is always true because exception is thrown on error

Parameters:
user - Username, kann null sein
password - Passwort, kann null sein
Returns:
errcode
Throws:
JdbcLinkException

setPoolable

public void setPoolable(boolean poolable)

wrap

public static java.lang.String wrap(java.lang.String s)
Utility-Funktion zum Einpacken von Strings in Hochkommata und escapen illegaler Zeichen

Parameters:
s - der String
Returns:
Datenbankkonform eingepackte String

wrapFlavored

public java.lang.String wrapFlavored(java.lang.String s)

wrap

public static java.lang.String wrap(byte[] in,
                                    java.lang.String flavor)
Utility-Funktion zum Datenbankkonformen Verpacken von byte arrays zwecks Einfügen in BLOB-Felder.

Parameters:
flavor - TODO
b - das rohe byte array
Returns:
das verpackte array in Form eines String

getConnection

public java.sql.Connection getConnection()

getDriverName

public java.lang.String getDriverName()

getConnectString

public java.lang.String getConnectString()

getStatement

public JdbcLink.Stm getStatement()
Ent Statement aus dem pool beziehen. Jedes mit getStatement bezogene Statement MUSS mit releaseStatement wieder zurückgegeben werden.

Returns:
ein Stm (JdbcLink-spezifische Statement-Variante)

releaseStatement

public void releaseStatement(JdbcLink.Stm s)
Ein Stm - Statement in den pool zurückgeben. Die Zahl der im pool zu haltenden Statements wird mit keepStatements definiert.

Parameters:
s -

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql)
Ein Prepared Statement anlegen

Parameters:
sql - Abfrage für das statement (eizusetzende Parameter müssen als ? gesetzt sein
Returns:
das vorkompilierte PreparedStatement

generalType

public static int generalType(int t)

getString

public static java.lang.String getString(java.sql.ResultSet r,
                                         java.lang.String field)
                                  throws java.lang.Exception
Einen String-Value aus dem aktuellen Datensatz des ResultSets holen. Es wird garantiert, dass immer etwas zurückgeliefert wird (" " für den leeren Sring)

Parameters:
r - ResultSet
field - Feldname
Returns:
den String
Throws:
java.lang.Exception - Wenn das Feld nicht definiert ist.

disconnect

public void disconnect()
Verbindung zur Datenbank lösen


isAlive

public boolean isAlive()
Anfrage, ob die Verbindung steht

Returns:
true wenn die Verbindung steht.

setAutoCommit

public boolean setAutoCommit(boolean value)

commit

public boolean commit()

rollback

public boolean rollback()

nextMatch

public static boolean nextMatch(java.sql.ResultSet r,
                                java.lang.String field,
                                FuzzyMatcher m)
Unscharfes Suchen im ResultSet.

Parameters:
r - das zu durchsuchende ResultSet
field - Name des interessiernden Felds
m - (vorher konfigurierter) fuzzyMatcher mit der Suchbedingung
Returns:
true wenn gefunden; das ResultSet steht auf der ersten oder einzigen Fundstelle.
See Also:
FuzzyMatcher

dbDriver

public java.lang.String dbDriver()

queryString

public java.lang.String queryString(java.lang.String sql)
Einen String-Wert abfragen. Temporäres Statement erzeugen

Parameters:
sql - SQL-String, der ein VARCHAR-oder Text-Feld liefern sollte
Returns:
den gefundenen String oder null: nicht gefunden

queryInt

public int queryInt(java.lang.String sql)

execScript

public boolean execScript(java.io.InputStream i,
                          boolean translate,
                          boolean stopOnError)

exec

public int exec(java.lang.String sql)
Wrapper für Stm#exec


readStatement

public static java.lang.String readStatement(java.io.InputStream is)

dumpTable

public boolean dumpTable(java.io.BufferedWriter w,
                         java.lang.String name)
                  throws java.lang.Exception
Throws:
java.lang.Exception

translateFlavor

public java.lang.String translateFlavor(java.lang.String sql)
Einen SQL-String in die bekannten flavors übersetzen. Basisdialekt ist mysql


Elexis API documentation
Version 2.1.6 as of December 11 2011

Copyright 2005-2011 by Gerry Weirich, Elexis