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