├── .gitignore ├── README.md ├── pom.xml └── src ├── main ├── java │ ├── Main.java │ ├── dao │ │ ├── UserDAO.java │ │ ├── UserDAOHibernateImpl.java │ │ └── UserDAOJDBCImpl.java │ ├── model │ │ └── User.java │ ├── service │ │ ├── UserService.java │ │ ├── UserServiceHibernateImpl.java │ │ └── UserServiceJDBCImpl.java │ └── util │ │ └── Util.java └── resources │ ├── hibernate.cfg.xml │ └── hibernate.properties └── test └── java └── service ├── UserDAOJDBCImplTest.java └── UserServiceHibernateImplTest.java /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | !**/src/main/**/target/ 4 | !**/src/test/**/target/ 5 | 6 | ### IntelliJ IDEA ### 7 | .idea 8 | *.iws 9 | *.iml 10 | *.ipr 11 | 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # IntoductionJDBCAndHibernate 2 | 3 | In this project, we work in Java with a local database using the JDBC standard and the Hibernate framework: we establish a connection to the database, create a user table, add users to the database, get a list of users, remove users from the table and delete the table itself. Hibernate is configured in three different ways: 4 | 5 | - passing an instance of java.util.Properties to Configuration.setProperties(); 6 | - placing a file named hibernate.properties in the root of the classpath; 7 | - inclusion of elements in the hibernate.cfg.xml file. 8 | 9 | ---- 10 | 11 | В этом проекте мы работаем в Java с локальной базой данных, используя стандарт JDBC и фреймворк Hibernate: устанавливаем соединение с базой данных, создаем таблицу пользователей, добавляем пользователей в базу данных, получаем список пользователей, удаляем пользователей из таблицы и удаляем саму таблицу. Hibernate настраиваем тремя различными способами: 12 | 13 | - передачей экземпляра java.util.Properties в Configuration.setProperties(); 14 | - размещение файла с именем hibernate.properties в корне classpath; 15 | - включение элементов в файл hibernate.cfg.xml. 16 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | IntoductionJDBCAndHibernate 8 | IntoductionJDBCAndHibernate 9 | 1.0-SNAPSHOT 10 | 11 | 12 | 17 13 | 17 14 | UTF-8 15 | 16 | 17 | 18 | 19 | org.projectlombok 20 | lombok 21 | 1.18.26 22 | provided 23 | 24 | 25 | 26 | org.junit.jupiter 27 | junit-jupiter-api 28 | 5.9.2 29 | test 30 | 31 | 32 | 33 | mysql 34 | mysql-connector-java 35 | 8.0.33 36 | 37 | 38 | 39 | org.hibernate.javax.persistence 40 | hibernate-jpa-2.1-api 41 | 1.0.2.Final 42 | 43 | 44 | 45 | org.hibernate 46 | hibernate-core 47 | 5.6.8.Final 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /src/main/java/Main.java: -------------------------------------------------------------------------------- 1 | import dao.UserDAO; 2 | import dao.UserDAOJDBCImpl; 3 | import model.User; 4 | import service.UserService; 5 | import service.UserServiceHibernateImpl; 6 | import service.UserServiceJDBCImpl; 7 | import util.Util; 8 | 9 | import java.util.List; 10 | 11 | public class Main { 12 | 13 | public static void main(String[] args) { 14 | //scryptJDBC(); 15 | scryptHibernate(); 16 | 17 | } 18 | 19 | private static void scryptJDBC() { 20 | Util.getJDBCConnection(); 21 | UserService userService = new UserServiceJDBCImpl(); 22 | userService.createUserTable(); 23 | userService.saveUser("Андрей", "Иванов", (byte) 25); 24 | userService.saveUser("name1", "lastName1", (byte) 35); 25 | userService.saveUser("name2", "lastName2", (byte) 45); 26 | userService.saveUser("name3", "lastName3", (byte) 65); 27 | List allUsers = userService.getAllUsers(); 28 | allUsers.forEach(System.out::println); 29 | userService.clearUserTable(); 30 | userService.dropUserTable(); 31 | } 32 | 33 | private static void scryptHibernate() { 34 | Util.getHibernateConnection(); 35 | UserService userService = new UserServiceHibernateImpl(); 36 | userService.createUserTable(); 37 | userService.saveUser("Андрей", "Иванов", (byte) 25); 38 | userService.saveUser("name1", "lastName1", (byte) 35); 39 | userService.saveUser("name2", "lastName2", (byte) 45); 40 | userService.saveUser("name3", "lastName3", (byte) 65); 41 | List allUsers = userService.getAllUsers(); 42 | allUsers.forEach(System.out::println); 43 | userService.clearUserTable(); 44 | userService.dropUserTable(); 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/dao/UserDAO.java: -------------------------------------------------------------------------------- 1 | package dao; 2 | 3 | import model.User; 4 | 5 | import java.util.List; 6 | 7 | public interface UserDAO { 8 | 9 | void createUserTable(); 10 | 11 | void dropUserTable(); 12 | 13 | void saveUser(String name, String lastName, byte age); 14 | 15 | void removeUserById(long id); 16 | 17 | List getAllUsers(); 18 | 19 | void clearUserTable(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/dao/UserDAOHibernateImpl.java: -------------------------------------------------------------------------------- 1 | package dao; 2 | 3 | import model.User; 4 | import org.hibernate.HibernateException; 5 | import org.hibernate.Session; 6 | import org.hibernate.SessionFactory; 7 | import org.hibernate.Transaction; 8 | import util.Util; 9 | 10 | import java.util.List; 11 | 12 | public class UserDAOHibernateImpl implements UserDAO { 13 | 14 | private final SessionFactory sessionFactory = Util.getSessionFactory(); 15 | 16 | @Override 17 | public void createUserTable() { 18 | String sql = "CREATE TABLE IF NOT EXISTS user (id BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(45), lastName VARCHAR(45), age TINYINT(3))"; 19 | try (Session session = sessionFactory.openSession()) { 20 | Transaction transaction = session.beginTransaction(); 21 | session.createSQLQuery(sql).executeUpdate(); 22 | transaction.commit(); 23 | } catch (HibernateException e) { 24 | throw new RuntimeException(e); 25 | } 26 | } 27 | 28 | @Override 29 | public void dropUserTable() { 30 | String sql = "DROP TABLE IF EXISTS user"; 31 | try (Session session = sessionFactory.openSession()) { 32 | Transaction transaction = session.beginTransaction(); 33 | session.createSQLQuery(sql).executeUpdate(); 34 | transaction.commit(); 35 | } catch (HibernateException e) { 36 | throw new RuntimeException(e); 37 | } 38 | } 39 | 40 | @Override 41 | public void saveUser(String name, String lastName, byte age) { 42 | Transaction transaction = null; 43 | try (Session session = sessionFactory.openSession()) { 44 | transaction = session.beginTransaction(); 45 | session.persist(new User(name, lastName, age)); 46 | transaction.commit(); 47 | System.out.println("User с именем" + name + " фамилией " + lastName + " добавлен в базу данных"); 48 | } catch (HibernateException e) { 49 | if (transaction != null) { 50 | transaction.rollback(); 51 | } 52 | throw new RuntimeException(e); 53 | } 54 | 55 | } 56 | 57 | @Override 58 | public void removeUserById(long id) { 59 | Transaction transaction = null; 60 | try (Session session = sessionFactory.openSession()) { 61 | transaction = session.beginTransaction(); 62 | User user = session.get(User.class, id); 63 | session.delete(user); 64 | transaction.commit(); 65 | } catch (HibernateException e) { 66 | if (transaction != null) { 67 | transaction.rollback(); 68 | } 69 | throw new RuntimeException(e); 70 | } 71 | 72 | } 73 | 74 | @Override 75 | public List getAllUsers() { 76 | List userList; 77 | Transaction transaction = null; 78 | try (Session session = sessionFactory.openSession()) { 79 | transaction = session.beginTransaction(); 80 | userList = session.createQuery("from User").list(); 81 | transaction.commit(); 82 | } catch (HibernateException e) { 83 | if (transaction != null) { 84 | transaction.rollback(); 85 | } 86 | throw new RuntimeException(e); 87 | } 88 | return userList; 89 | } 90 | 91 | @Override 92 | public void clearUserTable() { 93 | String sql = "TRUNCATE TABLE user"; 94 | try (Session session = sessionFactory.openSession()) { 95 | Transaction transaction = session.beginTransaction(); 96 | session.createSQLQuery(sql).executeUpdate(); 97 | transaction.commit(); 98 | } catch (HibernateException e) { 99 | throw new RuntimeException(e); 100 | } 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /src/main/java/dao/UserDAOJDBCImpl.java: -------------------------------------------------------------------------------- 1 | package dao; 2 | 3 | import model.User; 4 | import util.Util; 5 | 6 | import java.sql.*; 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | public class UserDAOJDBCImpl implements UserDAO { 11 | 12 | private Connection connection = Util.getJDBCConnection(); 13 | 14 | @Override 15 | public void createUserTable() { 16 | String sql = "CREATE TABLE IF NOT EXISTS user (id BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(45), lastName VARCHAR(45), age TINYINT(3))"; 17 | try (Statement statement = connection.createStatement()) { 18 | statement.executeUpdate(sql); 19 | } catch (SQLException e) { 20 | throw new RuntimeException(e); 21 | } 22 | } 23 | 24 | @Override 25 | public void dropUserTable() { 26 | String sql = "DROP TABLE IF EXISTS user"; 27 | try (Statement statement = connection.createStatement()) { 28 | statement.executeUpdate(sql); 29 | } catch (SQLException e) { 30 | throw new RuntimeException(e); 31 | } 32 | } 33 | 34 | @Override 35 | public void saveUser(String name, String lastName, byte age) { 36 | String sql = "INSERT INTO user (name, lastName, age) VALUES (?, ?, ?)"; 37 | try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) { 38 | preparedStatement.setString(1, name); 39 | preparedStatement.setString(2, lastName); 40 | preparedStatement.setByte(3, age); 41 | preparedStatement.executeUpdate(); 42 | connection.commit(); 43 | System.out.println("User с именем " + name + " фамилией " + lastName + " добавлен в базу данных"); 44 | } catch (SQLException e) { 45 | try { 46 | connection.rollback(); 47 | } catch (SQLException ex) { 48 | throw new RuntimeException(ex); 49 | } 50 | throw new RuntimeException(e); 51 | } 52 | 53 | } 54 | 55 | @Override 56 | public void removeUserById(long id) { 57 | String sql = "DELETE FROM user WHERE id = ?"; 58 | try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) { 59 | preparedStatement.setLong(1, id); 60 | preparedStatement.executeUpdate(); 61 | connection.commit(); 62 | } catch (SQLException e) { 63 | try { 64 | connection.rollback(); 65 | } catch (SQLException ex) { 66 | throw new RuntimeException(ex); 67 | } 68 | throw new RuntimeException(e); 69 | } 70 | } 71 | 72 | @Override 73 | public List getAllUsers() { 74 | List userList = new ArrayList<>(); 75 | String sql = "SELECT id, name, lastName, age FROM user"; 76 | try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) { 77 | ResultSet resultSet = preparedStatement.executeQuery(); 78 | while (resultSet.next()) { 79 | User user = new User(resultSet.getString("name"), resultSet.getString("lastName"), resultSet.getByte("age")); 80 | user.setId(resultSet.getLong("id")); 81 | userList.add(user); 82 | } 83 | connection.commit(); 84 | } catch (SQLException e) { 85 | try { 86 | connection.rollback(); 87 | } catch (SQLException ex) { 88 | throw new RuntimeException(ex); 89 | } 90 | throw new RuntimeException(e); 91 | } 92 | return userList; 93 | } 94 | 95 | @Override 96 | public void clearUserTable() { 97 | String sql = "TRUNCATE TABLE user"; 98 | try (Statement statement = connection.createStatement()) { 99 | statement.executeUpdate(sql); 100 | } catch (SQLException e) { 101 | throw new RuntimeException(e); 102 | } 103 | } 104 | 105 | } 106 | -------------------------------------------------------------------------------- /src/main/java/model/User.java: -------------------------------------------------------------------------------- 1 | package model; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | @Entity 11 | @Table(name = "user") 12 | public class User { 13 | @Id 14 | @GeneratedValue(strategy = GenerationType.IDENTITY) 15 | private long id; 16 | @Column 17 | private String name; 18 | @Column 19 | private String lastName; 20 | @Column 21 | private byte age; 22 | 23 | public User(String name, String lastName, byte age) { 24 | this.name = name; 25 | this.lastName = lastName; 26 | this.age = age; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/service/UserService.java: -------------------------------------------------------------------------------- 1 | package service; 2 | 3 | import model.User; 4 | 5 | import java.util.List; 6 | 7 | public interface UserService { 8 | 9 | void createUserTable(); 10 | 11 | void dropUserTable(); 12 | 13 | void saveUser(String name, String lastName, byte age); 14 | 15 | void removeUserById(long id); 16 | 17 | List getAllUsers(); 18 | 19 | void clearUserTable(); 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/service/UserServiceHibernateImpl.java: -------------------------------------------------------------------------------- 1 | package service; 2 | 3 | import dao.UserDAO; 4 | import dao.UserDAOHibernateImpl; 5 | import model.User; 6 | 7 | import java.util.List; 8 | 9 | public class UserServiceHibernateImpl implements UserService { 10 | 11 | private UserDAO userDAO = new UserDAOHibernateImpl(); 12 | 13 | 14 | @Override 15 | public void createUserTable() { 16 | userDAO.createUserTable(); 17 | } 18 | 19 | @Override 20 | public void dropUserTable() { 21 | userDAO.dropUserTable(); 22 | 23 | } 24 | 25 | @Override 26 | public void saveUser(String name, String lastName, byte age) { 27 | userDAO.saveUser(name, lastName, age); 28 | } 29 | 30 | @Override 31 | public void removeUserById(long id) { 32 | userDAO.removeUserById(id); 33 | 34 | } 35 | 36 | @Override 37 | public List getAllUsers() { 38 | return userDAO.getAllUsers(); 39 | } 40 | 41 | @Override 42 | public void clearUserTable() { 43 | userDAO.clearUserTable(); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/service/UserServiceJDBCImpl.java: -------------------------------------------------------------------------------- 1 | package service; 2 | 3 | import dao.UserDAO; 4 | import dao.UserDAOJDBCImpl; 5 | import model.User; 6 | 7 | import java.util.List; 8 | 9 | public class UserServiceJDBCImpl implements UserService { 10 | 11 | private UserDAO userDAO = new UserDAOJDBCImpl(); 12 | 13 | @Override 14 | public void createUserTable() { 15 | userDAO.createUserTable(); 16 | } 17 | 18 | @Override 19 | public void dropUserTable() { 20 | userDAO.dropUserTable(); 21 | } 22 | 23 | @Override 24 | public void saveUser(String name, String lastName, byte age) { 25 | userDAO.saveUser(name, lastName, age); 26 | } 27 | 28 | @Override 29 | public void removeUserById(long id) { 30 | userDAO.removeUserById(id); 31 | } 32 | 33 | @Override 34 | public List getAllUsers() { 35 | return userDAO.getAllUsers(); 36 | } 37 | 38 | @Override 39 | public void clearUserTable() { 40 | userDAO.clearUserTable(); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/util/Util.java: -------------------------------------------------------------------------------- 1 | package util; 2 | 3 | import model.User; 4 | import org.hibernate.SessionFactory; 5 | import org.hibernate.boot.registry.StandardServiceRegistryBuilder; 6 | import org.hibernate.cfg.Configuration; 7 | import org.hibernate.cfg.Environment; 8 | import org.hibernate.service.ServiceRegistry; 9 | 10 | import java.sql.Connection; 11 | import java.sql.DriverManager; 12 | import java.sql.SQLException; 13 | import java.util.Properties; 14 | 15 | public class Util { 16 | private static final String URL = "jdbc:mysql://localhost:3306/test"; 17 | private static final String USER_NAME = "root"; 18 | private static final String PASSWORD = "root"; 19 | 20 | private static SessionFactory sessionFactory; 21 | 22 | private Util() { 23 | } 24 | 25 | public static Connection getJDBCConnection() { 26 | Connection connection; 27 | try { 28 | connection = DriverManager.getConnection(URL, USER_NAME, PASSWORD); 29 | connection.setAutoCommit(false); 30 | } catch (SQLException e) { 31 | System.out.println("Соединение не установлено..."); 32 | throw new RuntimeException(e); 33 | } 34 | return connection; 35 | } 36 | 37 | public static SessionFactory getHibernateConnection(){ 38 | if (sessionFactory == null) { 39 | try { 40 | Configuration configuration = new Configuration(); 41 | 42 | Properties properties = new Properties(); 43 | properties.put(Environment.DRIVER, "com.mysql.cj.jdbc.Driver"); 44 | properties.put(Environment.URL, URL); 45 | properties.put(Environment.USER, USER_NAME); 46 | properties.put(Environment.PASS, PASSWORD); 47 | properties.put(Environment.DIALECT, "org.hibernate.dialect.MySQL5Dialect"); 48 | properties.put(Environment.SHOW_SQL, "true"); 49 | properties.put(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread"); 50 | properties.put(Environment.HBM2DDL_AUTO, "create-drop"); 51 | 52 | configuration.setProperties(properties); 53 | 54 | configuration.addAnnotatedClass(User.class); 55 | 56 | ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() 57 | .applySettings(configuration.getProperties()).build(); 58 | 59 | sessionFactory = configuration.buildSessionFactory(serviceRegistry); 60 | } catch (Exception e) { 61 | e.printStackTrace(); 62 | } 63 | } 64 | return sessionFactory; 65 | } 66 | 67 | 68 | public static SessionFactory getSessionFactoryProperties() { //hibernate.properties (in resources) 69 | if (sessionFactory == null) { 70 | try { Configuration configuration = new Configuration(); 71 | configuration.addAnnotatedClass(User.class); 72 | 73 | StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); 74 | builder.applySettings(configuration.getProperties()); 75 | 76 | sessionFactory = configuration.buildSessionFactory(builder.build()); 77 | } catch (Exception e) { 78 | e.printStackTrace(); 79 | } 80 | } 81 | return sessionFactory; 82 | } 83 | 84 | public static SessionFactory getSessionFactory() { //hibernate.cfg.xml (in resources) 85 | try{ 86 | Configuration configuration = new Configuration().configure(); 87 | sessionFactory = configuration.buildSessionFactory(); 88 | } catch (Exception e) { 89 | e.printStackTrace(); 90 | } 91 | return sessionFactory; 92 | } 93 | 94 | } 95 | -------------------------------------------------------------------------------- /src/main/resources/hibernate.cfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | false 8 | com.mysql.cj.jdbc.Driver 9 | jdbc:mysql://localhost:3306/test 10 | root 11 | root 12 | org.hibernate.dialect.MySQL5Dialect 13 | true 14 | thread 15 | create-drop 16 | true 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/main/resources/hibernate.properties: -------------------------------------------------------------------------------- 1 | hibernate.connection.driver_class=com.mysql.cj.jdbc.Driver 2 | hibernate.connection.url=jdbc:mysql://localhost:3306/test 3 | hibernate.connection.user_name=root 4 | hibernate.connection.password=root 5 | hibernate.dialect=org.hibernate.dialect.MySQL5Dialect 6 | hibernate.show_sql=true 7 | hibernate.current_session_context_class=thread 8 | hibernate.hbm2ddl=create-drop 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/test/java/service/UserDAOJDBCImplTest.java: -------------------------------------------------------------------------------- 1 | package service; 2 | 3 | import model.User; 4 | import org.junit.jupiter.api.BeforeEach; 5 | import org.junit.jupiter.api.Test; 6 | 7 | import java.util.List; 8 | 9 | import static org.junit.jupiter.api.Assertions.*; 10 | 11 | class UserDAOJDBCImplTest { 12 | private UserService userService = new UserServiceJDBCImpl(); 13 | private String testName = "Сергей"; 14 | private String testLastName = "Петров"; 15 | private byte testAge = 37; 16 | 17 | @BeforeEach 18 | public void partTest() { 19 | userService.dropUserTable(); 20 | userService.createUserTable(); 21 | userService.saveUser(testName, testLastName, testAge); 22 | } 23 | 24 | @Test 25 | public void createUserTable() { 26 | try { 27 | userService.dropUserTable(); 28 | userService.createUserTable(); 29 | } catch (Exception e) { 30 | fail("При тестировании создания таблицы произошла ошибка \n" + e.getMessage()); 31 | } 32 | } 33 | 34 | @Test 35 | public void dropUserTable() { 36 | try { 37 | userService.dropUserTable(); 38 | } catch (Exception e) { 39 | fail("При удалении таблицы произошла ошибка \n" + e.getMessage()); 40 | } 41 | } 42 | 43 | @Test 44 | public void saveUser() { 45 | try { 46 | User user = userService.getAllUsers().get(0); 47 | if (!testName.equals(user.getName()) || !testLastName.equals(user.getLastName()) || testAge != user.getAge()) { 48 | fail("User был некорректно сохранен в базу"); 49 | } 50 | } catch (Exception e) { 51 | fail("Во время тестирования создания User произошла ошибка \n" + e.getMessage()); 52 | } 53 | } 54 | 55 | @Test 56 | public void removeUserById() { 57 | try { 58 | userService.removeUserById(1); 59 | } catch (Exception e) { 60 | fail("При тестировании удаления произошла ошибка \n" + e.getMessage()); 61 | } 62 | } 63 | 64 | @Test 65 | public void getAllUsers() { 66 | try { 67 | List allUsers = userService.getAllUsers(); 68 | if (allUsers.size() != 1) { 69 | fail("Некорректно работает метод сохранения пользователей в таблицу"); 70 | } 71 | } catch (Exception e) { 72 | fail("При попытке извлечения пользователей из базы произошла ошибка \n" + e.getMessage()); 73 | } 74 | } 75 | 76 | @Test 77 | public void clearUserTable() { 78 | try { 79 | 80 | userService.clearUserTable(); 81 | if (userService.getAllUsers().size() != 0) { 82 | fail("Метод очистки реализован не корректно"); 83 | } 84 | } catch (Exception e) { 85 | fail("При очистке таблицы произошла ошибка \n" + e.getMessage()); 86 | } 87 | } 88 | } -------------------------------------------------------------------------------- /src/test/java/service/UserServiceHibernateImplTest.java: -------------------------------------------------------------------------------- 1 | package service; 2 | 3 | import model.User; 4 | import org.junit.jupiter.api.BeforeEach; 5 | import org.junit.jupiter.api.Test; 6 | 7 | import java.util.List; 8 | 9 | import static org.junit.jupiter.api.Assertions.*; 10 | 11 | class UserServiceHibernateImplTest { 12 | 13 | private UserService userService = new UserServiceHibernateImpl(); 14 | private String testName = "Сергей"; 15 | private String testLastName = "Петров"; 16 | private byte testAge = 37; 17 | 18 | @BeforeEach 19 | public void partTest() { 20 | userService.dropUserTable(); 21 | userService.createUserTable(); 22 | userService.saveUser(testName, testLastName, testAge); 23 | } 24 | 25 | @Test 26 | public void createUserTable() { 27 | try { 28 | userService.dropUserTable(); 29 | userService.createUserTable(); 30 | } catch (Exception e) { 31 | fail("При тестировании создания таблицы произошла ошибка \n" + e.getMessage()); 32 | } 33 | } 34 | 35 | @Test 36 | public void dropUserTable() { 37 | try { 38 | userService.dropUserTable(); 39 | } catch (Exception e) { 40 | fail("При удалении таблицы произошла ошибка \n" + e.getMessage()); 41 | } 42 | } 43 | 44 | @Test 45 | public void saveUser() { 46 | try { 47 | User user = userService.getAllUsers().get(0); 48 | if (!testName.equals(user.getName()) || !testLastName.equals(user.getLastName()) || testAge != user.getAge()) { 49 | fail("User был некорректно сохранен в базу"); 50 | } 51 | } catch (Exception e) { 52 | fail("Во время тестирования создания User произошла ошибка \n" + e.getMessage()); 53 | } 54 | } 55 | 56 | @Test 57 | public void removeUserById() { 58 | try { 59 | userService.removeUserById(1); 60 | } catch (Exception e) { 61 | fail("При тестировании удаления произошла ошибка \n" + e.getMessage()); 62 | } 63 | } 64 | 65 | @Test 66 | public void getAllUsers() { 67 | try { 68 | List allUsers = userService.getAllUsers(); 69 | if (allUsers.size() != 1) { 70 | fail("Некорректно работает метод сохранения пользователей в таблицу"); 71 | } 72 | } catch (Exception e) { 73 | fail("При попытке извлечения пользователей из базы произошла ошибка \n" + e.getMessage()); 74 | } 75 | } 76 | 77 | @Test 78 | public void clearUserTable() { 79 | try { 80 | 81 | userService.clearUserTable(); 82 | if (userService.getAllUsers().size() != 0) { 83 | fail("Метод очистки реализован не корректно"); 84 | } 85 | } catch (Exception e) { 86 | fail("При очистке таблицы произошла ошибка \n" + e.getMessage()); 87 | } 88 | } 89 | } --------------------------------------------------------------------------------