Skip to content
Snippets Groups Projects
Commit 943bc46b authored by Jan Kožusznik's avatar Jan Kožusznik
Browse files

Add support for derby DB

parent c3ecb72d
No related merge requests found
...@@ -43,19 +43,40 @@ ...@@ -43,19 +43,40 @@
<version>5.5.2</version> <version>5.5.2</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql --> <!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency> <dependency>
<groupId>org.postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
<version>42.2.18</version> <version>42.2.18</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc10 --> <!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc10 -->
<dependency> <dependency>
<groupId>com.oracle.database.jdbc</groupId> <groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc10</artifactId> <artifactId>ojdbc10</artifactId>
<version>19.8.0.0</version> <version>19.8.0.0</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.apache.derby/derby -->
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.15.2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.derby/derbyclient -->
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>10.15.2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.derby/derbytools -->
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbytools</artifactId>
<version>10.15.2.0</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
package table_view;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Objects;
class DerbyJDBCDialect implements JDBCDialect{
@Override
public String getDriverClazzName() {
return "org.apache.derby.jdbc.EmbeddedDriver";
}
@Override
public Connection getConnection(String dbName) throws SQLException {
return DriverManager.getConnection("jdbc:derby:" + dbName + ";create=true");
}
@Override
public String getCreateTable() {
return "CREATE TABLE person(id int GENERATED ALWAYS AS IDENTITY, first_name varchar(64), last_name varchar(64), email varchar(64))";
}
@Override
public void handleExceptionForCreation(SQLException e) {
//table already exist
if(Objects.equals(e.getSQLState(), "X0Y32")) {
return;
}
e.printStackTrace();
}
}
package table_view; package table_view;
import java.sql.Connection;
import java.sql.SQLException;
interface JDBCDialect { interface JDBCDialect {
String getDriverClazzName(); String getDriverClazzName();
String getDriverID(); Connection getConnection(String dbName) throws SQLException;
String getCreateTable(); String getCreateTable();
void handleExceptionForCreation(SQLException e);
} }
package table_view; package table_view;
import java.sql.Connection; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
...@@ -31,12 +30,12 @@ class PersonDAO implements AutoCloseable{ ...@@ -31,12 +30,12 @@ class PersonDAO implements AutoCloseable{
throw new RuntimeException(e); throw new RuntimeException(e);
} }
String url = dialect.getDriverID() + "://localhost/java1";
try { try {
conn = DriverManager.getConnection(url,"java1","java4ever"); conn = dialect.getConnection("java1");
constructTable(); constructTable();
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); dialect.handleExceptionForCreation(e);
} }
} }
......
package table_view; package table_view;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
class PostgresqlJDBCDialect implements JDBCDialect{ class PostgresqlJDBCDialect implements JDBCDialect{
@Override @Override
...@@ -8,8 +12,8 @@ class PostgresqlJDBCDialect implements JDBCDialect{ ...@@ -8,8 +12,8 @@ class PostgresqlJDBCDialect implements JDBCDialect{
} }
@Override @Override
public String getDriverID() { public Connection getConnection(String dbName) throws SQLException {
return "jdbc:postgresql"; return DriverManager.getConnection("jdbc:postgresql://localhost/"+dbName,"java1","java4ever");
} }
@Override @Override
...@@ -17,4 +21,8 @@ class PostgresqlJDBCDialect implements JDBCDialect{ ...@@ -17,4 +21,8 @@ class PostgresqlJDBCDialect implements JDBCDialect{
return "CREATE TABLE IF NOT EXISTS person(id SERIAL PRIMARY KEY, first_name varchar(64), last_name varchar(64), email varchar(64))"; return "CREATE TABLE IF NOT EXISTS person(id SERIAL PRIMARY KEY, first_name varchar(64), last_name varchar(64), email varchar(64))";
} }
@Override
public void handleExceptionForCreation(SQLException e) {
e.printStackTrace();
}
} }
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment