From 9209acb9d1251a7fdfe62c2fe313f216b4044dfc Mon Sep 17 00:00:00 2001 From: Sergey Ovsyannikov Date: Fri, 16 Jul 2021 22:55:53 +0300 Subject: [PATCH 1/5] 1.1.3 --- .idea/.gitignore | 8 ++ .idea/compiler.xml | 16 ++++ .idea/dataSources.xml | 12 +++ .idea/jarRepositories.xml | 20 +++++ .idea/libraries/Maven__antlr_antlr_2_7_7.xml | 13 +++ ...m_google_protobuf_protobuf_java_3_11_4.xml | 13 +++ .idea/libraries/Maven__dom4j_dom4j_1_6_1.xml | 13 +++ .idea/libraries/Maven__junit_junit_4_12.xml | 13 +++ ...ven__mysql_mysql_connector_java_8_0_25.xml | 13 +++ .../Maven__org_hamcrest_hamcrest_core_1_3.xml | 13 +++ ...ernate_commons_annotations_4_0_5_Final.xml | 13 +++ ..._hibernate_hibernate_core_4_3_10_Final.xml | 13 +++ ...ence_hibernate_jpa_2_1_api_1_0_2_Final.xml | 13 +++ ...ven__org_javassist_javassist_3_18_1_GA.xml | 13 +++ .../Maven__org_jboss_jandex_1_1_0_Final.xml | 13 +++ ...g_jboss_logging_jboss_logging_3_1_3_GA.xml | 13 +++ ..._jboss_logging_annotations_1_2_0_Beta1.xml | 13 +++ ...s_transaction_api_1_2_spec_1_0_0_Final.xml | 13 +++ .../Maven__xml_apis_xml_apis_1_0_b2.xml | 13 +++ .idea/misc.xml | 11 +++ .idea/modules.xml | 8 ++ .idea/sqldialects.xml | 6 ++ .idea/vcs.xml | 6 ++ TaskJDBC.iml | 29 +++++++ pom.xml | 6 +- src/main/java/jm/task/core/jdbc/Main.java | 14 +++- .../task/core/jdbc/dao/UserDaoJDBCImpl.java | 82 +++++++++++++++++-- .../java/jm/task/core/jdbc/model/User.java | 5 ++ .../core/jdbc/service/UserServiceImpl.java | 18 +++- .../java/jm/task/core/jdbc/util/Util.java | 9 +- 30 files changed, 429 insertions(+), 16 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/dataSources.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/libraries/Maven__antlr_antlr_2_7_7.xml create mode 100644 .idea/libraries/Maven__com_google_protobuf_protobuf_java_3_11_4.xml create mode 100644 .idea/libraries/Maven__dom4j_dom4j_1_6_1.xml create mode 100644 .idea/libraries/Maven__junit_junit_4_12.xml create mode 100644 .idea/libraries/Maven__mysql_mysql_connector_java_8_0_25.xml create mode 100644 .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml create mode 100644 .idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_4_0_5_Final.xml create mode 100644 .idea/libraries/Maven__org_hibernate_hibernate_core_4_3_10_Final.xml create mode 100644 .idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_2_Final.xml create mode 100644 .idea/libraries/Maven__org_javassist_javassist_3_18_1_GA.xml create mode 100644 .idea/libraries/Maven__org_jboss_jandex_1_1_0_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_logging_jboss_logging_3_1_3_GA.xml create mode 100644 .idea/libraries/Maven__org_jboss_logging_jboss_logging_annotations_1_2_0_Beta1.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_2_spec_1_0_0_Final.xml create mode 100644 .idea/libraries/Maven__xml_apis_xml_apis_1_0_b2.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/sqldialects.xml create mode 100644 .idea/vcs.xml create mode 100644 TaskJDBC.iml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..73f69e09 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 00000000..f00b5192 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 00000000..b6eb442e --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,12 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306/my_db_test + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 00000000..712ab9d9 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__antlr_antlr_2_7_7.xml b/.idea/libraries/Maven__antlr_antlr_2_7_7.xml new file mode 100644 index 00000000..b8d93d8e --- /dev/null +++ b/.idea/libraries/Maven__antlr_antlr_2_7_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_protobuf_protobuf_java_3_11_4.xml b/.idea/libraries/Maven__com_google_protobuf_protobuf_java_3_11_4.xml new file mode 100644 index 00000000..d60deb07 --- /dev/null +++ b/.idea/libraries/Maven__com_google_protobuf_protobuf_java_3_11_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml b/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml new file mode 100644 index 00000000..14681ee8 --- /dev/null +++ b/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__junit_junit_4_12.xml b/.idea/libraries/Maven__junit_junit_4_12.xml new file mode 100644 index 00000000..d4110417 --- /dev/null +++ b/.idea/libraries/Maven__junit_junit_4_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_25.xml b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_25.xml new file mode 100644 index 00000000..3eb0cdbc --- /dev/null +++ b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_25.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml new file mode 100644 index 00000000..f58bbc11 --- /dev/null +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_4_0_5_Final.xml b/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_4_0_5_Final.xml new file mode 100644 index 00000000..9ed6d297 --- /dev/null +++ b/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_4_0_5_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_hibernate_core_4_3_10_Final.xml b/.idea/libraries/Maven__org_hibernate_hibernate_core_4_3_10_Final.xml new file mode 100644 index 00000000..0f9bf7c2 --- /dev/null +++ b/.idea/libraries/Maven__org_hibernate_hibernate_core_4_3_10_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_2_Final.xml b/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_2_Final.xml new file mode 100644 index 00000000..1d8ce405 --- /dev/null +++ b/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_2_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_javassist_javassist_3_18_1_GA.xml b/.idea/libraries/Maven__org_javassist_javassist_3_18_1_GA.xml new file mode 100644 index 00000000..1f907308 --- /dev/null +++ b/.idea/libraries/Maven__org_javassist_javassist_3_18_1_GA.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_jandex_1_1_0_Final.xml b/.idea/libraries/Maven__org_jboss_jandex_1_1_0_Final.xml new file mode 100644 index 00000000..d3cd0897 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_jandex_1_1_0_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_1_3_GA.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_1_3_GA.xml new file mode 100644 index 00000000..815ab4d8 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_1_3_GA.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_annotations_1_2_0_Beta1.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_annotations_1_2_0_Beta1.xml new file mode 100644 index 00000000..715be298 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_annotations_1_2_0_Beta1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_2_spec_1_0_0_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_2_spec_1_0_0_Final.xml new file mode 100644 index 00000000..2ab91298 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_2_spec_1_0_0_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__xml_apis_xml_apis_1_0_b2.xml b/.idea/libraries/Maven__xml_apis_xml_apis_1_0_b2.xml new file mode 100644 index 00000000..c36e7171 --- /dev/null +++ b/.idea/libraries/Maven__xml_apis_xml_apis_1_0_b2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..5ac47e8d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..882550cd --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml new file mode 100644 index 00000000..56782cab --- /dev/null +++ b/.idea/sqldialects.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/TaskJDBC.iml b/TaskJDBC.iml new file mode 100644 index 00000000..2af0e2b7 --- /dev/null +++ b/TaskJDBC.iml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 0605a4c0..aafa9e49 100644 --- a/pom.xml +++ b/pom.xml @@ -13,8 +13,8 @@ org.apache.maven.plugins maven-compiler-plugin - 7 - 7 + 16 + 16 @@ -33,7 +33,7 @@ mysql mysql-connector-java - 5.1.38 + 8.0.25 diff --git a/src/main/java/jm/task/core/jdbc/Main.java b/src/main/java/jm/task/core/jdbc/Main.java index f6e43b0f..62984bab 100644 --- a/src/main/java/jm/task/core/jdbc/Main.java +++ b/src/main/java/jm/task/core/jdbc/Main.java @@ -1,7 +1,19 @@ package jm.task.core.jdbc; +import jm.task.core.jdbc.dao.UserDaoJDBCImpl; +import jm.task.core.jdbc.service.UserServiceImpl; +import jm.task.core.jdbc.util.Util; + public class Main { public static void main(String[] args) { - // реализуйте алгоритм здесь + UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); + userDaoJDBC.createUsersTable(); + userDaoJDBC.saveUser("Ivan","Ivanov", (byte) 25); + userDaoJDBC.saveUser("Petr","Petrov", (byte) 33); + userDaoJDBC.saveUser("Alexandr","Alexandrov", (byte) 32); + userDaoJDBC.saveUser("Denis","Denisov", (byte) 35); + System.out.println(userDaoJDBC.getAllUsers()); + userDaoJDBC.cleanUsersTable(); + userDaoJDBC.dropUsersTable(); } } diff --git a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java index a6c6c359..5052a303 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java @@ -1,35 +1,103 @@ package jm.task.core.jdbc.dao; import jm.task.core.jdbc.model.User; - +import static jm.task.core.jdbc.util.Util.getConnection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; import java.util.List; public class UserDaoJDBCImpl implements UserDao { public UserDaoJDBCImpl() { - } - public void createUsersTable() { - + try { + Statement statement = getConnection().createStatement(); + statement.execute("CREATE TABLE `my_db_test`.`user` (\n" + + " `id` INT NOT NULL AUTO_INCREMENT,\n" + + " `name` VARCHAR(45) NULL,\n" + + " `lastName` VARCHAR(45) NULL,\n" + + " `age` TINYINT NULL,\n" + + " PRIMARY KEY (`id`))\n" + + "ENGINE = InnoDB\n" + + "DEFAULT CHARACTER SET = utf8;"); + } catch (SQLException ignored) { + } } public void dropUsersTable() { - + try (Statement statement = getConnection().createStatement()){ + statement.execute("drop table user;"); + } catch (SQLException ignored) { + } } public void saveUser(String name, String lastName, byte age) { + String sql = "INSERT INTO my_db_test.user (name, lastName, age) VALUES (?, ?, ?);"; + try (PreparedStatement statement = getConnection().prepareStatement(sql)){ + statement.setString(1,name); + statement.setString(2,lastName); + statement.setByte(3,age); + statement.executeUpdate(); + System.out.println("User с именем – "+ name + " добавлен в базу данных"); + } catch (SQLException e) { + e.getMessage(); + System.err.println("Не удалось добавить User'a "); + } } public void removeUserById(long id) { - + String sql = "DELETE FROM my_db_test.user WHERE id = ?;"; + try(PreparedStatement statement = getConnection().prepareStatement(sql)) { + statement.setLong(1,id); + statement.executeUpdate(); + } catch (SQLException e) { + e.getMessage(); + System.err.println("Не удалось Удалить User'a "); + } } public List getAllUsers() { + List list = new ArrayList<>(); + String sql = "SELECT * FROM user;"; + try(Statement statement = getConnection().createStatement()) { + ResultSet resultSet = statement.executeQuery(sql); + while (resultSet.next()){ + User user = new User(); + user.setId(resultSet.getLong("id")); + user.setName(resultSet.getString("name")); + user.setLastName(resultSet.getString("lastName")); + user.setAge(resultSet.getByte("age")); + list.add(user); + } + return list; + } catch (SQLException e) { + e.getMessage(); + System.err.println("Не удалось получить список User'ов "); + } + return null; } public void cleanUsersTable() { - + int i = 0; + String sql = "SELECT * FROM user;"; + try(Statement statement = getConnection().createStatement()) { + ResultSet resultSet = statement.executeQuery(sql); + while (resultSet.next()){ + i++; + PreparedStatement preparedStatement = getConnection().prepareStatement("DELETE\n" + + "FROM my_db_test.user\n" + + "WHERE id = ?;"); + preparedStatement.setLong(1,i); + preparedStatement.executeUpdate(); + } + } catch (SQLException e) { + e.getMessage(); + System.err.println("Не удалось очистить таблицу"); + } } } diff --git a/src/main/java/jm/task/core/jdbc/model/User.java b/src/main/java/jm/task/core/jdbc/model/User.java index 21b054f6..20bd3e35 100644 --- a/src/main/java/jm/task/core/jdbc/model/User.java +++ b/src/main/java/jm/task/core/jdbc/model/User.java @@ -59,4 +59,9 @@ public Byte getAge() { public void setAge(Byte age) { this.age = age; } + + @Override + public String toString() { + return '\n'+" ID: "+id + ". Name: " + name + ". Last Name: " + lastName + ". Age: " + age; + } } diff --git a/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java b/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java index b05bd191..058fe3ed 100644 --- a/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java +++ b/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java @@ -1,31 +1,41 @@ package jm.task.core.jdbc.service; +import jm.task.core.jdbc.dao.UserDaoJDBCImpl; import jm.task.core.jdbc.model.User; import java.util.List; public class UserServiceImpl implements UserService { public void createUsersTable() { - + UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); + userDaoJDBC.createUsersTable(); } public void dropUsersTable() { - + UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); + userDaoJDBC.dropUsersTable(); } public void saveUser(String name, String lastName, byte age) { - + UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); + userDaoJDBC.saveUser(name,lastName,age); } public void removeUserById(long id) { + UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); + userDaoJDBC.removeUserById(id); } public List getAllUsers() { - return null; + + UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); + return userDaoJDBC.getAllUsers(); } public void cleanUsersTable() { + UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); + userDaoJDBC.cleanUsersTable(); } } diff --git a/src/main/java/jm/task/core/jdbc/util/Util.java b/src/main/java/jm/task/core/jdbc/util/Util.java index 59e462ba..7a06aa5d 100644 --- a/src/main/java/jm/task/core/jdbc/util/Util.java +++ b/src/main/java/jm/task/core/jdbc/util/Util.java @@ -1,5 +1,12 @@ package jm.task.core.jdbc.util; +import java.sql.*; + public class Util { - // реализуйте настройку соеденения с БД + private static final String URL ="jdbc:mysql://localhost:3306/my_db_test"; + private static final String USERNAME ="root"; + private static final String PASSWORD ="192837465aA.A1"; + public static Connection getConnection() throws SQLException { + return DriverManager.getConnection(URL, USERNAME, PASSWORD); + } } From a928cf58b20e933e556175ca4ce01f592c6b5e1c Mon Sep 17 00:00:00 2001 From: SergeyOvsyannikov1998 <87448596+SergeyOvsyannikov1998@users.noreply.github.com> Date: Sun, 18 Jul 2021 17:44:36 +0300 Subject: [PATCH 2/5] h --- .idea/libraries/Maven__dom4j_dom4j_1_6_1.xml | 13 ------ ...ernate_commons_annotations_4_0_5_Final.xml | 13 ------ ..._hibernate_hibernate_core_4_3_10_Final.xml | 13 ------ ...ven__org_javassist_javassist_3_18_1_GA.xml | 13 ------ .../Maven__org_jboss_jandex_1_1_0_Final.xml | 13 ------ ...g_jboss_logging_jboss_logging_3_1_3_GA.xml | 13 ------ ..._jboss_logging_annotations_1_2_0_Beta1.xml | 13 ------ ...s_transaction_api_1_2_spec_1_0_0_Final.xml | 13 ------ .../Maven__xml_apis_xml_apis_1_0_b2.xml | 13 ------ TaskJDBC.iml | 37 ++++++++++++---- pom.xml | 2 +- src/main/java/jm/task/core/jdbc/Main.java | 20 ++++----- .../core/jdbc/dao/UserDaoHibernateImpl.java | 43 ++++++++++++++++--- .../task/core/jdbc/dao/UserDaoJDBCImpl.java | 37 ++++++++-------- .../java/jm/task/core/jdbc/model/User.java | 12 +++--- .../core/jdbc/service/UserServiceImpl.java | 23 ++++------ .../java/jm/task/core/jdbc/util/Util.java | 31 +++++++++++-- 17 files changed, 138 insertions(+), 184 deletions(-) delete mode 100644 .idea/libraries/Maven__dom4j_dom4j_1_6_1.xml delete mode 100644 .idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_4_0_5_Final.xml delete mode 100644 .idea/libraries/Maven__org_hibernate_hibernate_core_4_3_10_Final.xml delete mode 100644 .idea/libraries/Maven__org_javassist_javassist_3_18_1_GA.xml delete mode 100644 .idea/libraries/Maven__org_jboss_jandex_1_1_0_Final.xml delete mode 100644 .idea/libraries/Maven__org_jboss_logging_jboss_logging_3_1_3_GA.xml delete mode 100644 .idea/libraries/Maven__org_jboss_logging_jboss_logging_annotations_1_2_0_Beta1.xml delete mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_2_spec_1_0_0_Final.xml delete mode 100644 .idea/libraries/Maven__xml_apis_xml_apis_1_0_b2.xml diff --git a/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml b/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml deleted file mode 100644 index 14681ee8..00000000 --- a/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_4_0_5_Final.xml b/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_4_0_5_Final.xml deleted file mode 100644 index 9ed6d297..00000000 --- a/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_4_0_5_Final.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_hibernate_core_4_3_10_Final.xml b/.idea/libraries/Maven__org_hibernate_hibernate_core_4_3_10_Final.xml deleted file mode 100644 index 0f9bf7c2..00000000 --- a/.idea/libraries/Maven__org_hibernate_hibernate_core_4_3_10_Final.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_javassist_javassist_3_18_1_GA.xml b/.idea/libraries/Maven__org_javassist_javassist_3_18_1_GA.xml deleted file mode 100644 index 1f907308..00000000 --- a/.idea/libraries/Maven__org_javassist_javassist_3_18_1_GA.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_jandex_1_1_0_Final.xml b/.idea/libraries/Maven__org_jboss_jandex_1_1_0_Final.xml deleted file mode 100644 index d3cd0897..00000000 --- a/.idea/libraries/Maven__org_jboss_jandex_1_1_0_Final.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_1_3_GA.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_1_3_GA.xml deleted file mode 100644 index 815ab4d8..00000000 --- a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_1_3_GA.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_annotations_1_2_0_Beta1.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_annotations_1_2_0_Beta1.xml deleted file mode 100644 index 715be298..00000000 --- a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_annotations_1_2_0_Beta1.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_2_spec_1_0_0_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_2_spec_1_0_0_Final.xml deleted file mode 100644 index 2ab91298..00000000 --- a/.idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_2_spec_1_0_0_Final.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__xml_apis_xml_apis_1_0_b2.xml b/.idea/libraries/Maven__xml_apis_xml_apis_1_0_b2.xml deleted file mode 100644 index c36e7171..00000000 --- a/.idea/libraries/Maven__xml_apis_xml_apis_1_0_b2.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/TaskJDBC.iml b/TaskJDBC.iml index 2af0e2b7..bcabf45d 100644 --- a/TaskJDBC.iml +++ b/TaskJDBC.iml @@ -1,5 +1,17 @@ + + + + + + + + + + + + @@ -15,15 +27,22 @@ - - - - - - - - + + + + + - + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index aafa9e49..db77112e 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ org.hibernate hibernate-core - 4.3.10.Final + 5.5.3.Final diff --git a/src/main/java/jm/task/core/jdbc/Main.java b/src/main/java/jm/task/core/jdbc/Main.java index 62984bab..e62f2028 100644 --- a/src/main/java/jm/task/core/jdbc/Main.java +++ b/src/main/java/jm/task/core/jdbc/Main.java @@ -1,19 +1,17 @@ package jm.task.core.jdbc; -import jm.task.core.jdbc.dao.UserDaoJDBCImpl; import jm.task.core.jdbc.service.UserServiceImpl; -import jm.task.core.jdbc.util.Util; public class Main { public static void main(String[] args) { - UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); - userDaoJDBC.createUsersTable(); - userDaoJDBC.saveUser("Ivan","Ivanov", (byte) 25); - userDaoJDBC.saveUser("Petr","Petrov", (byte) 33); - userDaoJDBC.saveUser("Alexandr","Alexandrov", (byte) 32); - userDaoJDBC.saveUser("Denis","Denisov", (byte) 35); - System.out.println(userDaoJDBC.getAllUsers()); - userDaoJDBC.cleanUsersTable(); - userDaoJDBC.dropUsersTable(); + UserServiceImpl userService = new UserServiceImpl(); + userService.createUsersTable(); + userService.saveUser("Ivan", "Ivanov", (byte) 25); + userService.saveUser("Petr", "Petrov", (byte) 33); + userService.saveUser("Alexandr", "Alexandrov", (byte) 32); + userService.saveUser("Denis", "Denisov", (byte) 35); + System.out.println(userService.getAllUsers()); + userService.cleanUsersTable(); + userService.dropUsersTable(); } } diff --git a/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java b/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java index dc2d0636..f79b7225 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java @@ -1,9 +1,12 @@ package jm.task.core.jdbc.dao; import jm.task.core.jdbc.model.User; +import org.hibernate.Session; import java.util.List; +import static jm.task.core.jdbc.util.Util.*; + public class UserDaoHibernateImpl implements UserDao { public UserDaoHibernateImpl() { @@ -12,31 +15,59 @@ public UserDaoHibernateImpl() { @Override public void createUsersTable() { - + try (Session session = getSessionFactory().openSession()) { + session.beginTransaction(); + session.createSQLQuery("CREATE TABLE IF NOT EXISTS users (`id` INT NOT NULL AUTO_INCREMENT," + + " `name` VARCHAR(45) NULL, " + + "`lastName` VARCHAR(45) NULL, " + + "`age` INT(45) NULL, PRIMARY KEY (`id`), " + + "UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE);") + .executeUpdate(); + session.getTransaction().commit(); + } } @Override public void dropUsersTable() { - + try (Session session = getSessionFactory().openSession()) { + session.beginTransaction(); + session.createSQLQuery("DROP TABLE IF EXISTS my_db_test.users;").executeUpdate(); + session.getTransaction().commit(); + } } @Override public void saveUser(String name, String lastName, byte age) { - + try (Session session = getSessionFactory().openSession()) { + session.beginTransaction(); + User user = new User(name, lastName, age); + session.save(user); + session.getTransaction().commit(); + } + + System.out.println("User с именем – " + name + " добавлен в базу данных"); } @Override public void removeUserById(long id) { - + try (Session session = getSessionFactory().openSession()) { + session.beginTransaction(); + session.delete(session.get(User.class, id)); + session.getTransaction().commit(); + } } @Override public List getAllUsers() { - return null; + return getSessionFactory().openSession().createQuery("From User").list(); } @Override public void cleanUsersTable() { - + try (Session session = getSessionFactory().openSession()) { + session.beginTransaction(); + session.createQuery("delete from User").executeUpdate(); + session.getTransaction().commit(); + } } } diff --git a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java index 5052a303..880ea206 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java @@ -1,7 +1,9 @@ package jm.task.core.jdbc.dao; import jm.task.core.jdbc.model.User; + import static jm.task.core.jdbc.util.Util.getConnection; + import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -12,6 +14,7 @@ public class UserDaoJDBCImpl implements UserDao { public UserDaoJDBCImpl() { } + public void createUsersTable() { try { Statement statement = getConnection().createStatement(); @@ -28,7 +31,7 @@ public void createUsersTable() { } public void dropUsersTable() { - try (Statement statement = getConnection().createStatement()){ + try (Statement statement = getConnection().createStatement()) { statement.execute("drop table user;"); } catch (SQLException ignored) { } @@ -36,12 +39,12 @@ public void dropUsersTable() { public void saveUser(String name, String lastName, byte age) { String sql = "INSERT INTO my_db_test.user (name, lastName, age) VALUES (?, ?, ?);"; - try (PreparedStatement statement = getConnection().prepareStatement(sql)){ - statement.setString(1,name); - statement.setString(2,lastName); - statement.setByte(3,age); + try (PreparedStatement statement = getConnection().prepareStatement(sql)) { + statement.setString(1, name); + statement.setString(2, lastName); + statement.setByte(3, age); statement.executeUpdate(); - System.out.println("User с именем – "+ name + " добавлен в базу данных"); + System.out.println("User с именем – " + name + " добавлен в базу данных"); } catch (SQLException e) { e.getMessage(); @@ -51,8 +54,8 @@ public void saveUser(String name, String lastName, byte age) { public void removeUserById(long id) { String sql = "DELETE FROM my_db_test.user WHERE id = ?;"; - try(PreparedStatement statement = getConnection().prepareStatement(sql)) { - statement.setLong(1,id); + try (PreparedStatement statement = getConnection().prepareStatement(sql)) { + statement.setLong(1, id); statement.executeUpdate(); } catch (SQLException e) { e.getMessage(); @@ -63,9 +66,9 @@ public void removeUserById(long id) { public List getAllUsers() { List list = new ArrayList<>(); String sql = "SELECT * FROM user;"; - try(Statement statement = getConnection().createStatement()) { + try (Statement statement = getConnection().createStatement()) { ResultSet resultSet = statement.executeQuery(sql); - while (resultSet.next()){ + while (resultSet.next()) { User user = new User(); user.setId(resultSet.getLong("id")); user.setName(resultSet.getString("name")); @@ -85,15 +88,15 @@ public List getAllUsers() { public void cleanUsersTable() { int i = 0; String sql = "SELECT * FROM user;"; - try(Statement statement = getConnection().createStatement()) { + try (Statement statement = getConnection().createStatement()) { ResultSet resultSet = statement.executeQuery(sql); - while (resultSet.next()){ + while (resultSet.next()) { i++; - PreparedStatement preparedStatement = getConnection().prepareStatement("DELETE\n" + - "FROM my_db_test.user\n" + - "WHERE id = ?;"); - preparedStatement.setLong(1,i); - preparedStatement.executeUpdate(); + PreparedStatement preparedStatement = getConnection().prepareStatement("DELETE\n" + + "FROM my_db_test.user\n" + + "WHERE id = ?;"); + preparedStatement.setLong(1, i); + preparedStatement.executeUpdate(); } } catch (SQLException e) { e.getMessage(); diff --git a/src/main/java/jm/task/core/jdbc/model/User.java b/src/main/java/jm/task/core/jdbc/model/User.java index 20bd3e35..6ccbbcca 100644 --- a/src/main/java/jm/task/core/jdbc/model/User.java +++ b/src/main/java/jm/task/core/jdbc/model/User.java @@ -1,18 +1,18 @@ package jm.task.core.jdbc.model; -import javax.persistence.Column; -import javax.persistence.Id; -import javax.persistence.Table; +import javax.persistence.*; -@Table +@Entity +@Table(name = "users") public class User { @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column private String name; - @Column + @Column(name = "lastName") private String lastName; @Column @@ -62,6 +62,6 @@ public void setAge(Byte age) { @Override public String toString() { - return '\n'+" ID: "+id + ". Name: " + name + ". Last Name: " + lastName + ". Age: " + age; + return '\n' + " ID: " + id + ". Name: " + name + ". Last Name: " + lastName + ". Age: " + age; } } diff --git a/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java b/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java index 058fe3ed..08956095 100644 --- a/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java +++ b/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java @@ -1,41 +1,36 @@ package jm.task.core.jdbc.service; -import jm.task.core.jdbc.dao.UserDaoJDBCImpl; +import jm.task.core.jdbc.dao.UserDaoHibernateImpl; import jm.task.core.jdbc.model.User; import java.util.List; public class UserServiceImpl implements UserService { + private UserDaoHibernateImpl userDaoHibernate = new UserDaoHibernateImpl(); + public void createUsersTable() { - UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); - userDaoJDBC.createUsersTable(); + userDaoHibernate.createUsersTable(); } public void dropUsersTable() { - UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); - userDaoJDBC.dropUsersTable(); + userDaoHibernate.dropUsersTable(); } public void saveUser(String name, String lastName, byte age) { - UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); - userDaoJDBC.saveUser(name,lastName,age); + userDaoHibernate.saveUser(name, lastName, age); } public void removeUserById(long id) { - UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); - userDaoJDBC.removeUserById(id); + userDaoHibernate.removeUserById(id); } public List getAllUsers() { - - UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); - return userDaoJDBC.getAllUsers(); + return userDaoHibernate.getAllUsers(); } public void cleanUsersTable() { - UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); - userDaoJDBC.cleanUsersTable(); + userDaoHibernate.cleanUsersTable(); } } diff --git a/src/main/java/jm/task/core/jdbc/util/Util.java b/src/main/java/jm/task/core/jdbc/util/Util.java index 7a06aa5d..dbafa049 100644 --- a/src/main/java/jm/task/core/jdbc/util/Util.java +++ b/src/main/java/jm/task/core/jdbc/util/Util.java @@ -1,12 +1,37 @@ package jm.task.core.jdbc.util; + +import jm.task.core.jdbc.model.User; +import org.hibernate.SessionFactory; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.Configuration; +import org.hibernate.cfg.Environment; +import org.hibernate.service.ServiceRegistry; + import java.sql.*; public class Util { - private static final String URL ="jdbc:mysql://localhost:3306/my_db_test"; - private static final String USERNAME ="root"; - private static final String PASSWORD ="192837465aA.A1"; + private static final String URL = "jdbc:mysql://localhost:3306/my_db_test"; + private static final String USERNAME = "root"; + private static final String PASSWORD = "192837465aA.A1"; + private static SessionFactory sessionFactory; + public static Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USERNAME, PASSWORD); } + + public static SessionFactory getSessionFactory() { + Configuration configuration = new Configuration() + .setProperty(Environment.URL, URL) + .setProperty(Environment.USER, USERNAME) + .setProperty(Environment.PASS, PASSWORD) + .setProperty(Environment.SHOW_SQL, "true") + .setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread") + .addAnnotatedClass(User.class); + + ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() + .applySettings(configuration.getProperties()).build(); + + return sessionFactory = configuration.buildSessionFactory(serviceRegistry); + } } From 69ce8a05b0326436628aac4f472365789b42a633 Mon Sep 17 00:00:00 2001 From: SergeyOvsyannikov1998 <87448596+SergeyOvsyannikov1998@users.noreply.github.com> Date: Mon, 19 Jul 2021 16:46:51 +0300 Subject: [PATCH 3/5] 19.07.2021 --- .../Maven__com_fasterxml_classmate_1_5_1.xml | 13 ++++++ ...un_istack_istack_commons_runtime_3_0_7.xml | 13 ++++++ ...sun_xml_fastinfoset_FastInfoset_1_2_15.xml | 13 ++++++ ..._activation_javax_activation_api_1_2_0.xml | 13 ++++++ ..._persistence_javax_persistence_api_2_2.xml | 13 ++++++ .../Maven__javax_xml_bind_jaxb_api_2_3_1.xml | 13 ++++++ ...aven__net_bytebuddy_byte_buddy_1_10_22.xml | 13 ++++++ ..._org_glassfish_jaxb_jaxb_runtime_2_3_1.xml | 13 ++++++ .../Maven__org_glassfish_jaxb_txw2_2_3_1.xml | 13 ++++++ ...ernate_commons_annotations_5_1_2_Final.xml | 13 ++++++ ...g_hibernate_hibernate_core_5_5_3_Final.xml | 13 ++++++ ...ven__org_javassist_javassist_3_27_0_GA.xml | 13 ++++++ .../Maven__org_jboss_jandex_2_2_3_Final.xml | 13 ++++++ ...boss_logging_jboss_logging_3_4_2_Final.xml | 13 ++++++ ...s_transaction_api_1_2_spec_1_1_1_Final.xml | 13 ++++++ .../Maven__org_jvnet_staxex_stax_ex_1_8.xml | 13 ++++++ src/main/java/jm/task/core/jdbc/Main.java | 4 +- .../core/jdbc/dao/UserDaoHibernateImpl.java | 42 +++++++++---------- .../task/core/jdbc/dao/UserDaoJDBCImpl.java | 8 +--- .../core/jdbc/service/UserServiceImpl.java | 4 +- .../java/jm/task/core/jdbc/util/Util.java | 1 + 21 files changed, 237 insertions(+), 30 deletions(-) create mode 100644 .idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml create mode 100644 .idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_7.xml create mode 100644 .idea/libraries/Maven__com_sun_xml_fastinfoset_FastInfoset_1_2_15.xml create mode 100644 .idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml create mode 100644 .idea/libraries/Maven__javax_persistence_javax_persistence_api_2_2.xml create mode 100644 .idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml create mode 100644 .idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_22.xml create mode 100644 .idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_1.xml create mode 100644 .idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_1.xml create mode 100644 .idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_1_2_Final.xml create mode 100644 .idea/libraries/Maven__org_hibernate_hibernate_core_5_5_3_Final.xml create mode 100644 .idea/libraries/Maven__org_javassist_javassist_3_27_0_GA.xml create mode 100644 .idea/libraries/Maven__org_jboss_jandex_2_2_3_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_2_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_2_spec_1_1_1_Final.xml create mode 100644 .idea/libraries/Maven__org_jvnet_staxex_stax_ex_1_8.xml diff --git a/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml b/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml new file mode 100644 index 00000000..bc7d7fd8 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_7.xml b/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_7.xml new file mode 100644 index 00000000..4d7e82ee --- /dev/null +++ b/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_sun_xml_fastinfoset_FastInfoset_1_2_15.xml b/.idea/libraries/Maven__com_sun_xml_fastinfoset_FastInfoset_1_2_15.xml new file mode 100644 index 00000000..de27a396 --- /dev/null +++ b/.idea/libraries/Maven__com_sun_xml_fastinfoset_FastInfoset_1_2_15.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml b/.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml new file mode 100644 index 00000000..ff49512a --- /dev/null +++ b/.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_persistence_javax_persistence_api_2_2.xml b/.idea/libraries/Maven__javax_persistence_javax_persistence_api_2_2.xml new file mode 100644 index 00000000..b7d39c62 --- /dev/null +++ b/.idea/libraries/Maven__javax_persistence_javax_persistence_api_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml b/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml new file mode 100644 index 00000000..059f88ff --- /dev/null +++ b/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_22.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_22.xml new file mode 100644 index 00000000..db4968ea --- /dev/null +++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_1.xml b/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_1.xml new file mode 100644 index 00000000..0c7a80a8 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_1.xml b/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_1.xml new file mode 100644 index 00000000..638d9377 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_1_2_Final.xml b/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_1_2_Final.xml new file mode 100644 index 00000000..a775836a --- /dev/null +++ b/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_1_2_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_hibernate_core_5_5_3_Final.xml b/.idea/libraries/Maven__org_hibernate_hibernate_core_5_5_3_Final.xml new file mode 100644 index 00000000..e52c280e --- /dev/null +++ b/.idea/libraries/Maven__org_hibernate_hibernate_core_5_5_3_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_javassist_javassist_3_27_0_GA.xml b/.idea/libraries/Maven__org_javassist_javassist_3_27_0_GA.xml new file mode 100644 index 00000000..39550dac --- /dev/null +++ b/.idea/libraries/Maven__org_javassist_javassist_3_27_0_GA.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_jandex_2_2_3_Final.xml b/.idea/libraries/Maven__org_jboss_jandex_2_2_3_Final.xml new file mode 100644 index 00000000..e4e6c8c8 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_jandex_2_2_3_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_2_Final.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_2_Final.xml new file mode 100644 index 00000000..5fb51814 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_2_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_2_spec_1_1_1_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_2_spec_1_1_1_Final.xml new file mode 100644 index 00000000..ec03510b --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_2_spec_1_1_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jvnet_staxex_stax_ex_1_8.xml b/.idea/libraries/Maven__org_jvnet_staxex_stax_ex_1_8.xml new file mode 100644 index 00000000..ee8e8ef3 --- /dev/null +++ b/.idea/libraries/Maven__org_jvnet_staxex_stax_ex_1_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/jm/task/core/jdbc/Main.java b/src/main/java/jm/task/core/jdbc/Main.java index e62f2028..8505d674 100644 --- a/src/main/java/jm/task/core/jdbc/Main.java +++ b/src/main/java/jm/task/core/jdbc/Main.java @@ -1,10 +1,12 @@ package jm.task.core.jdbc; +import jm.task.core.jdbc.dao.UserDao; +import jm.task.core.jdbc.service.UserService; import jm.task.core.jdbc.service.UserServiceImpl; public class Main { public static void main(String[] args) { - UserServiceImpl userService = new UserServiceImpl(); + UserService userService = new UserServiceImpl(); userService.createUsersTable(); userService.saveUser("Ivan", "Ivanov", (byte) 25); userService.saveUser("Petr", "Petrov", (byte) 33); diff --git a/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java b/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java index f79b7225..be17fd8c 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java @@ -2,21 +2,22 @@ import jm.task.core.jdbc.model.User; import org.hibernate.Session; +import org.hibernate.SessionFactory; import java.util.List; import static jm.task.core.jdbc.util.Util.*; public class UserDaoHibernateImpl implements UserDao { - public UserDaoHibernateImpl() { + private final SessionFactory sessionFactory = getSessionFactory(); + public UserDaoHibernateImpl() { } - @Override public void createUsersTable() { - try (Session session = getSessionFactory().openSession()) { - session.beginTransaction(); + Session session = sessionFactory.openSession(); + session.beginTransaction(); session.createSQLQuery("CREATE TABLE IF NOT EXISTS users (`id` INT NOT NULL AUTO_INCREMENT," + " `name` VARCHAR(45) NULL, " + "`lastName` VARCHAR(45) NULL, " + @@ -24,50 +25,47 @@ public void createUsersTable() { "UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE);") .executeUpdate(); session.getTransaction().commit(); - } + session.close(); } @Override - public void dropUsersTable() { - try (Session session = getSessionFactory().openSession()) { + public void dropUsersTable() {Session session = sessionFactory.openSession(); session.beginTransaction(); session.createSQLQuery("DROP TABLE IF EXISTS my_db_test.users;").executeUpdate(); session.getTransaction().commit(); - } + session.close(); } @Override public void saveUser(String name, String lastName, byte age) { - try (Session session = getSessionFactory().openSession()) { + Session session = sessionFactory.openSession(); session.beginTransaction(); - User user = new User(name, lastName, age); - session.save(user); + session.save(new User(name, lastName, age)); session.getTransaction().commit(); - } + session.close(); System.out.println("User с именем – " + name + " добавлен в базу данных"); } @Override - public void removeUserById(long id) { - try (Session session = getSessionFactory().openSession()) { + public void removeUserById(long id) {Session session = sessionFactory.openSession(); session.beginTransaction(); session.delete(session.get(User.class, id)); session.getTransaction().commit(); - } + session.close(); } @Override - public List getAllUsers() { - return getSessionFactory().openSession().createQuery("From User").list(); + public List getAllUsers() {Session session = sessionFactory.openSession(); + return session.createQuery("From User").list(); } @Override public void cleanUsersTable() { - try (Session session = getSessionFactory().openSession()) { - session.beginTransaction(); - session.createQuery("delete from User").executeUpdate(); - session.getTransaction().commit(); - } + Session session = sessionFactory.openSession(); + session.beginTransaction(); + session.createQuery("DELETE from User").executeUpdate(); + session.getTransaction().commit(); + session.close(); } } diff --git a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java index 880ea206..24f0a25a 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java @@ -38,11 +38,8 @@ public void dropUsersTable() { } public void saveUser(String name, String lastName, byte age) { - String sql = "INSERT INTO my_db_test.user (name, lastName, age) VALUES (?, ?, ?);"; + String sql = "INSERT INTO my_db_test.user (name, lastName, age) VALUES ("+name+", "+lastName+", "+age+");"; try (PreparedStatement statement = getConnection().prepareStatement(sql)) { - statement.setString(1, name); - statement.setString(2, lastName); - statement.setByte(3, age); statement.executeUpdate(); System.out.println("User с именем – " + name + " добавлен в базу данных"); @@ -53,9 +50,8 @@ public void saveUser(String name, String lastName, byte age) { } public void removeUserById(long id) { - String sql = "DELETE FROM my_db_test.user WHERE id = ?;"; + String sql = "DELETE FROM my_db_test.user WHERE id = "+id+";"; try (PreparedStatement statement = getConnection().prepareStatement(sql)) { - statement.setLong(1, id); statement.executeUpdate(); } catch (SQLException e) { e.getMessage(); diff --git a/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java b/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java index 08956095..57878b99 100644 --- a/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java +++ b/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java @@ -1,12 +1,14 @@ package jm.task.core.jdbc.service; +import jm.task.core.jdbc.dao.UserDao; import jm.task.core.jdbc.dao.UserDaoHibernateImpl; +import jm.task.core.jdbc.dao.UserDaoJDBCImpl; import jm.task.core.jdbc.model.User; import java.util.List; public class UserServiceImpl implements UserService { - private UserDaoHibernateImpl userDaoHibernate = new UserDaoHibernateImpl(); + private UserDao userDaoHibernate = new UserDaoHibernateImpl(); public void createUsersTable() { userDaoHibernate.createUsersTable(); diff --git a/src/main/java/jm/task/core/jdbc/util/Util.java b/src/main/java/jm/task/core/jdbc/util/Util.java index dbafa049..5db98729 100644 --- a/src/main/java/jm/task/core/jdbc/util/Util.java +++ b/src/main/java/jm/task/core/jdbc/util/Util.java @@ -1,3 +1,4 @@ + package jm.task.core.jdbc.util; import jm.task.core.jdbc.model.User; From 18da64d958efc6a6b66b9f22e6cfb41af890f726 Mon Sep 17 00:00:00 2001 From: SergeyOvsyannikov1998 <87448596+SergeyOvsyannikov1998@users.noreply.github.com> Date: Mon, 19 Jul 2021 17:10:02 +0300 Subject: [PATCH 4/5] . --- src/main/java/jm/task/core/jdbc/Main.java | 1 - .../core/jdbc/dao/UserDaoHibernateImpl.java | 47 ++++++++++--------- .../task/core/jdbc/dao/UserDaoJDBCImpl.java | 25 ++++------ .../core/jdbc/service/UserServiceImpl.java | 1 - 4 files changed, 34 insertions(+), 40 deletions(-) diff --git a/src/main/java/jm/task/core/jdbc/Main.java b/src/main/java/jm/task/core/jdbc/Main.java index 8505d674..3e4fe836 100644 --- a/src/main/java/jm/task/core/jdbc/Main.java +++ b/src/main/java/jm/task/core/jdbc/Main.java @@ -1,6 +1,5 @@ package jm.task.core.jdbc; -import jm.task.core.jdbc.dao.UserDao; import jm.task.core.jdbc.service.UserService; import jm.task.core.jdbc.service.UserServiceImpl; diff --git a/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java b/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java index be17fd8c..b43cc45d 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java @@ -18,45 +18,48 @@ public UserDaoHibernateImpl() { public void createUsersTable() { Session session = sessionFactory.openSession(); session.beginTransaction(); - session.createSQLQuery("CREATE TABLE IF NOT EXISTS users (`id` INT NOT NULL AUTO_INCREMENT," + - " `name` VARCHAR(45) NULL, " + - "`lastName` VARCHAR(45) NULL, " + - "`age` INT(45) NULL, PRIMARY KEY (`id`), " + - "UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE);") - .executeUpdate(); - session.getTransaction().commit(); - session.close(); + session.createSQLQuery("CREATE TABLE IF NOT EXISTS users (`id` INT NOT NULL AUTO_INCREMENT," + + " `name` VARCHAR(45) NULL, " + + "`lastName` VARCHAR(45) NULL, " + + "`age` INT(45) NULL, PRIMARY KEY (`id`), " + + "UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE);") + .executeUpdate(); + session.getTransaction().commit(); + session.close(); } @Override - public void dropUsersTable() {Session session = sessionFactory.openSession(); - session.beginTransaction(); - session.createSQLQuery("DROP TABLE IF EXISTS my_db_test.users;").executeUpdate(); - session.getTransaction().commit(); + public void dropUsersTable() { + Session session = sessionFactory.openSession(); + session.beginTransaction(); + session.createSQLQuery("DROP TABLE IF EXISTS my_db_test.users;").executeUpdate(); + session.getTransaction().commit(); session.close(); } @Override public void saveUser(String name, String lastName, byte age) { Session session = sessionFactory.openSession(); - session.beginTransaction(); - session.save(new User(name, lastName, age)); - session.getTransaction().commit(); - session.close(); + session.beginTransaction(); + session.save(new User(name, lastName, age)); + session.getTransaction().commit(); + session.close(); System.out.println("User с именем – " + name + " добавлен в базу данных"); } @Override - public void removeUserById(long id) {Session session = sessionFactory.openSession(); - session.beginTransaction(); - session.delete(session.get(User.class, id)); - session.getTransaction().commit(); - session.close(); + public void removeUserById(long id) { + Session session = sessionFactory.openSession(); + session.beginTransaction(); + session.delete(session.get(User.class, id)); + session.getTransaction().commit(); + session.close(); } @Override - public List getAllUsers() {Session session = sessionFactory.openSession(); + public List getAllUsers() { + Session session = sessionFactory.openSession(); return session.createQuery("From User").list(); } diff --git a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java index 24f0a25a..db4ecca6 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java @@ -38,8 +38,11 @@ public void dropUsersTable() { } public void saveUser(String name, String lastName, byte age) { - String sql = "INSERT INTO my_db_test.user (name, lastName, age) VALUES ("+name+", "+lastName+", "+age+");"; - try (PreparedStatement statement = getConnection().prepareStatement(sql)) { + try (PreparedStatement statement = getConnection().prepareStatement("INSERT INTO my_db_test.user" + + " (name, lastName, age) VALUES (?, ?, ?);")) { + statement.setString(1, name); + statement.setString(2, lastName); + statement.setByte(3, age); statement.executeUpdate(); System.out.println("User с именем – " + name + " добавлен в базу данных"); @@ -50,8 +53,8 @@ public void saveUser(String name, String lastName, byte age) { } public void removeUserById(long id) { - String sql = "DELETE FROM my_db_test.user WHERE id = "+id+";"; - try (PreparedStatement statement = getConnection().prepareStatement(sql)) { + try (PreparedStatement statement = getConnection().prepareStatement("DELETE FROM my_db_test.user WHERE id = ?;")) { + statement.setLong(1, id); statement.executeUpdate(); } catch (SQLException e) { e.getMessage(); @@ -61,9 +64,8 @@ public void removeUserById(long id) { public List getAllUsers() { List list = new ArrayList<>(); - String sql = "SELECT * FROM user;"; try (Statement statement = getConnection().createStatement()) { - ResultSet resultSet = statement.executeQuery(sql); + ResultSet resultSet = statement.executeQuery("SELECT * FROM user;"); while (resultSet.next()) { User user = new User(); user.setId(resultSet.getLong("id")); @@ -83,17 +85,8 @@ public List getAllUsers() { public void cleanUsersTable() { int i = 0; - String sql = "SELECT * FROM user;"; try (Statement statement = getConnection().createStatement()) { - ResultSet resultSet = statement.executeQuery(sql); - while (resultSet.next()) { - i++; - PreparedStatement preparedStatement = getConnection().prepareStatement("DELETE\n" + - "FROM my_db_test.user\n" + - "WHERE id = ?;"); - preparedStatement.setLong(1, i); - preparedStatement.executeUpdate(); - } + statement.executeQuery("TRUNCATE TABLE user"); } catch (SQLException e) { e.getMessage(); System.err.println("Не удалось очистить таблицу"); diff --git a/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java b/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java index 57878b99..24a9f4e8 100644 --- a/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java +++ b/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java @@ -2,7 +2,6 @@ import jm.task.core.jdbc.dao.UserDao; import jm.task.core.jdbc.dao.UserDaoHibernateImpl; -import jm.task.core.jdbc.dao.UserDaoJDBCImpl; import jm.task.core.jdbc.model.User; import java.util.List; From abfae0186be24df7fcef2a59908c082366531a5f Mon Sep 17 00:00:00 2001 From: SergeyOvsyannikov1998 <87448596+SergeyOvsyannikov1998@users.noreply.github.com> Date: Mon, 19 Jul 2021 17:13:47 +0300 Subject: [PATCH 5/5] . --- src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java index db4ecca6..3a5f360b 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java @@ -86,7 +86,7 @@ public List getAllUsers() { public void cleanUsersTable() { int i = 0; try (Statement statement = getConnection().createStatement()) { - statement.executeQuery("TRUNCATE TABLE user"); + statement.execute("TRUNCATE TABLE user"); } catch (SQLException e) { e.getMessage(); System.err.println("Не удалось очистить таблицу");