Skip to content

Instantly share code, notes, and snippets.

@ThomasStuetz
Created October 14, 2015 08:28
Show Gist options
  • Save ThomasStuetz/8491855134b1fa7e5b26 to your computer and use it in GitHub Desktop.
Save ThomasStuetz/8491855134b1fa7e5b26 to your computer and use it in GitHub Desktop.
Simple JDBC-Test for JavaSE
package at.htl.vehicle;
import org.junit.BeforeClass;
import org.junit.Test;
import java.sql.*;
import static junit.framework.TestCase.fail;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
public class VehicleTest {
@Test
public void test01() {
fail("Hat nicht funktioniert");
}
public static final String DRIVER_STRING = "org.apache.derby.jdbc.ClientDriver";
private static final String CONNECTION_STRING = "jdbc:derby://localhost:1527/db;create=true";
private static final String USER = "app";
private static final String PASSWORD = "app";
private static Connection conn;
@BeforeClass
public static void initJdbc() {
// Verbindung zur DB herstellen
try {
Class.forName(DRIVER_STRING);
conn = DriverManager.getConnection(CONNECTION_STRING, USER, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
System.out.println("Verbindung zur Datenbank nicht möglich:\n"
+ e.getMessage() + "\n");
System.exit(1);
}
// Erstellen der Tabelle VEHICLE
try {
Statement stmt = conn.createStatement();
String sql = "CREATE TABLE vehicle (" +
" id INT CONSTRAINT vehicle_pk PRIMARY KEY," +
" brand VARCHAR(255) NOT NULL," +
" type VARCHAR(255) NOT NULL)";
stmt.execute(sql);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
@AfterClass
public static void teardownJdbc() {
// Tabelle VEHICLE löschen
try {
conn.createStatement().execute("DROP TABLE vehicle");
System.out.println("Tabelle VEHICLE gelöscht");
} catch (SQLException e) {
System.out.println("Tabelle VEHICLE konnte nicht gelöscht werden:\n"
+ e.getMessage());
}
// Connection schließen
try {
if (conn != null || !conn.isClosed()) {
conn.close();
System.out.println("Goodbye!");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
@Test
public void dml() {
// Daten einfügen
int countInserts = 0;
try {
Statement stmt = conn.createStatement();
String sql = "INSERT INTO vehicle (id, brand, type) VALUES (1,'Opel','Commodore')";
countInserts += stmt.executeUpdate(sql);
sql = "INSERT INTO vehicle (id, brand, type) VALUES (2,'Opel','Kapitän')";
countInserts += stmt.executeUpdate(sql);
sql = "INSERT INTO vehicle (id, brand, type) VALUES (3,'Opel','Kadett')";
countInserts += stmt.executeUpdate(sql);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
assertThat(countInserts, is(3));
// Daten abfragen
try {
PreparedStatement pstmt = conn.prepareStatement("SELECT id, brand, type FROM vehicle");
ResultSet rs = pstmt.executeQuery();
rs.next();
assertThat(rs.getString("BRAND"),is("Opel"));
assertThat(rs.getString("TYPE"),is("Commodore"));
rs.next();
assertThat(rs.getString("BRAND"),is("Opel"));
assertThat(rs.getString("TYPE"),is("Kapitän"));
rs.next();
assertThat(rs.getString("BRAND"),is("Opel"));
assertThat(rs.getString("TYPE"),is("Kadett"));
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment