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_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_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__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__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__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_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_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_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_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/.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..bcabf45d
--- /dev/null
+++ b/TaskJDBC.iml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 0605a4c0..db77112e 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
@@ -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 f6e43b0f..3e4fe836 100644
--- a/src/main/java/jm/task/core/jdbc/Main.java
+++ b/src/main/java/jm/task/core/jdbc/Main.java
@@ -1,7 +1,18 @@
package jm.task.core.jdbc;
+import jm.task.core.jdbc.service.UserService;
+import jm.task.core.jdbc.service.UserServiceImpl;
+
public class Main {
public static void main(String[] args) {
- // реализуйте алгоритм здесь
+ UserService 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..b43cc45d 100644
--- a/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java
+++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java
@@ -1,42 +1,74 @@
package jm.task.core.jdbc.dao;
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() {
-
+ 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();
}
@Override
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();
+ 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();
}
@Override
public List getAllUsers() {
- return null;
+ Session session = sessionFactory.openSession();
+ return session.createQuery("From User").list();
}
@Override
public void cleanUsersTable() {
-
+ 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 a6c6c359..3a5f360b 100644
--- a/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java
+++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java
@@ -2,34 +2,94 @@
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) {
+ 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 + " добавлен в базу данных");
+ } catch (SQLException e) {
+ e.getMessage();
+ System.err.println("Не удалось добавить User'a ");
+ }
}
public void removeUserById(long id) {
-
+ try (PreparedStatement statement = getConnection().prepareStatement("DELETE FROM my_db_test.user WHERE id = ?;")) {
+ statement.setLong(1, id);
+ statement.executeUpdate();
+ } catch (SQLException e) {
+ e.getMessage();
+ System.err.println("Не удалось Удалить User'a ");
+ }
}
public List getAllUsers() {
+ List list = new ArrayList<>();
+ try (Statement statement = getConnection().createStatement()) {
+ ResultSet resultSet = statement.executeQuery("SELECT * FROM user;");
+ 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;
+ try (Statement statement = getConnection().createStatement()) {
+ statement.execute("TRUNCATE TABLE user");
+ } 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..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
@@ -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..24a9f4e8 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,37 @@
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.model.User;
import java.util.List;
public class UserServiceImpl implements UserService {
- public void createUsersTable() {
+ private UserDao userDaoHibernate = new UserDaoHibernateImpl();
+ public void createUsersTable() {
+ userDaoHibernate.createUsersTable();
}
public void dropUsersTable() {
-
+ userDaoHibernate.dropUsersTable();
}
public void saveUser(String name, String lastName, byte age) {
-
+ userDaoHibernate.saveUser(name, lastName, age);
}
public void removeUserById(long id) {
+ userDaoHibernate.removeUserById(id);
}
public List getAllUsers() {
- return null;
+ return userDaoHibernate.getAllUsers();
}
public void 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 59e462ba..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,5 +1,38 @@
+
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 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);
+ }
}