From b45296aa7c9e5be8e41a640b07b07341b5ac917c Mon Sep 17 00:00:00 2001
From: koz01 <koz01@PCFEIB113-026.msad.vsb.cz>
Date: Mon, 6 Mar 2023 14:20:13 +0100
Subject: [PATCH] Support for modules
---
log4j.xml | 15 ++++++++
pom.xml | 20 +++++++++--
src/main/java/module-info.java | 4 ++-
.../java/table_view/DerbyJDBCDialect.java | 34 -------------------
src/main/java/table_view/JDBCDialect.java | 11 ------
src/main/java/table_view/PersonDAO.java | 2 ++
.../table_view/PostgresqlJDBCDialect.java | 28 ---------------
src/main/java/table_view/TableViewSample.java | 10 +++++-
8 files changed, 46 insertions(+), 78 deletions(-)
create mode 100644 log4j.xml
delete mode 100644 src/main/java/table_view/DerbyJDBCDialect.java
delete mode 100644 src/main/java/table_view/JDBCDialect.java
delete mode 100644 src/main/java/table_view/PostgresqlJDBCDialect.java
diff --git a/log4j.xml b/log4j.xml
new file mode 100644
index 0000000..0d99188
--- /dev/null
+++ b/log4j.xml
@@ -0,0 +1,15 @@
+<Configuration >
+ <Appenders>
+ <Console name="Out">
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </Console>
+
+ </Appenders>
+ <Loggers>
+ <logger name="table_view.TableViewSample" level="debug">
+ </logger>
+ <Root level="error">
+ <AppenderRef ref="Out"/>
+ </Root>
+ </Loggers>
+</Configuration>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 762ab42..3d55b21 100644
--- a/pom.xml
+++ b/pom.xml
@@ -75,8 +75,22 @@
<artifactId>derbytools</artifactId>
<version>10.15.2.0</version>
</dependency>
-
-
-
+ <dependency>
+ <groupId>koz01.java2</groupId>
+ <artifactId>dialects-lib</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <version>2.20.0</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <version>2.20.0</version>
+ </dependency>
</dependencies>
</project>
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 05abb4f..6a107db 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -1,7 +1,9 @@
module lab01 {
requires transitive javafx.controls;
requires javafx.fxml;
- requires java.sql;
+ requires koz01.java2.dialects_lib;
+ requires org.apache.logging.log4j;
+
opens table_view to javafx.fxml;
exports table_view;
}
\ No newline at end of file
diff --git a/src/main/java/table_view/DerbyJDBCDialect.java b/src/main/java/table_view/DerbyJDBCDialect.java
deleted file mode 100644
index 36cc4ef..0000000
--- a/src/main/java/table_view/DerbyJDBCDialect.java
+++ /dev/null
@@ -1,34 +0,0 @@
-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();
- }
-
-}
diff --git a/src/main/java/table_view/JDBCDialect.java b/src/main/java/table_view/JDBCDialect.java
deleted file mode 100644
index dbc012d..0000000
--- a/src/main/java/table_view/JDBCDialect.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package table_view;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-
-interface JDBCDialect {
- String getDriverClazzName();
- Connection getConnection(String dbName) throws SQLException;
- String getCreateTable();
- void handleExceptionForCreation(SQLException e);
-}
diff --git a/src/main/java/table_view/PersonDAO.java b/src/main/java/table_view/PersonDAO.java
index faacdad..272c9ab 100644
--- a/src/main/java/table_view/PersonDAO.java
+++ b/src/main/java/table_view/PersonDAO.java
@@ -8,6 +8,8 @@ import java.sql.Statement;
import java.util.Collection;
import java.util.LinkedList;
+import koz01.java2.dialects_lib.JDBCDialect;
+
class PersonDAO implements AutoCloseable{
private static final String INSERT_SQL = "INSERT INTO person(first_name, last_name, email) values (?,?,?)";
diff --git a/src/main/java/table_view/PostgresqlJDBCDialect.java b/src/main/java/table_view/PostgresqlJDBCDialect.java
deleted file mode 100644
index 49353d5..0000000
--- a/src/main/java/table_view/PostgresqlJDBCDialect.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package table_view;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-
-class PostgresqlJDBCDialect implements JDBCDialect{
-
- @Override
- public String getDriverClazzName() {
- return "org.postgresql.Driver";
- }
-
- @Override
- public Connection getConnection(String dbName) throws SQLException {
- return DriverManager.getConnection("jdbc:postgresql://localhost/"+dbName,"java1","java4ever");
- }
-
- @Override
- public String getCreateTable() {
- 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();
- }
-}
diff --git a/src/main/java/table_view/TableViewSample.java b/src/main/java/table_view/TableViewSample.java
index a461dbd..e701544 100644
--- a/src/main/java/table_view/TableViewSample.java
+++ b/src/main/java/table_view/TableViewSample.java
@@ -1,5 +1,8 @@
package table_view;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
@@ -21,9 +24,12 @@ import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
+import koz01.java2.dialects_lib.Dialects;
public class TableViewSample extends Application {
+ private static final Logger log = LogManager.getLogger(TableViewSample.class);
+
private final PersonDAO dao;
private TableView<Person> table = new TableView<>();
@@ -36,17 +42,19 @@ public class TableViewSample extends Application {
private TextField addEmail;
public static void main(String[] args) {
+ log.info("main executed");
launch(args);
}
public TableViewSample() {
- dao = new PersonDAO(new DerbyJDBCDialect());
+ dao = new PersonDAO(Dialects.getDialect());
data = FXCollections.observableArrayList(dao.getAll());
}
@SuppressWarnings("unchecked")
@Override
public void start(Stage stage) {
+ log.debug("start");
Scene scene = new Scene(new Group());
stage.setTitle("Table View Sample");
stage.setWidth(450);
--
GitLab