Created
October 14, 2015 08:28
-
-
Save ThomasStuetz/8491855134b1fa7e5b26 to your computer and use it in GitHub Desktop.
Simple JDBC-Test for JavaSE
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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