Datenbank in Javaprogramm einbetten

SuperSonik

Erfahrenes Mitglied
Hi Leute,
kann mir jemand sagen ob es eine Möglichkeit gibt eine Datenbank
direkt in ein Javaprogrammm mit rein zu kompilieren?
Bei Mysql gibt es zum Beispiel die libmysqld - Bibliothek. - allerdings nur für C(++)
Gibt es etwas vergleichbares auch für Java?
Gruß,

SuperSonik
 
Hi,
falls du bis dato noch nicht fündig geworden bist.

schau dir mal den MySQL Connector/MXJ an auf der dev.mysql.com Seite.
(http://dev.mysql.com/downloads/connector/mxj/5.0.html)
Ist aber (glaube ich) nur für Serverseitige Anwendungen interessant.

Eher trifft deine Anforderung das Projekt von Peter Schäfer mysql-je - MySQL Embedded Library for Java (http://mysql-je.sourceforge.net/).

Es soll auch noch Leute geben die an einer Umsetzung der libmysqld.dll zu einer native Library arbeiten, damit man Sie mit System.loadLibrary() einbetten kann.

Viele Grüsse
Volker
 
Hallo SuperSonic,

natürlich kannst du mysql auch in Java nutzen.

1. Installiere dir mysql auf deinem Rechner
2. Binde den Connector für deine Java Anwendung ein:
Ich arbeite mit eclipse. Dort kann man über den Menüpunkt
Projekt --> Eigenschaften beim Java-Erstellungspfad den Connector für mysql
über "externe Jar's hinzufügen" einbinden.
Der connector von mysql hat die Endung .jar

3. Stelle in deinem Java Programm eine Verbindung zur Datenbank her
Ich habe die Verbindung folgendermassen hergestellt:

// Treiber laden:
Class.forName("com.mysql.jdbc.Driver");

// Datasource Konfigurieren
MysqlDataSource mds = new MysqlDataSource();

mds.setUser(GlobaleDaten.user);
if (GlobaleDaten.kennwort == null)
{
mds.setPassword(JOptionPane.showInputDialog( "Kennwort eingeben" ));
}
else
{
mds.setPassword(GlobaleDaten.kennwort);
}
mds.setPortNumber(GlobaleDaten.portnumber); // Pfad auf einen Rechner
mds.setServerName(GlobaleDaten.servername); // IP Adresse meines Rechners
mds.setDatabaseName(GlobaleDaten.databasename); // Name der Datenbank

try {
GlobaleDaten.con = mds.getConnection();
// Autocommit deaktivieren
// con.setAutoCommit(false);

// Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch (SQLException e)
{
while (e != null) {
System.err.println(e.toString());
System.err.println("SQL-State: " + e.getSQLState());
System.err.println("ErrorCode: " + e.getErrorCode());
// Datenbankantwort bei falschen Kennwort
if (e.getSQLState() == "08S01")
{System.err.println("Servername: " +GlobaleDaten.servername +" unbekannt");}
if (e.getErrorCode() == 1049 || e.getSQLState() == "42000")
{System.err.println("Datenbank: " +GlobaleDaten.databasename +" unbekannt");}
if (e.getErrorCode() == 1045 || e.getSQLState() == "28000")
{System.err.println("Kennwort falsch für Benutzer " +GlobaleDaten.user
+"\n Server: " +GlobaleDaten.servername
+"\n Datenbank: " +GlobaleDaten.databasename);}

e = e.getNextException();
}
return false;
}
return true;
}

Gruß

Harald
 
Zurück