diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..26d33521
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 00000000..24736517
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+TaskJDBC
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 00000000..9acf478f
--- /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..0fefe251
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ mysql.8
+ true
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://localhost:3306
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/.idea/dbnavigator.xml b/.idea/dbnavigator.xml
new file mode 100644
index 00000000..cffd30cb
--- /dev/null
+++ b/.idea/dbnavigator.xml
@@ -0,0 +1,554 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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_23.xml b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_23.xml
new file mode 100644
index 00000000..dc22c960
--- /dev/null
+++ b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_23.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..972ec8d7
--- /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/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 00000000..e96534fb
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 00000000..83067447
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TaskJDBC.iml b/TaskJDBC.iml
new file mode 100644
index 00000000..74a9e79f
--- /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..f2dc4e7a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,7 +33,7 @@
mysql
mysql-connector-java
- 5.1.38
+ 8.0.23
diff --git a/src/main/java/jm/task/core/jdbc/Main.java b/src/main/java/jm/task/core/jdbc/Main.java
index f6e43b0f..aa02d3d4 100644
--- a/src/main/java/jm/task/core/jdbc/Main.java
+++ b/src/main/java/jm/task/core/jdbc/Main.java
@@ -1,7 +1,23 @@
package jm.task.core.jdbc;
+import jm.task.core.jdbc.dao.UserDao;
+import jm.task.core.jdbc.dao.UserDaoJDBCImpl;
+import jm.task.core.jdbc.service.UserService;
+import jm.task.core.jdbc.service.UserServiceImpl;
+import jm.task.core.jdbc.util.Util;
+
public class Main {
public static void main(String[] args) {
// реализуйте алгоритм здесь
+ UserService us = new UserServiceImpl();
+ us.createUsersTable();
+ us.removeUserById(5);
+ us.saveUser("Ruslan", "Baratov", (byte) 26);
+ us.saveUser("Bobik", "Popik", (byte) 16);
+ us.saveUser("Andry", "Pavlov", (byte) 25);
+ us.saveUser("Maria", "Sergeevna", (byte) 18);
+ System.out.println(us.getAllUsers());
+ us.cleanUsersTable();
+ us.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..10b6b13b 100644
--- a/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java
+++ b/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java
@@ -1,7 +1,13 @@
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.Session;
+import org.hibernate.Transaction;
+import javax.swing.text.html.parser.Entity;
+import java.util.ArrayList;
import java.util.List;
public class UserDaoHibernateImpl implements UserDao {
@@ -12,31 +18,64 @@ public UserDaoHibernateImpl() {
@Override
public void createUsersTable() {
-
+ Session session = Util.getSessionFactory().openSession();
+ Transaction t = session.beginTransaction();
+ session.createSQLQuery("CREATE TABLE IF NOT EXISTS user (id INTEGER not NULL AUTO_INCREMENT, " +
+ " name VARCHAR(50), lastName VARCHAR (50), age INTEGER,PRIMARY KEY (id))")
+ .executeUpdate();
+ t.commit();
+ session.close();
}
@Override
public void dropUsersTable() {
-
+ Session session = Util.getSessionFactory().openSession();
+ Transaction t = session.beginTransaction();
+ session.createSQLQuery("DROP TABLE IF EXISTS user").executeUpdate();
+ t.commit();
+ session.close();
}
@Override
public void saveUser(String name, String lastName, byte age) {
-
+ Session session = Util.getSessionFactory().openSession();
+ Transaction tx1 = session.beginTransaction();
+ session.save(new User(name, lastName, age));
+ tx1.commit();
+ System.out.println(" User с именем – " + name + " добавлен в базу данных");
+ session.close();
}
@Override
public void removeUserById(long id) {
-
+ Session session = Util.getSessionFactory().openSession();
+ Transaction tx1 = session.beginTransaction();
+ if (session.get(User.class, id) != null) {
+ session.delete(session.get(User.class, id));
+ }
+ tx1.commit();
+ session.close();
}
@Override
public List getAllUsers() {
- return null;
+ Session session = Util.getSessionFactory().openSession();
+ // List users = session.createSQLQuery("SELECT * FROM user").addEntity(User.class).list(); // SQL
+ Query query = session.createQuery("FROM User"); // HQL место таблицы указывается имя класса
+ List users = query.list();
+ session.close();
+ return users;
}
@Override
public void cleanUsersTable() {
-
+ Session session = Util.getSessionFactory().openSession();
+ Transaction t1 = session.beginTransaction();
+ session.createQuery("DELETE FROM User").executeUpdate(); // HQL запрос
+// for (User user : getAllUsers()) {
+// session.delete(user); // CRITERIA API
+// }
+ t1.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..73eda08a 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,99 @@
package jm.task.core.jdbc.dao;
import jm.task.core.jdbc.model.User;
+import jm.task.core.jdbc.util.Util;
+import java.sql.*;
+import java.util.ArrayList;
import java.util.List;
public class UserDaoJDBCImpl implements UserDao {
- public UserDaoJDBCImpl() {
+ private Util util;
+ private Statement statement;
+ private Connection connection;
+ private PreparedStatement pstmt;
+
+ public UserDaoJDBCImpl() {
+ util = new Util();
+ try {
+ connection = util.connect();
+ statement = connection.createStatement();
+ } catch (ClassNotFoundException e) {
+ System.out.println("Ошибка загрузки драйвера JDBC");
+ } catch (SQLException e) {
+ System.out.println("Ошибка подключение к БД " + e);
+ }
}
public void createUsersTable() {
-
+ try {
+ statement.executeUpdate("CREATE TABLE IF NOT EXISTS user (id INTEGER not NULL AUTO_INCREMENT, " +
+ " name VARCHAR(50), lastName VARCHAR (50), age INTEGER,PRIMARY KEY (id))");
+ } catch (SQLException e) {
+ System.out.println("Ошибка создание таблицы");
+ }
}
public void dropUsersTable() {
-
+ try {
+ pstmt = connection.prepareStatement("DROP TABLE IF EXISTS user");
+ pstmt.executeUpdate();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
}
- public void saveUser(String name, String lastName, byte age) {
+ public void saveUser(String name, String lastName, byte age) { //Сохранить пользователя
+ try {
+ pstmt = connection.prepareStatement("INSERT INTO user (name, lastName, age)" +
+ " VALUES (?, ?, ?)");
+ pstmt.setString(1, name);
+ pstmt.setString(2, lastName);
+ pstmt.setInt(3, age);
+ pstmt.executeUpdate();
+ System.out.println(" User с именем – "+name+" добавлен в базу данных");
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
}
public void removeUserById(long id) {
-
+ try {
+ pstmt = connection.prepareStatement("DELETE FROM user WHERE id = ?");
+ pstmt.setLong(1, id);
+ pstmt.executeUpdate();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
}
public List getAllUsers() {
- return null;
+ List list = new ArrayList<>();
+ int count = 0;
+ try {
+ pstmt = connection.prepareStatement("SELECT * FROM user");
+ //pstmt.setString(1,"user");
+ ResultSet rs = pstmt.executeQuery();
+ while (rs.next()) {
+ list.add(new User(rs.getString(2), rs.getString(3), rs.getByte(4)));
+ list.get(count).setId(rs.getLong(1));
+ count++;
+ }
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return list;
}
public void cleanUsersTable() {
-
+ try {
+ pstmt = connection.prepareStatement("TRUNCATE TABLE user;");
+ // pstmt.setString(1,"user");
+ pstmt.executeUpdate();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
}
}
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..c38d82b1 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,14 @@
package jm.task.core.jdbc.model;
-import javax.persistence.Column;
-import javax.persistence.Id;
-import javax.persistence.Table;
-@Table
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "user")
public class User {
@Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
@@ -59,4 +61,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/UserService.java b/src/main/java/jm/task/core/jdbc/service/UserService.java
index 80542c68..dc57788d 100644
--- a/src/main/java/jm/task/core/jdbc/service/UserService.java
+++ b/src/main/java/jm/task/core/jdbc/service/UserService.java
@@ -5,6 +5,7 @@
import java.util.List;
public interface UserService {
+
void createUsersTable();
void dropUsersTable();
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..08fd01a4 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,35 @@
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 UserDao userDao = new UserDaoHibernateImpl();
public void createUsersTable() {
-
+ userDao.createUsersTable();
}
public void dropUsersTable() {
-
+ userDao.dropUsersTable();
}
public void saveUser(String name, String lastName, byte age) {
-
+ userDao.saveUser(name,lastName,age);
}
public void removeUserById(long id) {
-
+ userDao.removeUserById(id);
}
public List getAllUsers() {
- return null;
+ return userDao.getAllUsers();
}
public void 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 59e462ba..4ee0aeb1 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,52 @@
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.*;
+import java.util.Properties;
+
+
public class Util {
+ private static Connection conn;
+ private static SessionFactory sessionFactory;
+
+
+ public Connection connect() throws ClassNotFoundException, SQLException {
+ Class.forName("com.mysql.cj.jdbc.Driver");
+ return conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb?useSSL=false", "root", "root");
+ }
+
+
+ public void disconnect() throws SQLException {
+ conn.close();
+ }
+
+ public static SessionFactory getSessionFactory() {
+ if (sessionFactory == null) {
+ Properties settings = new Properties();
+ settings.put(Environment.DRIVER, "com.mysql.cj.jdbc.Driver");
+ settings.put(Environment.URL, "jdbc:mysql://localhost:3306/userdb?useSSL=false");
+ settings.put(Environment.USER, "root");
+ settings.put(Environment.PASS, "root");
+ settings.put(Environment.DIALECT, "org.hibernate.dialect.MySQL5Dialect");
+ settings.put(Environment.SHOW_SQL, "true");
+ settings.put(Environment.FORMAT_SQL, "true");
+ Configuration configuration = new Configuration();
+ configuration.setProperties(settings);
+ configuration.addAnnotatedClass(User.class);
+
+ ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
+ .applySettings(configuration.getProperties()).build();
+
+ sessionFactory = configuration.buildSessionFactory(serviceRegistry);
+ }
+ return sessionFactory;
+ }
// реализуйте настройку соеденения с БД
}
diff --git a/target/classes/jm/task/core/jdbc/Main.class b/target/classes/jm/task/core/jdbc/Main.class
new file mode 100644
index 00000000..45db47d1
Binary files /dev/null and b/target/classes/jm/task/core/jdbc/Main.class differ
diff --git a/target/classes/jm/task/core/jdbc/dao/UserDao.class b/target/classes/jm/task/core/jdbc/dao/UserDao.class
new file mode 100644
index 00000000..07e6c858
Binary files /dev/null and b/target/classes/jm/task/core/jdbc/dao/UserDao.class differ
diff --git a/target/classes/jm/task/core/jdbc/dao/UserDaoHibernateImpl.class b/target/classes/jm/task/core/jdbc/dao/UserDaoHibernateImpl.class
new file mode 100644
index 00000000..926be784
Binary files /dev/null and b/target/classes/jm/task/core/jdbc/dao/UserDaoHibernateImpl.class differ
diff --git a/target/classes/jm/task/core/jdbc/dao/UserDaoJDBCImpl.class b/target/classes/jm/task/core/jdbc/dao/UserDaoJDBCImpl.class
new file mode 100644
index 00000000..e3dba63f
Binary files /dev/null and b/target/classes/jm/task/core/jdbc/dao/UserDaoJDBCImpl.class differ
diff --git a/target/classes/jm/task/core/jdbc/model/User.class b/target/classes/jm/task/core/jdbc/model/User.class
new file mode 100644
index 00000000..3a346e77
Binary files /dev/null and b/target/classes/jm/task/core/jdbc/model/User.class differ
diff --git a/target/classes/jm/task/core/jdbc/service/UserService.class b/target/classes/jm/task/core/jdbc/service/UserService.class
new file mode 100644
index 00000000..35a8eef0
Binary files /dev/null and b/target/classes/jm/task/core/jdbc/service/UserService.class differ
diff --git a/target/classes/jm/task/core/jdbc/service/UserServiceImpl.class b/target/classes/jm/task/core/jdbc/service/UserServiceImpl.class
new file mode 100644
index 00000000..830f78be
Binary files /dev/null and b/target/classes/jm/task/core/jdbc/service/UserServiceImpl.class differ
diff --git a/target/classes/jm/task/core/jdbc/util/Util.class b/target/classes/jm/task/core/jdbc/util/Util.class
new file mode 100644
index 00000000..678ddfbf
Binary files /dev/null and b/target/classes/jm/task/core/jdbc/util/Util.class differ
diff --git a/target/test-classes/UserServiceTest.class b/target/test-classes/UserServiceTest.class
new file mode 100644
index 00000000..5521a21b
Binary files /dev/null and b/target/test-classes/UserServiceTest.class differ