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