import java.sql.*;
public class databaseConnector
{
Connection verbindung;
Statement abfrage;
ResultSet datenMenge;
boolean debugMode= false;
/**
* Der Konstruktor versucht den Treiber zu laden und die Verbindung zur Datenbank herzustellen.
* Der java-mysql Treiber muss vorher von der Webseite [url]www.mysql.org[/url] herunter geladen werden, sofern er nicht
* schon im Betriebssystem vorhanden ist. Sollte keine Verbindung hergestellt werden können, so wird eine Exception geworfen.
* Im debugMode werden die Fehlermeldungen auf der Konsole ausgegeben.
*
* * */
public databaseConnector(String database, String user, String password, boolean debugMode) throws Exception
{
this.debugMode = debugMode;
try
{
Class.forName("com.mysql.jdbc.Driver");
try
{
verbindung = java.sql. DriverManager.getConnection("jdbc:mysql:"+database, user, password);
}
catch(Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
throw new Exception("Verbindung zum Server gescheitert.");
}
}
catch(ClassNotFoundException e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
throw new Exception("Treiber nicht gefunden");
}
}
/**
* Führt eine beliebige SQL Anweisung durch. Gibt zurück, ob es sich um einen SELECT-Befehl
* oder eine andere SQL-Anweisung handelte.
*/
public boolean doSQL(String sqlAnweisung) throws Exception
{
try
{
abfrage = verbindung.createStatement();
datenMenge=abfrage.getResultSet();
return abfrage.execute(sqlAnweisung);
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
throw e;
}
}
/**
* Fürt eine SELECT-Anweisung durch und gibt zurück, ob
* der Befehl erfolgreich ausgeführt wurde.
*/
public boolean executeQuery(String sqlAnweisung)
{
try
{
abfrage = verbindung.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
datenMenge = abfrage.executeQuery(sqlAnweisung);
return true;
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
return false;
}
}
/**
* Fürt die Methoden zum Ändern der Datenbankinhalte aus (INSERT, UPDATE, DELETE)
* und gibt die Anzahl der modifizierten Datensätze zurück.
*/
public int executeUpdate(String sqlAnweisung)
{
int anzahl =0;
try
{
abfrage = verbindung.createStatement();
anzahl = abfrage.executeUpdate(sqlAnweisung);
if(debugMode)
{
System.err.println("Die Abfrage betraf "+anzahl+" Reihen");
}
}
catch( Exception e)
{
anzahl = 0;
if(debugMode)
{
System.err.println(e.getMessage());
}
}
return anzahl;
}
/**
* Durchschreitet die Datenmenge vorwärts (steht am Anfang vor dem ersten Eintrag).
*/
public boolean next()
{
try
{
return datenMenge.next();
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
return false;
}
}
/**
* Durchschreitet die Datenmenge rückwärts (steht am Anfang vor dem ersten Eintrag).
*/
public boolean previous()
{
try
{
return datenMenge.previous();
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
return false;
}
}
/**
* Liefert den Spaltenwert der angegebenen Spalte als Text oder im Fehlerfall einen leeren Text.
*/
public String getText(String feldName)
{
try
{
return datenMenge.getString(feldName);
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
return "";
}
}
/**
* Liefert den Spaltenwert des angegebenen Spalteindex als Text oder im Fehlerfall einen leeren Text (INDEX beginnt mit 1).
*/
public String getText( int spaltenIndex)
{
try
{
return datenMenge.getString(spaltenIndex);
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
return "";
}
}
/**
* Liefert den Spaltenwert der angegebenen Spalte als Integer oder im Fehlerfall 0.
*/
public int getInt(String feldName)
{
try
{
return datenMenge.getInt(feldName);
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
return 0;
}
}
/**
* Liefert den Spaltenwert des angegebenen Spalteindex als Integer oder im Fehlerfall 0 (INDEX beginnt mit 1).
*/
public int getInt( int spaltenIndex)
{
try
{
return datenMenge.getInt(spaltenIndex);
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
return 0;
}
}
/**
* Liefert den Spaltenwert der angegebenen Spalte als Double oder im Fehlerfall 0.0.
*/
public double getDouble(String feldName)
{
try
{
return datenMenge.getDouble(feldName);
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
return 0;
}
}
/**
* Liefert den Spaltenwert des angegebenen Spalteindex als Double oder im Fehlerfall 0.0 (INDEX beginnt mit 1).
*/
public double getDouble( int spaltenIndex)
{
try
{
return datenMenge.getDouble(spaltenIndex);
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
return 0.0;
}
}
/**
* Liefert den Spaltenwert der angegebenen Spalte als Boolean oder im Fehlerfall false.
*/
public boolean getBoolean(String feldName)
{
try
{
return datenMenge.getBoolean(feldName);
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
return false;
}
}
/**
* Liefert den Spaltenwert des angegebenen Spalteindex als Boolean oder im Fehlerfall false (INDEX beginnt mit 1).
*/
public boolean getBoolean( int spaltenIndex)
{
try
{
return datenMenge.getBoolean(spaltenIndex);
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
return false;
}
}
/**
* Liefert den Spaltenwert des angegebenen Spalteindex als Datum oder im Fehlerfall null (INDEX beginnt mit 1).
*/
public Date getDate( int spaltenIndex)
{
try
{
return datenMenge.getDate(spaltenIndex);
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
return null;
}
}
/**
* Liefert den Spaltenwert der angegebenen Spalte als Datum oder im Fehlerfall null.
*/
public Date getDate(String feldName)
{
try
{
return datenMenge.getDate(feldName);
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
return null;
}
}
/**
* Destruktor, wird von Java aufgerufen.
*/
protected void finalize()
{
try
{
verbindung.close();
}
catch( Exception e)
{
if(debugMode)
{
System.err.println(e.getMessage());
}
}
}
}