Apache Derby Datenbank in Java Anwendung einbinden
Apache Derby ist eine in Java implementierte SQL Datenbank, die entweder eigenständig gestartet oder direkt in eine Java Anwendung eingebunden werden kann. Dieser Artikel zeigt, wie die Datenbank in eine Java Anwendung integriert und angesprochen werden kann.
Zunächst wird natürlich Derby benötigt. Bei Verwendung von Maven wird die folgende Abhängigkeit eingetragen:
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.13.1.1</version>
</dependency>
Schon kann die Datenbank verwendet werden:
package de.patrickgotthard.derby;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class EmbeddedDerbyDemo {
public static void main(final String[] args) throws SQLException {
// connect
final Connection connection = DriverManager.getConnection("jdbc:derby:UserDB;create=true");
// create table
connection.prepareStatement("CREATE TABLE users (username VARCHAR(50), password VARCHAR(32))").execute();
// insert data
connection.prepareStatement("INSERT INTO users (username, password) VALUES('Jane Doe', 't0ps3cr3t')").execute();
// dump data
final ResultSet resultSet = connection.prepareStatement("SELECT username, password FROM users").executeQuery();
while (resultSet.next()) {
final String username = resultSet.getString("username");
final String password = resultSet.getString("password");
System.out.printf("%s:%s\n", username, password);
}
resultSet.close();
// drop table
connection.prepareStatement("DROP TABLE users").execute();
// shutdown
try {
DriverManager.getConnection("jdbc:derby:;shutdown=true");
} catch (final SQLException e) {
if ((e.getErrorCode() == 50000) && "XJ015".equals(e.getSQLState())) {
System.out.println("Database shutdown normally");
} else {
e.printStackTrace();
}
}
}
}