package regexgolf2.services.persistence.database; import java.io.File; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import com.google.java.contract.Ensures; import com.google.java.contract.Requires; public class Database { private Connection _connection; @Requires({ "file != null", "file.exists()" }) public Database(File file) throws ClassNotFoundException, SQLException { Class.forName("org.sqlite.JDBC"); _connection = DriverManager.getConnection("jdbc:sqlite:" + file.getPath()); enableForeignKeySupport(); } private void enableForeignKeySupport() throws SQLException { String enableForeignKeySupportSQL = "pragma foreign_keys = on;"; PreparedStatement stmt = getConnection().prepareStatement(enableForeignKeySupportSQL); stmt.execute(); stmt.close(); } /** * Connection should not be closed! */ @Ensures("result != null") public Connection getConnection() { return _connection; } }