From 0a53ba828fc3bb59034221e68cbfeb9d36509467 Mon Sep 17 00:00:00 2001 From: babay182 Date: Wed, 14 Jul 2021 06:03:13 +0300 Subject: [PATCH 01/20] JM --- pom.xml | 2 +- .../task/core/jdbc/dao/UserDaoJDBCImpl.java | 68 +++++++++++++++++-- .../java/jm/task/core/jdbc/model/User.java | 10 +++ .../core/jdbc/service/UserServiceImpl.java | 15 ++-- .../java/jm/task/core/jdbc/util/Util.java | 18 ++++- src/test/java/UserServiceTest.java | 1 - 6 files changed, 98 insertions(+), 16 deletions(-) diff --git a/pom.xml b/pom.xml index 0605a4c0..9352de34 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ mysql mysql-connector-java - 5.1.38 + 8.0.25 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..11f8d6ba 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,89 @@ package jm.task.core.jdbc.dao; import jm.task.core.jdbc.model.User; +import jm.task.core.jdbc.util.Util; +import java.math.BigDecimal; +import java.sql.*; +import java.util.ArrayList; import java.util.List; public class UserDaoJDBCImpl implements UserDao { - public UserDaoJDBCImpl() { + static int ids = 0; + Connection connection; + public UserDaoJDBCImpl() { + connection = Util.util(); } public void createUsersTable() { - + try { + connection.createStatement().execute("CREATE TABLE `newBD`.`users` " + + "(`id` INT NOT NULL AUTO_INCREMENT,`name` VARCHAR(45) NOT NULL," + + "`lastName` VARCHAR(45) NOT NULL,`age` INT NOT NULL," + + " PRIMARY KEY (`id`), UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE);"); + //connection.close(); + } catch (SQLException throwables) { + } } public void dropUsersTable() { - + try { + connection.createStatement().execute("DROP TABLE users"); + //connection.close(); + } catch (SQLException throwables) { + } } public void saveUser(String name, String lastName, byte age) { - + PreparedStatement preparedStatement; + try { + preparedStatement = connection.prepareStatement("INSERT INTO users VALUES (?,?,?,?)"); + preparedStatement.setInt(1, ids); + preparedStatement.setString(2, name); + preparedStatement.setString(3, lastName); + preparedStatement.setInt(4, age); + preparedStatement.execute(); + ids++; + preparedStatement.close(); + } catch (SQLException throwables) { + } } public void removeUserById(long id) { - + PreparedStatement preparedStatement; + try { + preparedStatement = connection.prepareStatement("delete from users where id = ?"); + preparedStatement.setInt(1, (int) id); + preparedStatement.executeUpdate(); + preparedStatement.close(); + } catch (SQLException throwables) { + } } public List getAllUsers() { - return null; + PreparedStatement preparedStatement; + List users = new ArrayList<>(); + try { + preparedStatement = connection.prepareStatement("select * from users"); + ResultSet resultSet = preparedStatement.executeQuery(); + while (resultSet.next()){ + User user = new User(resultSet.getString("name"), + resultSet.getString("lastName"),resultSet.getByte("age")); + user.setId((long) resultSet.getInt("id")); + users.add(user); + } + preparedStatement.close(); + } catch (SQLException throwables) { + } + return users; } public void cleanUsersTable() { - + try { + connection.createStatement().execute("delete from users"); + //connection.close(); + } catch (SQLException throwables) { + } } } 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..d6755481 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,14 @@ public Byte getAge() { public void setAge(Byte age) { this.age = age; } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", name='" + name + '\'' + + ", lastName='" + 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..0df80ffb 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,34 @@ 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(); + public void createUsersTable() { + userDaoJDBC.createUsersTable(); } public void dropUsersTable() { - + userDaoJDBC.dropUsersTable(); } public void saveUser(String name, String lastName, byte age) { - + userDaoJDBC.saveUser(name, lastName, age); } public void removeUserById(long id) { - + userDaoJDBC.removeUserById(id); } public List getAllUsers() { - return null; + return userDaoJDBC.getAllUsers(); } public void cleanUsersTable() { - + 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..362088c1 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,21 @@ package jm.task.core.jdbc.util; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + public class Util { - // реализуйте настройку соеденения с БД + private static final String URL = "jdbc:mysql://localhost:3306/newBD"; + private static final String USERNAME = "root"; + private static final String PASSWORD = "root"; + + public static Connection util(){ + Connection connection = null;// реализуйте настройку соеденения с БД + try { + connection =DriverManager.getConnection(URL,USERNAME,PASSWORD); + } catch (SQLException throwables) { + throwables.printStackTrace(); + } + return connection; + } } diff --git a/src/test/java/UserServiceTest.java b/src/test/java/UserServiceTest.java index c4b9dd0a..9889c0b4 100644 --- a/src/test/java/UserServiceTest.java +++ b/src/test/java/UserServiceTest.java @@ -13,7 +13,6 @@ public class UserServiceTest { private final String testLastName = "Ivanov"; private final byte testAge = 5; - @Test public void dropUsersTable() { try { From ebd1d73195a0636f141b71e0210529eec3921485 Mon Sep 17 00:00:00 2001 From: babay182 Date: Wed, 14 Jul 2021 16:30:31 +0300 Subject: [PATCH 02/20] JM --- .../task/core/jdbc/dao/UserDaoJDBCImpl.java | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) 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 11f8d6ba..169f3322 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java @@ -9,8 +9,7 @@ import java.util.List; public class UserDaoJDBCImpl implements UserDao { - static int ids = 0; - Connection connection; + private Connection connection; public UserDaoJDBCImpl() { connection = Util.util(); @@ -18,19 +17,17 @@ public UserDaoJDBCImpl() { public void createUsersTable() { try { - connection.createStatement().execute("CREATE TABLE `newBD`.`users` " + + connection.createStatement().execute("CREATE TABLE IF NOT EXISTS `newBD`.`users` " + "(`id` INT NOT NULL AUTO_INCREMENT,`name` VARCHAR(45) NOT NULL," + "`lastName` VARCHAR(45) NOT NULL,`age` INT NOT NULL," + " PRIMARY KEY (`id`), UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE);"); - //connection.close(); } catch (SQLException throwables) { } } public void dropUsersTable() { try { - connection.createStatement().execute("DROP TABLE users"); - //connection.close(); + connection.createStatement().execute("DROP TABLE if EXISTS users"); } catch (SQLException throwables) { } } @@ -38,13 +35,11 @@ public void dropUsersTable() { public void saveUser(String name, String lastName, byte age) { PreparedStatement preparedStatement; try { - preparedStatement = connection.prepareStatement("INSERT INTO users VALUES (?,?,?,?)"); - preparedStatement.setInt(1, ids); - preparedStatement.setString(2, name); - preparedStatement.setString(3, lastName); - preparedStatement.setInt(4, age); + preparedStatement = connection.prepareStatement("INSERT INTO users (name, lastName, age) VALUES (?, ?, ?)"); + preparedStatement.setString(1, name); + preparedStatement.setString(2, lastName); + preparedStatement.setInt(3, age); preparedStatement.execute(); - ids++; preparedStatement.close(); } catch (SQLException throwables) { } @@ -82,7 +77,6 @@ public List getAllUsers() { public void cleanUsersTable() { try { connection.createStatement().execute("delete from users"); - //connection.close(); } catch (SQLException throwables) { } } From 24da0e98f5263d59d9e3673894bbce4cb592a0a3 Mon Sep 17 00:00:00 2001 From: babay182 Date: Wed, 14 Jul 2021 16:33:42 +0300 Subject: [PATCH 03/20] JM --- 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 169f3322..9395ba1d 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java @@ -48,7 +48,7 @@ public void saveUser(String name, String lastName, byte age) { public void removeUserById(long id) { PreparedStatement preparedStatement; try { - preparedStatement = connection.prepareStatement("delete from users where id = ?"); + preparedStatement = connection.prepareStatement("delete from users WHERE EXISTS id = ?"); preparedStatement.setInt(1, (int) id); preparedStatement.executeUpdate(); preparedStatement.close(); From 13b3eba2b7533430dcb6c7ac24c854ef450568e0 Mon Sep 17 00:00:00 2001 From: babay182 Date: Sat, 17 Jul 2021 06:07:14 +0300 Subject: [PATCH 04/20] hql --- pom.xml | 2 +- .../core/jdbc/dao/UserDaoHibernateImpl.java | 50 ++++++++++++++++--- .../java/jm/task/core/jdbc/model/User.java | 8 +-- .../core/jdbc/service/UserServiceImpl.java | 14 +++--- .../java/jm/task/core/jdbc/util/Util.java | 45 +++++++++++++++++ 5 files changed, 102 insertions(+), 17 deletions(-) diff --git a/pom.xml b/pom.xml index 9352de34..b90275b0 100644 --- a/pom.xml +++ b/pom.xml @@ -49,4 +49,4 @@ - \ No newline at end of file + 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..31375052 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java @@ -1,6 +1,11 @@ package jm.task.core.jdbc.dao; import jm.task.core.jdbc.model.User; +import jm.task.core.jdbc.util.Util; +import org.hibernate.Query; +import org.hibernate.SQLQuery; +import org.hibernate.Session; +import org.hibernate.Transaction; import java.util.List; @@ -12,31 +17,64 @@ public UserDaoHibernateImpl() { @Override public void createUsersTable() { - + Session session = Util.getSessionFactory().openSession();//открыли сессию + Transaction tx1 = session.beginTransaction(); + SQLQuery query = session.createSQLQuery("CREATE TABLE IF NOT EXISTS `newBD`.`users` " + + "(`id` INT NOT NULL AUTO_INCREMENT,`name` VARCHAR(45) NOT NULL," + + "`lastName` VARCHAR(45) NOT NULL,`age` INT NOT NULL," + + " PRIMARY KEY (`id`), UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE);").addEntity(User.class); + query.executeUpdate(); + tx1.commit(); + session.close(); } @Override public void dropUsersTable() { - + Session session = Util.getSessionFactory().openSession();//открыли сессию + Transaction tx1 = session.beginTransaction(); + SQLQuery query = session.createSQLQuery("DROP TABLE if EXISTS users").addEntity(User.class); + query.executeUpdate(); + tx1.commit(); + session.close(); } @Override public void saveUser(String name, String lastName, byte age) { - + User user = new User(name,lastName,age); + Session session = Util.getSessionFactory().openSession();//открыли сессию + Transaction tx1 = session.beginTransaction();//получил транзакцию + session.save(user); + tx1.commit(); + session.close(); } @Override public void removeUserById(long id) { - + Session session = Util.getSessionFactory().openSession();//открыли сессию + Transaction tx1 = session.beginTransaction();//получил транзакцию + Query query = session.createQuery("DELETE User WHERE id = :id"); + query.setParameter("id", id).executeUpdate(); + tx1.commit(); + session.close(); } @Override public List getAllUsers() { - return null; + Session session = Util.getSessionFactory().openSession();//открыли сессию + Transaction tx1 = session.beginTransaction();//получил транзакцию + Query query = session.createQuery("FROM User"); + List users = query.list(); + tx1.commit(); + session.close(); + return users; } @Override public void cleanUsersTable() { - + Session session = Util.getSessionFactory().openSession();//открыли сессию + Transaction tx1 = session.beginTransaction();//получил транзакцию + session.createQuery("DELETE FROM User").executeUpdate(); + tx1.commit(); + session.close(); } } 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 d6755481..e0e8e467 100644 --- a/src/main/java/jm/task/core/jdbc/model/User.java +++ b/src/main/java/jm/task/core/jdbc/model/User.java @@ -1,12 +1,12 @@ 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 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 0df80ffb..2e05bb8b 100644 --- a/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java +++ b/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java @@ -1,5 +1,6 @@ package jm.task.core.jdbc.service; +import jm.task.core.jdbc.dao.UserDaoHibernateImpl; import jm.task.core.jdbc.dao.UserDaoJDBCImpl; import jm.task.core.jdbc.model.User; @@ -7,28 +8,29 @@ public class UserServiceImpl implements UserService { UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); + UserDaoHibernateImpl userDaoHibernate = new UserDaoHibernateImpl(); public void createUsersTable() { - userDaoJDBC.createUsersTable(); + userDaoHibernate.createUsersTable(); } public void dropUsersTable() { - userDaoJDBC.dropUsersTable(); + userDaoHibernate.dropUsersTable(); } public void saveUser(String name, String lastName, byte age) { - userDaoJDBC.saveUser(name, lastName, age); + userDaoHibernate.saveUser(name, lastName, age); } public void removeUserById(long id) { - userDaoJDBC.removeUserById(id); + userDaoHibernate.removeUserById(id); } public List getAllUsers() { - return userDaoJDBC.getAllUsers(); + return userDaoHibernate.getAllUsers(); } public void cleanUsersTable() { - 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 362088c1..ea285727 100644 --- a/src/main/java/jm/task/core/jdbc/util/Util.java +++ b/src/main/java/jm/task/core/jdbc/util/Util.java @@ -1,8 +1,16 @@ 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.Connection; import java.sql.DriverManager; import java.sql.SQLException; +import java.util.Properties; public class Util { private static final String URL = "jdbc:mysql://localhost:3306/newBD"; @@ -18,4 +26,41 @@ public static Connection util(){ } return connection; } + + private static SessionFactory sessionFactory; + + private Util() {} + + public static SessionFactory getSessionFactory() { + if (sessionFactory == null) { + try { + Configuration configuration = new Configuration(); + + Properties settings = new Properties(); + settings.put(Environment.DRIVER, "com.mysql.cj.jdbc.Driver"); + settings.put(Environment.URL, URL); + settings.put(Environment.USER, USERNAME); + settings.put(Environment.PASS, PASSWORD); + settings.put(Environment.DIALECT, "org.hibernate.dialect.MySQL5Dialect"); + + settings.put(Environment.SHOW_SQL, "true"); + + settings.put(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread"); + + settings.put(Environment.HBM2DDL_AUTO, ""); + + configuration.setProperties(settings); + configuration.addAnnotatedClass(User.class); + + ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() + .applySettings(configuration.getProperties()).build(); + + sessionFactory = configuration.buildSessionFactory(serviceRegistry); + + } catch (Exception e) { + System.out.println("Исключение!" + e); + } + } + return sessionFactory; + } } From af3d7bdd11e4e36f0fb0e86994d8bdf6710218ba Mon Sep 17 00:00:00 2001 From: babay182 Date: Mon, 19 Jul 2021 20:36:40 +0300 Subject: [PATCH 05/20] hql --- .../task/core/jdbc/dao/UserDaoJDBCImpl.java | 35 +++++++++++++------ .../core/jdbc/service/UserServiceImpl.java | 18 +++++----- .../java/jm/task/core/jdbc/util/Util.java | 1 + 3 files changed, 35 insertions(+), 19 deletions(-) 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 9395ba1d..509b605b 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java @@ -3,43 +3,51 @@ import jm.task.core.jdbc.model.User; import jm.task.core.jdbc.util.Util; -import java.math.BigDecimal; -import java.sql.*; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class UserDaoJDBCImpl implements UserDao { - private Connection connection; + //private Connection connection; public UserDaoJDBCImpl() { - connection = Util.util(); + } public void createUsersTable() { - try { + try(Connection connection = Util.util()) { + connection.setAutoCommit(false); connection.createStatement().execute("CREATE TABLE IF NOT EXISTS `newBD`.`users` " + "(`id` INT NOT NULL AUTO_INCREMENT,`name` VARCHAR(45) NOT NULL," + "`lastName` VARCHAR(45) NOT NULL,`age` INT NOT NULL," + " PRIMARY KEY (`id`), UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE);"); + connection.commit(); } catch (SQLException throwables) { } } public void dropUsersTable() { - try { + try(Connection connection = Util.util()) { + connection.setAutoCommit(false); connection.createStatement().execute("DROP TABLE if EXISTS users"); + connection.commit(); } catch (SQLException throwables) { } } public void saveUser(String name, String lastName, byte age) { PreparedStatement preparedStatement; - try { + try (Connection connection = Util.util()){ + connection.setAutoCommit(false); preparedStatement = connection.prepareStatement("INSERT INTO users (name, lastName, age) VALUES (?, ?, ?)"); preparedStatement.setString(1, name); preparedStatement.setString(2, lastName); preparedStatement.setInt(3, age); preparedStatement.execute(); + connection.commit(); preparedStatement.close(); } catch (SQLException throwables) { } @@ -47,10 +55,12 @@ public void saveUser(String name, String lastName, byte age) { public void removeUserById(long id) { PreparedStatement preparedStatement; - try { + try (Connection connection = Util.util()){ + connection.setAutoCommit(false); preparedStatement = connection.prepareStatement("delete from users WHERE EXISTS id = ?"); preparedStatement.setInt(1, (int) id); preparedStatement.executeUpdate(); + connection.commit(); preparedStatement.close(); } catch (SQLException throwables) { } @@ -59,9 +69,11 @@ public void removeUserById(long id) { public List getAllUsers() { PreparedStatement preparedStatement; List users = new ArrayList<>(); - try { + try (Connection connection = Util.util()){ + connection.setAutoCommit(false); preparedStatement = connection.prepareStatement("select * from users"); ResultSet resultSet = preparedStatement.executeQuery(); + connection.commit(); while (resultSet.next()){ User user = new User(resultSet.getString("name"), resultSet.getString("lastName"),resultSet.getByte("age")); @@ -75,9 +87,12 @@ public List getAllUsers() { } public void cleanUsersTable() { - try { + try (Connection connection = Util.util()){ + connection.setAutoCommit(false); connection.createStatement().execute("delete from users"); + connection.commit(); } catch (SQLException throwables) { + } } } 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 2e05bb8b..51757939 100644 --- a/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java +++ b/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java @@ -1,36 +1,36 @@ 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 { - UserDaoJDBCImpl userDaoJDBC = new UserDaoJDBCImpl(); - UserDaoHibernateImpl userDaoHibernate = new UserDaoHibernateImpl(); + //UserDao userDao = new UserDaoJDBCImpl(); + UserDao userDao = new UserDaoHibernateImpl(); public void createUsersTable() { - userDaoHibernate.createUsersTable(); + userDao.createUsersTable(); } public void dropUsersTable() { - userDaoHibernate.dropUsersTable(); + userDao.dropUsersTable(); } public void saveUser(String name, String lastName, byte age) { - userDaoHibernate.saveUser(name, lastName, age); + userDao.saveUser(name, lastName, age); } public void removeUserById(long id) { - userDaoHibernate.removeUserById(id); + userDao.removeUserById(id); } public List getAllUsers() { - return userDaoHibernate.getAllUsers(); + return userDao.getAllUsers(); } public void cleanUsersTable() { - userDaoHibernate.cleanUsersTable(); + userDao.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 ea285727..c98a0ebd 100644 --- a/src/main/java/jm/task/core/jdbc/util/Util.java +++ b/src/main/java/jm/task/core/jdbc/util/Util.java @@ -52,6 +52,7 @@ public static SessionFactory getSessionFactory() { configuration.setProperties(settings); configuration.addAnnotatedClass(User.class); + ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() .applySettings(configuration.getProperties()).build(); From 15eb9fc993b7a03c56b820fbc824a43519420f6e Mon Sep 17 00:00:00 2001 From: babay182 Date: Mon, 19 Jul 2021 21:56:03 +0300 Subject: [PATCH 06/20] hql --- .../task/core/jdbc/dao/UserDaoJDBCImpl.java | 53 +++++++++++++++++-- 1 file changed, 50 insertions(+), 3 deletions(-) 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 509b605b..0562f178 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java @@ -11,10 +11,10 @@ import java.util.List; public class UserDaoJDBCImpl implements UserDao { - //private Connection connection; + private Connection connection; public UserDaoJDBCImpl() { - + connection = Util.util(); } public void createUsersTable() { @@ -26,6 +26,14 @@ public void createUsersTable() { " PRIMARY KEY (`id`), UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE);"); connection.commit(); } catch (SQLException throwables) { + if (connection != null) { + try { + connection.rollback(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + throwables.printStackTrace(); } } @@ -35,6 +43,14 @@ public void dropUsersTable() { connection.createStatement().execute("DROP TABLE if EXISTS users"); connection.commit(); } catch (SQLException throwables) { + if (connection != null) { + try { + connection.rollback(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + throwables.printStackTrace(); } } @@ -50,6 +66,14 @@ public void saveUser(String name, String lastName, byte age) { connection.commit(); preparedStatement.close(); } catch (SQLException throwables) { + if (connection != null) { + try { + connection.rollback(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + throwables.printStackTrace(); } } @@ -63,6 +87,14 @@ public void removeUserById(long id) { connection.commit(); preparedStatement.close(); } catch (SQLException throwables) { + if (connection != null) { + try { + connection.rollback(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + throwables.printStackTrace(); } } @@ -82,6 +114,14 @@ public List getAllUsers() { } preparedStatement.close(); } catch (SQLException throwables) { + if (connection != null) { + try { + connection.rollback(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + throwables.printStackTrace(); } return users; } @@ -92,7 +132,14 @@ public void cleanUsersTable() { connection.createStatement().execute("delete from users"); connection.commit(); } catch (SQLException throwables) { - + if (connection != null) { + try { + connection.rollback(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + throwables.printStackTrace(); } } } From b626941833ee2fcc2ca6a0fca8f8dd726b430162 Mon Sep 17 00:00:00 2001 From: babay182 Date: Tue, 20 Jul 2021 07:55:37 +0300 Subject: [PATCH 07/20] hql --- .../task/core/jdbc/dao/UserDaoJDBCImpl.java | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) 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 0562f178..b6da4bf6 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java @@ -18,7 +18,7 @@ public UserDaoJDBCImpl() { } public void createUsersTable() { - try(Connection connection = Util.util()) { + try { connection.setAutoCommit(false); connection.createStatement().execute("CREATE TABLE IF NOT EXISTS `newBD`.`users` " + "(`id` INT NOT NULL AUTO_INCREMENT,`name` VARCHAR(45) NOT NULL," + @@ -38,7 +38,7 @@ public void createUsersTable() { } public void dropUsersTable() { - try(Connection connection = Util.util()) { + try { connection.setAutoCommit(false); connection.createStatement().execute("DROP TABLE if EXISTS users"); connection.commit(); @@ -55,16 +55,14 @@ public void dropUsersTable() { } public void saveUser(String name, String lastName, byte age) { - PreparedStatement preparedStatement; - try (Connection connection = Util.util()){ + try (PreparedStatement preparedStatement = + connection.prepareStatement("INSERT INTO users (name, lastName, age) VALUES (?, ?, ?)")){ connection.setAutoCommit(false); - preparedStatement = connection.prepareStatement("INSERT INTO users (name, lastName, age) VALUES (?, ?, ?)"); preparedStatement.setString(1, name); preparedStatement.setString(2, lastName); preparedStatement.setInt(3, age); preparedStatement.execute(); connection.commit(); - preparedStatement.close(); } catch (SQLException throwables) { if (connection != null) { try { @@ -78,14 +76,13 @@ public void saveUser(String name, String lastName, byte age) { } public void removeUserById(long id) { - PreparedStatement preparedStatement; - try (Connection connection = Util.util()){ + + try (PreparedStatement preparedStatement + = connection.prepareStatement("delete from users WHERE EXISTS id = ?")){ connection.setAutoCommit(false); - preparedStatement = connection.prepareStatement("delete from users WHERE EXISTS id = ?"); preparedStatement.setInt(1, (int) id); preparedStatement.executeUpdate(); connection.commit(); - preparedStatement.close(); } catch (SQLException throwables) { if (connection != null) { try { @@ -99,11 +96,10 @@ public void removeUserById(long id) { } public List getAllUsers() { - PreparedStatement preparedStatement; + List users = new ArrayList<>(); - try (Connection connection = Util.util()){ + try (PreparedStatement preparedStatement = connection.prepareStatement("select * from users")){ connection.setAutoCommit(false); - preparedStatement = connection.prepareStatement("select * from users"); ResultSet resultSet = preparedStatement.executeQuery(); connection.commit(); while (resultSet.next()){ @@ -112,7 +108,6 @@ public List getAllUsers() { user.setId((long) resultSet.getInt("id")); users.add(user); } - preparedStatement.close(); } catch (SQLException throwables) { if (connection != null) { try { @@ -127,7 +122,7 @@ public List getAllUsers() { } public void cleanUsersTable() { - try (Connection connection = Util.util()){ + try { connection.setAutoCommit(false); connection.createStatement().execute("delete from users"); connection.commit(); From cfda7409f44d879dcca8699caa509aa65c4e3ad9 Mon Sep 17 00:00:00 2001 From: babay182 Date: Tue, 20 Jul 2021 08:03:20 +0300 Subject: [PATCH 08/20] hql --- .../jm/task/core/jdbc/dao/UserDaoJDBCImpl.java | 17 +++++++---------- .../task/core/jdbc/service/UserServiceImpl.java | 6 +++--- 2 files changed, 10 insertions(+), 13 deletions(-) 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 b6da4bf6..51d04d4b 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java @@ -3,10 +3,7 @@ import jm.task.core.jdbc.model.User; import jm.task.core.jdbc.util.Util; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; +import java.sql.*; import java.util.ArrayList; import java.util.List; @@ -18,9 +15,9 @@ public UserDaoJDBCImpl() { } public void createUsersTable() { - try { + try(Statement statement = connection.createStatement()) { connection.setAutoCommit(false); - connection.createStatement().execute("CREATE TABLE IF NOT EXISTS `newBD`.`users` " + + statement.execute("CREATE TABLE IF NOT EXISTS `newBD`.`users` " + "(`id` INT NOT NULL AUTO_INCREMENT,`name` VARCHAR(45) NOT NULL," + "`lastName` VARCHAR(45) NOT NULL,`age` INT NOT NULL," + " PRIMARY KEY (`id`), UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE);"); @@ -38,9 +35,9 @@ public void createUsersTable() { } public void dropUsersTable() { - try { + try(Statement statement = connection.createStatement()) { connection.setAutoCommit(false); - connection.createStatement().execute("DROP TABLE if EXISTS users"); + statement.execute("DROP TABLE if EXISTS users"); connection.commit(); } catch (SQLException throwables) { if (connection != null) { @@ -122,9 +119,9 @@ public List getAllUsers() { } public void cleanUsersTable() { - try { + try(Statement statement = connection.createStatement()) { connection.setAutoCommit(false); - connection.createStatement().execute("delete from users"); + statement.execute("delete from users"); connection.commit(); } catch (SQLException throwables) { if (connection != null) { 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 51757939..a073a345 100644 --- a/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java +++ b/src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java @@ -1,14 +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 { - //UserDao userDao = new UserDaoJDBCImpl(); - UserDao userDao = new UserDaoHibernateImpl(); + UserDao userDao = new UserDaoJDBCImpl(); + //UserDao userDao = new UserDaoHibernateImpl(); public void createUsersTable() { userDao.createUsersTable(); From de588df2fc2e930950994645c80a98779f0c3b51 Mon Sep 17 00:00:00 2001 From: babay182 Date: Thu, 22 Jul 2021 17:15:41 +0300 Subject: [PATCH 09/20] =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0?= =?UTF-8?q?=D0=B5=D1=82=20=D0=B3=D0=BE=D1=80=D1=8F=D1=87=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D0=B2=D0=B8=D1=88=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 51d04d4b..a66f3878 100644 --- a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java +++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java @@ -8,7 +8,7 @@ import java.util.List; public class UserDaoJDBCImpl implements UserDao { - private Connection connection; + private final Connection connection; public UserDaoJDBCImpl() { connection = Util.util(); From 9133bc87c4d237d8f6de469d8cfde9a8db78fbb9 Mon Sep 17 00:00:00 2001 From: babay182 Date: Fri, 23 Jul 2021 05:33:04 +0300 Subject: [PATCH 10/20] proba --- src/main/java/jm/task/core/jdbc/util/Util.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c98a0ebd..655afab8 100644 --- a/src/main/java/jm/task/core/jdbc/util/Util.java +++ b/src/main/java/jm/task/core/jdbc/util/Util.java @@ -13,7 +13,7 @@ import java.util.Properties; public class Util { - private static final String URL = "jdbc:mysql://localhost:3306/newBD"; + private static final String URL = "jdbc:mysql://localhost:3306/newBD";//хост такой вот private static final String USERNAME = "root"; private static final String PASSWORD = "root"; From c08ebf7d37a52378251c641c06366ac78d95dedb Mon Sep 17 00:00:00 2001 From: babay182 Date: Fri, 23 Jul 2021 05:29:36 +0300 Subject: [PATCH 11/20] proba --- src/main/java/jm/task/core/jdbc/util/Util.java | 1 + 1 file changed, 1 insertion(+) 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 655afab8..2eee0d31 100644 --- a/src/main/java/jm/task/core/jdbc/util/Util.java +++ b/src/main/java/jm/task/core/jdbc/util/Util.java @@ -16,6 +16,7 @@ public class Util { private static final String URL = "jdbc:mysql://localhost:3306/newBD";//хост такой вот private static final String USERNAME = "root"; private static final String PASSWORD = "root"; + String s = "proba"; public static Connection util(){ Connection connection = null;// реализуйте настройку соеденения с БД From dd1b680b84fcce112395e4b2390bd602e199226b Mon Sep 17 00:00:00 2001 From: babay182 Date: Fri, 23 Jul 2021 05:54:32 +0300 Subject: [PATCH 12/20] proba --- src/main/java/jm/task/core/jdbc/util/Util.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 2eee0d31..f3559fbd 100644 --- a/src/main/java/jm/task/core/jdbc/util/Util.java +++ b/src/main/java/jm/task/core/jdbc/util/Util.java @@ -13,7 +13,7 @@ import java.util.Properties; public class Util { - private static final String URL = "jdbc:mysql://localhost:3306/newBD";//хост такой вот + private static final String URL = "jdbc:mysql://localhost:3306/newBD";//хост такой вот ли нет private static final String USERNAME = "root"; private static final String PASSWORD = "root"; String s = "proba"; From 3fef4793fb4960142dea7d31e91f61bba55214c0 Mon Sep 17 00:00:00 2001 From: babay182 Date: Fri, 23 Jul 2021 10:59:53 +0300 Subject: [PATCH 13/20] proba --- src/main/java/jm/task/core/jdbc/util/Test.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/main/java/jm/task/core/jdbc/util/Test.txt diff --git a/src/main/java/jm/task/core/jdbc/util/Test.txt b/src/main/java/jm/task/core/jdbc/util/Test.txt new file mode 100644 index 00000000..5eb90ca1 --- /dev/null +++ b/src/main/java/jm/task/core/jdbc/util/Test.txt @@ -0,0 +1,3 @@ +Privet +Kak dela +Ok \ No newline at end of file From 496bd8e8b16a986d8cb367e32a12642c5f112296 Mon Sep 17 00:00:00 2001 From: Ilya Babashin <59039708+babay182@users.noreply.github.com> Date: Fri, 23 Jul 2021 11:06:18 +0300 Subject: [PATCH 14/20] Update Test.txt new --- src/main/java/jm/task/core/jdbc/util/Test.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/jm/task/core/jdbc/util/Test.txt b/src/main/java/jm/task/core/jdbc/util/Test.txt index 5eb90ca1..eacb4bec 100644 --- a/src/main/java/jm/task/core/jdbc/util/Test.txt +++ b/src/main/java/jm/task/core/jdbc/util/Test.txt @@ -1,3 +1,4 @@ Privet Kak dela -Ok \ No newline at end of file +Ok +no good From 55bf6f28f28d6bfa41e9830d2800a5dc46ab930a Mon Sep 17 00:00:00 2001 From: babay182 Date: Fri, 23 Jul 2021 11:26:58 +0300 Subject: [PATCH 15/20] proba --- src/main/java/jm/task/core/jdbc/util/Test.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/jm/task/core/jdbc/util/Test.txt b/src/main/java/jm/task/core/jdbc/util/Test.txt index eacb4bec..bc44e924 100644 --- a/src/main/java/jm/task/core/jdbc/util/Test.txt +++ b/src/main/java/jm/task/core/jdbc/util/Test.txt @@ -2,3 +2,4 @@ Privet Kak dela Ok no good +текст из нью \ No newline at end of file From 43621609ef308507ea235b15f3eb6d1fea1822cc Mon Sep 17 00:00:00 2001 From: babay182 Date: Fri, 23 Jul 2021 11:47:39 +0300 Subject: [PATCH 16/20] newP --- src/main/java/jm/task/core/jdbc/util/Test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/jm/task/core/jdbc/util/Test.txt b/src/main/java/jm/task/core/jdbc/util/Test.txt index bc44e924..328e5f28 100644 --- a/src/main/java/jm/task/core/jdbc/util/Test.txt +++ b/src/main/java/jm/task/core/jdbc/util/Test.txt @@ -2,4 +2,4 @@ Privet Kak dela Ok no good -текст из нью \ No newline at end of file +текст из ньюGfrtnf \ No newline at end of file From 527788c1753afe260af8c12b910b1acc9e517b25 Mon Sep 17 00:00:00 2001 From: babay182 Date: Fri, 23 Jul 2021 11:55:33 +0300 Subject: [PATCH 17/20] newP --- src/main/java/jm/task/core/jdbc/util/Test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/jm/task/core/jdbc/util/Test.txt b/src/main/java/jm/task/core/jdbc/util/Test.txt index 328e5f28..8865939a 100644 --- a/src/main/java/jm/task/core/jdbc/util/Test.txt +++ b/src/main/java/jm/task/core/jdbc/util/Test.txt @@ -2,4 +2,4 @@ Privet Kak dela Ok no good -текст из ньюGfrtnf \ No newline at end of file +текст из \ No newline at end of file From f71e90d0e038bf3aa3d8b0e8e1d8ef15048b0cbc Mon Sep 17 00:00:00 2001 From: babay182 Date: Fri, 23 Jul 2021 12:02:44 +0300 Subject: [PATCH 18/20] =?UTF-8?q?=D0=BD=D0=BE=D1=87=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/jm/task/core/jdbc/util/Test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/jm/task/core/jdbc/util/Test.txt b/src/main/java/jm/task/core/jdbc/util/Test.txt index 8865939a..42cc6a51 100644 --- a/src/main/java/jm/task/core/jdbc/util/Test.txt +++ b/src/main/java/jm/task/core/jdbc/util/Test.txt @@ -2,4 +2,4 @@ Privet Kak dela Ok no good -текст из \ No newline at end of file +и снова седая ночь!!! \ No newline at end of file From 5d29523a748d8c7518cfbc39e22acad79cf6b376 Mon Sep 17 00:00:00 2001 From: Ilya Babashin <59039708+babay182@users.noreply.github.com> Date: Fri, 23 Jul 2021 12:08:26 +0300 Subject: [PATCH 19/20] Update Test.txt --- src/main/java/jm/task/core/jdbc/util/Test.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/jm/task/core/jdbc/util/Test.txt b/src/main/java/jm/task/core/jdbc/util/Test.txt index eacb4bec..f03d940a 100644 --- a/src/main/java/jm/task/core/jdbc/util/Test.txt +++ b/src/main/java/jm/task/core/jdbc/util/Test.txt @@ -1,4 +1,3 @@ Privet Kak dela Ok -no good From 1504b8545ca313fcd2e9e2b42498f5276b417d55 Mon Sep 17 00:00:00 2001 From: babay182 Date: Fri, 23 Jul 2021 12:18:52 +0300 Subject: [PATCH 20/20] =?UTF-8?q?=D0=BD=D0=BE=D1=87=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/jm/task/core/jdbc/util/Test.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/jm/task/core/jdbc/util/Test.txt b/src/main/java/jm/task/core/jdbc/util/Test.txt index 5b5884d7..42cc6a51 100644 --- a/src/main/java/jm/task/core/jdbc/util/Test.txt +++ b/src/main/java/jm/task/core/jdbc/util/Test.txt @@ -1,4 +1,5 @@ Privet Kak dela Ok - +no good +и снова седая ночь!!! \ No newline at end of file