diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 00000000..e7a827b9
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/dataSources.local.xml b/.idea/dataSources.local.xml
new file mode 100644
index 00000000..317d84de
--- /dev/null
+++ b/.idea/dataSources.local.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+ #@
+ `
+
+
+ master_key
+ aadmin
+
+
+
+
+
+
+
+
+ #@
+ `
+
+
+ aadmin
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 00000000..a898d961
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,23 @@
+
+
+
+
+ mysql.8
+ true
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://localhost:3306/base_for_work
+ $ProjectFileDir$
+
+
+ mysql
+ true
+ true
+ Hibernate
+
+C:/Users/steff/IdeaProjects/CoreTaskTemplate/src/main/resources/hibernate.cfg.xml
+ com.mysql.jdbc.Driver
+ jdbc:mysql://localhost:3306/base_for_work
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909.xml b/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909.xml
new file mode 100644
index 00000000..aeeb40d0
--- /dev/null
+++ b/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909.xml
@@ -0,0 +1,1036 @@
+
+
+
+
+ 8.0.27
+ |root||aadmin||ALTER|G
+|root||root|localhost|ALTER|G
+|root||aadmin||ALTER ROUTINE|G
+|root||root|localhost|ALTER ROUTINE|G
+|root||root|localhost|APPLICATION_PASSWORD_ADMIN|G
+|root||root|localhost|AUDIT_ADMIN|G
+|root||root|localhost|AUTHENTICATION_POLICY_ADMIN|G
+|root||mysql.session|localhost|BACKUP_ADMIN|G
+|root||root|localhost|BACKUP_ADMIN|G
+|root||root|localhost|BINLOG_ADMIN|G
+|root||root|localhost|BINLOG_ENCRYPTION_ADMIN|G
+|root||mysql.session|localhost|CLONE_ADMIN|G
+|root||root|localhost|CLONE_ADMIN|G
+|root||mysql.session|localhost|CONNECTION_ADMIN|G
+|root||root|localhost|CONNECTION_ADMIN|G
+|root||aadmin||CREATE|G
+|root||root|localhost|CREATE|G
+|root||root|localhost|CREATE ROLE|G
+|root||aadmin||CREATE ROUTINE|G
+|root||root|localhost|CREATE ROUTINE|G
+|root||aadmin||CREATE TABLESPACE|G
+|root||root|localhost|CREATE TABLESPACE|G
+|root||aadmin||CREATE TEMPORARY TABLES|G
+|root||root|localhost|CREATE TEMPORARY TABLES|G
+|root||aadmin||CREATE USER|G
+|root||root|localhost|CREATE USER|G
+|root||aadmin||CREATE VIEW|G
+|root||root|localhost|CREATE VIEW|G
+|root||aadmin||DELETE|G
+|root||root|localhost|DELETE|G
+|root||aadmin||DROP|G
+|root||root|localhost|DROP|G
+|root||root|localhost|DROP ROLE|G
+|root||root|localhost|ENCRYPTION_KEY_ADMIN|G
+|root||aadmin||EVENT|G
+|root||root|localhost|EVENT|G
+|root||aadmin||EXECUTE|G
+|root||root|localhost|EXECUTE|G
+|root||aadmin||FILE|G
+|root||root|localhost|FILE|G
+|root||root|localhost|FLUSH_OPTIMIZER_COSTS|G
+|root||root|localhost|FLUSH_STATUS|G
+|root||root|localhost|FLUSH_TABLES|G
+|root||root|localhost|FLUSH_USER_RESOURCES|G
+|root||root|localhost|GROUP_REPLICATION_ADMIN|G
+|root||root|localhost|GROUP_REPLICATION_STREAM|G
+|root||aadmin||INDEX|G
+|root||root|localhost|INDEX|G
+|root||root|localhost|INNODB_REDO_LOG_ARCHIVE|G
+|root||root|localhost|INNODB_REDO_LOG_ENABLE|G
+|root||aadmin||INSERT|G
+|root||root|localhost|INSERT|G
+|root||aadmin||LOCK TABLES|G
+|root||root|localhost|LOCK TABLES|G
+|root||root|localhost|PASSWORDLESS_USER_ADMIN|G
+|root||mysql.session|localhost|PERSIST_RO_VARIABLES_ADMIN|G
+|root||root|localhost|PERSIST_RO_VARIABLES_ADMIN|G
+|root||aadmin||PROCESS|G
+|root||root|localhost|PROCESS|G
+|root||aadmin||REFERENCES|G
+|root||root|localhost|REFERENCES|G
+|root||aadmin||RELOAD|G
+|root||root|localhost|RELOAD|G
+|root||aadmin||REPLICATION CLIENT|G
+|root||root|localhost|REPLICATION CLIENT|G
+|root||aadmin||REPLICATION SLAVE|G
+|root||root|localhost|REPLICATION SLAVE|G
+|root||root|localhost|REPLICATION_APPLIER|G
+|root||root|localhost|REPLICATION_SLAVE_ADMIN|G
+|root||root|localhost|RESOURCE_GROUP_ADMIN|G
+|root||root|localhost|RESOURCE_GROUP_USER|G
+|root||root|localhost|ROLE_ADMIN|G
+|root||aadmin||SELECT|G
+|root||mysql.infoschema|localhost|SELECT|G
+|root||root|localhost|SELECT|G
+|root||root|localhost|SERVICE_CONNECTION_ADMIN|G
+|root||mysql.session|localhost|SESSION_VARIABLES_ADMIN|G
+|root||root|localhost|SESSION_VARIABLES_ADMIN|G
+|root||root|localhost|SET_USER_ID|G
+|root||aadmin||SHOW DATABASES|G
+|root||root|localhost|SHOW DATABASES|G
+|root||aadmin||SHOW VIEW|G
+|root||root|localhost|SHOW VIEW|G
+|root||root|localhost|SHOW_ROUTINE|G
+|root||aadmin||SHUTDOWN|G
+|root||mysql.session|localhost|SHUTDOWN|G
+|root||root|localhost|SHUTDOWN|G
+|root||aadmin||SUPER|G
+|root||mysql.session|localhost|SUPER|G
+|root||root|localhost|SUPER|G
+|root||mysql.infoschema|localhost|SYSTEM_USER|G
+|root||mysql.session|localhost|SYSTEM_USER|G
+|root||mysql.sys|localhost|SYSTEM_USER|G
+|root||root|localhost|SYSTEM_USER|G
+|root||mysql.session|localhost|SYSTEM_VARIABLES_ADMIN|G
+|root||root|localhost|SYSTEM_VARIABLES_ADMIN|G
+|root||root|localhost|TABLE_ENCRYPTION_ADMIN|G
+|root||aadmin||TRIGGER|G
+|root||root|localhost|TRIGGER|G
+|root||aadmin||UPDATE|G
+|root||root|localhost|UPDATE|G
+|root||root|localhost|XA_RECOVER_ADMIN|G
+|root||aadmin||grant option|G
+|root||root|localhost|grant option|G
+performance_schema|schema||mysql.session|localhost|SELECT|G
+sys|schema||mysql.sys|localhost|TRIGGER|G
+ InnoDB
+ InnoDB
+ lower/lower
+
+
+ 1
+ utf8mb4_0900_ai_ci
+
+
+ utf8_general_ci
+
+
+ utf8mb4_0900_ai_ci
+
+
+ utf8mb4_0900_ai_ci
+
+
+ utf8mb4_0900_ai_ci
+
+
+ armscii8
+
+
+ armscii8
+ 1
+
+
+ ascii
+
+
+ ascii
+ 1
+
+
+ big5
+
+
+ big5
+ 1
+
+
+ binary
+ 1
+
+
+ cp1250
+
+
+ cp1250
+
+
+ cp1250
+
+
+ cp1250
+ 1
+
+
+ cp1250
+
+
+ cp1251
+
+
+ cp1251
+
+
+ cp1251
+ 1
+
+
+ cp1251
+
+
+ cp1251
+
+
+ cp1256
+
+
+ cp1256
+ 1
+
+
+ cp1257
+
+
+ cp1257
+ 1
+
+
+ cp1257
+
+
+ cp850
+
+
+ cp850
+ 1
+
+
+ cp852
+
+
+ cp852
+ 1
+
+
+ cp866
+
+
+ cp866
+ 1
+
+
+ cp932
+
+
+ cp932
+ 1
+
+
+ dec8
+
+
+ dec8
+ 1
+
+
+ eucjpms
+
+
+ eucjpms
+ 1
+
+
+ euckr
+
+
+ euckr
+ 1
+
+
+ gb18030
+
+
+ gb18030
+ 1
+
+
+ gb18030
+
+
+ gb2312
+
+
+ gb2312
+ 1
+
+
+ gbk
+
+
+ gbk
+ 1
+
+
+ geostd8
+
+
+ geostd8
+ 1
+
+
+ greek
+
+
+ greek
+ 1
+
+
+ hebrew
+
+
+ hebrew
+ 1
+
+
+ hp8
+
+
+ hp8
+ 1
+
+
+ keybcs2
+
+
+ keybcs2
+ 1
+
+
+ koi8r
+
+
+ koi8r
+ 1
+
+
+ koi8u
+
+
+ koi8u
+ 1
+
+
+ latin1
+
+
+ latin1
+
+
+ latin1
+
+
+ latin1
+
+
+ latin1
+
+
+ latin1
+
+
+ latin1
+
+
+ latin1
+ 1
+
+
+ latin2
+
+
+ latin2
+
+
+ latin2
+
+
+ latin2
+ 1
+
+
+ latin2
+
+
+ latin5
+
+
+ latin5
+ 1
+
+
+ latin7
+
+
+ latin7
+
+
+ latin7
+ 1
+
+
+ latin7
+
+
+ macce
+
+
+ macce
+ 1
+
+
+ macroman
+
+
+ macroman
+ 1
+
+
+ sjis
+
+
+ sjis
+ 1
+
+
+ swe7
+
+
+ swe7
+ 1
+
+
+ tis620
+
+
+ tis620
+ 1
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+ 1
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ucs2
+
+
+ ujis
+
+
+ ujis
+ 1
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+ 1
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16
+
+
+ utf16le
+
+
+ utf16le
+ 1
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+ 1
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf32
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+ 1
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8
+
+
+ utf8mb4
+ 1
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ utf8mb4
+
+
+ caching_sha2_password
+
+
+ localhost
+ caching_sha2_password
+
+
+ localhost
+ caching_sha2_password
+
+
+ localhost
+ caching_sha2_password
+
+
+ localhost
+ caching_sha2_password
+
+
+
+ 1
+ int|0s
+ 1
+ null
+
+
+ 2
+ varchar(50)|0s
+ 1
+
+
+ 3
+ varchar(50)|0s
+ 1
+
+
+ 4
+ int|0s
+ 1
+
+
+ 1
+ id
+ 1
+
+
+
\ No newline at end of file
diff --git a/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909/storage_v2/_src_/schema/information_schema.FNRwLQ.meta b/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909/storage_v2/_src_/schema/information_schema.FNRwLQ.meta
new file mode 100644
index 00000000..1ff3db2e
--- /dev/null
+++ b/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909/storage_v2/_src_/schema/information_schema.FNRwLQ.meta
@@ -0,0 +1,2 @@
+#n:information_schema
+! [null, 0, null, null, -2147483648, -2147483648]
diff --git a/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909/storage_v2/_src_/schema/mysql.osA4Bg.meta b/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909/storage_v2/_src_/schema/mysql.osA4Bg.meta
new file mode 100644
index 00000000..86a53f19
--- /dev/null
+++ b/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909/storage_v2/_src_/schema/mysql.osA4Bg.meta
@@ -0,0 +1,2 @@
+#n:mysql
+! [null, 0, null, null, -2147483648, -2147483648]
diff --git a/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909/storage_v2/_src_/schema/performance_schema.kIw0nw.meta b/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909/storage_v2/_src_/schema/performance_schema.kIw0nw.meta
new file mode 100644
index 00000000..9394db14
--- /dev/null
+++ b/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909/storage_v2/_src_/schema/performance_schema.kIw0nw.meta
@@ -0,0 +1,2 @@
+#n:performance_schema
+! [null, 0, null, null, -2147483648, -2147483648]
diff --git a/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909/storage_v2/_src_/schema/sys.zb4BAA.meta b/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909/storage_v2/_src_/schema/sys.zb4BAA.meta
new file mode 100644
index 00000000..2f4470bb
--- /dev/null
+++ b/.idea/dataSources/02c1dcc5-74a7-4c46-9f0f-a3d7decf9909/storage_v2/_src_/schema/sys.zb4BAA.meta
@@ -0,0 +1,2 @@
+#n:sys
+! [null, 0, null, null, -2147483648, -2147483648]
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/jpa-buddy-datasource.xml b/.idea/jpa-buddy-datasource.xml
new file mode 100644
index 00000000..f5ae5062
--- /dev/null
+++ b/.idea/jpa-buddy-datasource.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jpa-buddy.xml b/.idea/jpa-buddy.xml
new file mode 100644
index 00000000..d08f4008
--- /dev/null
+++ b/.idea/jpa-buddy.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 00000000..242782f2
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 00000000..797acea5
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/shelf/Uncommitted_changes_before_Checkout_at_24_10_2021_16_03_[Changes]/shelved.patch b/.idea/shelf/Uncommitted_changes_before_Checkout_at_24_10_2021_16_03_[Changes]/shelved.patch
new file mode 100644
index 00000000..c8a5ab62
--- /dev/null
+++ b/.idea/shelf/Uncommitted_changes_before_Checkout_at_24_10_2021_16_03_[Changes]/shelved.patch
@@ -0,0 +1,253 @@
+Index: src/main/java/jm/task/core/jdbc/Main.java
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
+<+>package jm.task.core.jdbc;\r\n\r\nimport jm.task.core.jdbc.dao.UserDaoHibernateImpl;\r\nimport jm.task.core.jdbc.model.User;\r\n\r\nimport java.util.List;\r\n\r\npublic class Main {\r\n\r\n public static void main(String[] args) {\r\n// UserService userService = new UserServiceImpl();\r\n// userService.createUsersTable();\r\n// userService.saveUser(\"Vladimir\", \"Nuroev\", (byte)53);\r\n// userService.saveUser(\"Vadim\", \"Rolnin\", (byte)37);\r\n// userService.saveUser(\"Stanislav\", \"Petrov\", (byte)44);\r\n// userService.saveUser(\"Oleg\", \"Igorev\", (byte)29);\r\n// List listUsers = userService.getAllUsers();\r\n// System.out.println(listUsers);\r\n// userService.cleanUsersTable();\r\n// userService.dropUsersTable();\r\n\r\n UserDaoHibernateImpl userDaoHibernate = new UserDaoHibernateImpl();\r\n userDaoHibernate.createUsersTable();\r\n userDaoHibernate.saveUser(\"Vasily\", \"Petrov\", (byte)48);\r\n userDaoHibernate.saveUser(\"Ivan\", \"Kuncevich\", (byte)59);\r\n userDaoHibernate.saveUser(\"Alena\", \"Tibrec\", (byte)22);\r\n userDaoHibernate.saveUser(\"Gleb\", \"Kuchma\", (byte)36);\r\n List listUsers = userDaoHibernate.getAllUsers();\r\n System.out.println(listUsers);\r\n userDaoHibernate.cleanUsersTable();\r\n userDaoHibernate.dropUsersTable();\r\n }\r\n\r\n}\r\n
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/src/main/java/jm/task/core/jdbc/Main.java b/src/main/java/jm/task/core/jdbc/Main.java
+--- a/src/main/java/jm/task/core/jdbc/Main.java (revision 3a73571a16ebf2c3683353a54a71f2c2dd75d07c)
++++ b/src/main/java/jm/task/core/jdbc/Main.java (date 1635080587301)
+@@ -8,17 +8,7 @@
+ public class Main {
+
+ public static void main(String[] args) {
+-// UserService userService = new UserServiceImpl();
+-// userService.createUsersTable();
+-// userService.saveUser("Vladimir", "Nuroev", (byte)53);
+-// userService.saveUser("Vadim", "Rolnin", (byte)37);
+-// userService.saveUser("Stanislav", "Petrov", (byte)44);
+-// userService.saveUser("Oleg", "Igorev", (byte)29);
+-// List listUsers = userService.getAllUsers();
+-// System.out.println(listUsers);
+-// userService.cleanUsersTable();
+-// userService.dropUsersTable();
+-
++ //This is a branch 114
+ UserDaoHibernateImpl userDaoHibernate = new UserDaoHibernateImpl();
+ userDaoHibernate.createUsersTable();
+ userDaoHibernate.saveUser("Vasily", "Petrov", (byte)48);
+@@ -30,5 +20,4 @@
+ userDaoHibernate.cleanUsersTable();
+ userDaoHibernate.dropUsersTable();
+ }
+-
+ }
+Index: .idea/workspace.xml
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/.idea/workspace.xml b/.idea/workspace.xml
+new file mode 100644
+--- /dev/null (date 1635080590750)
++++ b/.idea/workspace.xml (date 1635080590750)
+@@ -0,0 +1,207 @@
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++ 1634900493205
++
++
++ 1634900493205
++
++
++
++
++
++
++
++
++
++
++ 1635075027223
++
++
++
++ 1635075027223
++
++
++ 1635076085627
++
++
++
++ 1635076085627
++
++
++ 1635076256366
++
++
++
++ 1635076256366
++
++
++ 1635076495822
++
++
++
++ 1635076495822
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++ file://$PROJECT_DIR$/src/main/java/jm/task/core/jdbc/model/User.java
++ 64
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+\ No newline at end of file
diff --git a/.idea/shelf/Uncommitted_changes_before_Checkout_at_24_10_2021_16_03__Changes_.xml b/.idea/shelf/Uncommitted_changes_before_Checkout_at_24_10_2021_16_03__Changes_.xml
new file mode 100644
index 00000000..6c8dfe11
--- /dev/null
+++ b/.idea/shelf/Uncommitted_changes_before_Checkout_at_24_10_2021_16_03__Changes_.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/shelf/Uncommitted_changes_before_Checkout_at_24_10_2021_16_05_[Changes]/shelved.patch b/.idea/shelf/Uncommitted_changes_before_Checkout_at_24_10_2021_16_05_[Changes]/shelved.patch
new file mode 100644
index 00000000..4cbe73e6
--- /dev/null
+++ b/.idea/shelf/Uncommitted_changes_before_Checkout_at_24_10_2021_16_05_[Changes]/shelved.patch
@@ -0,0 +1,206 @@
+Index: .idea/workspace.xml
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/.idea/workspace.xml b/.idea/workspace.xml
+new file mode 100644
+--- /dev/null (date 1635080698318)
++++ b/.idea/workspace.xml (date 1635080698318)
+@@ -0,0 +1,195 @@
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++ 1634900493205
++
++
++ 1634900493205
++
++
++
++
++
++
++
++
++
++
++ 1635075027223
++
++
++
++ 1635075027223
++
++
++ 1635076085627
++
++
++
++ 1635076085627
++
++
++ 1635076256366
++
++
++
++ 1635076256366
++
++
++ 1635076495822
++
++
++
++ 1635076495822
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+\ No newline at end of file
diff --git a/.idea/shelf/Uncommitted_changes_before_Checkout_at_24_10_2021_16_05__Changes_.xml b/.idea/shelf/Uncommitted_changes_before_Checkout_at_24_10_2021_16_05__Changes_.xml
new file mode 100644
index 00000000..9a10015b
--- /dev/null
+++ b/.idea/shelf/Uncommitted_changes_before_Checkout_at_24_10_2021_16_05__Changes_.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ 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/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 00000000..c3450524
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1634900493205
+
+
+ 1634900493205
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1635075027223
+
+
+
+ 1635075027223
+
+
+ 1635076085627
+
+
+
+ 1635076085627
+
+
+ 1635076256366
+
+
+
+ 1635076256366
+
+
+ 1635076495822
+
+
+
+ 1635076495822
+
+
+ 1635268230546
+
+
+
+ 1635268230546
+
+
+ 1635331002040
+
+
+
+ 1635331002040
+
+
+ 1635502440349
+
+
+
+ 1635502440350
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.jpb/persistence-units.xml b/.jpb/persistence-units.xml
new file mode 100644
index 00000000..a462c23d
--- /dev/null
+++ b/.jpb/persistence-units.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TaskJDBC.iml b/TaskJDBC.iml
new file mode 100644
index 00000000..b1a687fd
--- /dev/null
+++ b/TaskJDBC.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 0605a4c0..58f3772f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,9 +12,10 @@
org.apache.maven.plugins
maven-compiler-plugin
+ 3.8.1
- 7
- 7
+ 8
+ 8
@@ -33,7 +34,7 @@
mysql
mysql-connector-java
- 5.1.38
+ 8.0.25
@@ -45,7 +46,7 @@
org.hibernate
hibernate-core
- 4.3.10.Final
+ 5.6.0.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..4847f585 100644
--- a/src/main/java/jm/task/core/jdbc/Main.java
+++ b/src/main/java/jm/task/core/jdbc/Main.java
@@ -1,7 +1,22 @@
package jm.task.core.jdbc;
+import jm.task.core.jdbc.dao.UserDaoHibernateImpl;
+import jm.task.core.jdbc.model.User;
+
+import java.util.List;
+
public class Main {
+
public static void main(String[] args) {
- // реализуйте алгоритм здесь
+ UserDaoHibernateImpl userDaoHibernate = new UserDaoHibernateImpl();
+ userDaoHibernate.createUsersTable();
+ userDaoHibernate.saveUser("Vasily", "Petrov", (byte)48);
+ userDaoHibernate.saveUser("Ivan", "Kuncevich", (byte)59);
+ userDaoHibernate.saveUser("Alena", "Tibrec", (byte)22);
+ userDaoHibernate.saveUser("Gleb", "Kuchma", (byte)36);
+ List listUsers = userDaoHibernate.getAllUsers();
+ listUsers.forEach(System.out::println);
+ userDaoHibernate.cleanUsersTable();
+ userDaoHibernate.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..ecf18a55 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,116 @@
package jm.task.core.jdbc.dao;
import jm.task.core.jdbc.model.User;
+import jm.task.core.jdbc.util.Util;
+import org.hibernate.*;
+import java.util.ArrayList;
import java.util.List;
public class UserDaoHibernateImpl implements UserDao {
- public UserDaoHibernateImpl() {
- }
+ private SessionFactory sessionFactory;
+ public UserDaoHibernateImpl() {
+ sessionFactory = Util.getInstance().getSessionFactory();
+ }
@Override
public void createUsersTable() {
-
+ Transaction transaction = null;
+ try (Session session = sessionFactory.openSession()) {
+ transaction = session.beginTransaction();
+ session.createSQLQuery("CREATE TABLE IF NOT EXISTS USERS (" +
+ "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY," +
+ "name varchar(255) NOT NULL," +
+ "lastName varchar(255) NOT NULL," +
+ "age int NOT NULL);")
+ .executeUpdate();
+ transaction.commit();
+ } catch (HibernateException e) {
+ if (transaction != null) {
+ transaction.rollback();
+ }
+ e.printStackTrace();
+ }
}
@Override
public void dropUsersTable() {
-
+ Transaction transaction = null;
+ try (Session session = sessionFactory.openSession()) {
+ transaction = session.beginTransaction();
+ session.createSQLQuery("DROP TABLE IF EXISTS USERS")
+ .executeUpdate();
+ transaction.commit();
+ } catch (HibernateException e) {
+ if (transaction != null) {
+ transaction.rollback();
+ }
+ e.printStackTrace();
+ }
}
@Override
public void saveUser(String name, String lastName, byte age) {
-
+ Transaction transaction = null;
+ try (Session session = sessionFactory.openSession()) {
+ transaction = session.beginTransaction();
+ User user = new User(name, lastName, age);
+ session.save(user);
+ transaction.commit();
+ } catch (HibernateException e) {
+ if (transaction != null) {
+ transaction.rollback();
+ }
+ e.printStackTrace();
+ }
}
@Override
public void removeUserById(long id) {
-
+ try (Session session = sessionFactory.openSession()){
+ session.beginTransaction();
+ session.createQuery("DELETE FROM User WHERE id = :id")
+ .setParameter("id", id)
+ .executeUpdate();
+ session.getTransaction().commit();
+ } catch (HibernateException e) {
+ e.printStackTrace();
+ }
}
@Override
public List getAllUsers() {
- return null;
+ Transaction transaction = null;
+ List listUsers = new ArrayList<>(0);
+ try (Session session = sessionFactory.openSession()) {
+ transaction = session.beginTransaction();
+ listUsers = session.createQuery("from User").list();
+ transaction.commit();
+ } catch (HibernateException e) {
+ if (transaction != null) {
+ transaction.rollback();
+ }
+ e.printStackTrace();
+ }
+ return listUsers;
}
@Override
public void cleanUsersTable() {
-
+ Transaction transaction = null;
+ try (Session session = sessionFactory.openSession()){
+ transaction = session.beginTransaction();
+ session.createQuery("DELETE FROM User")
+ .executeUpdate();
+ transaction.commit();
+ } catch (HibernateException e) {
+ if (transaction != null) {
+ transaction.rollback();
+ }
+ e.printStackTrace();
+ }
}
+
}
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..af049de9 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,84 @@
package jm.task.core.jdbc.dao;
import jm.task.core.jdbc.model.User;
+import jm.task.core.jdbc.service.UserService;
+import jm.task.core.jdbc.service.UserServiceImpl;
+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() {
+ public UserDaoJDBCImpl() {
}
public void createUsersTable() {
-
+ try (Connection connection = Util.getInstance().getMySQLConnection();
+ Statement statement = connection.createStatement()) {
+ statement.executeUpdate("CREATE TABLE IF NOT EXISTS Users (" +
+ "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY," +
+ "name varchar(255) NOT NULL," +
+ "lastName varchar(255) NOT NULL," +
+ "age int NOT NULL);");
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
}
public void dropUsersTable() {
-
+ try (Connection connection = Util.getInstance().getMySQLConnection();
+ Statement statement = connection.createStatement()) {
+ statement.executeUpdate("DROP TABLE IF EXISTS Users;");
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
}
public void saveUser(String name, String lastName, byte age) {
-
+ try (Connection connection = Util.getInstance().getMySQLConnection();
+ Statement statement = connection.createStatement()) {
+ statement.executeUpdate(String.format("INSERT INTO Users SET name = '%s', lastName = '%s', age = %d;", name, lastName, age));
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
}
public void removeUserById(long id) {
-
+ try (Connection connection = Util.getInstance().getMySQLConnection();
+ Statement statement = connection.createStatement()) {
+ statement.executeUpdate(String.format("DELETE FROM Users where id = %d;", id));
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
}
public List getAllUsers() {
- return null;
+ List listUsers = new ArrayList<>(0);
+ try (Connection connection = Util.getInstance().getMySQLConnection();
+ Statement statement = connection.createStatement();
+ ResultSet resultSet = statement.executeQuery("SELECT * FROM Users;")) {
+ while (resultSet.next()) {
+ User user = new User(resultSet.getString("name"),
+ resultSet.getString("lastName"),
+ resultSet.getByte("age"));
+ user.setId(resultSet.getLong("id"));
+ listUsers.add(user);
+ }
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return listUsers;
}
public void cleanUsersTable() {
-
+ try (Connection connection = Util.getInstance().getMySQLConnection();
+ Statement statement = connection.createStatement()) {
+ statement.executeUpdate("TRUNCATE TABLE Users;");
+ } 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..812903b0 100644
--- a/src/main/java/jm/task/core/jdbc/model/User.java
+++ b/src/main/java/jm/task/core/jdbc/model/User.java
@@ -1,21 +1,21 @@
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
+ @Column(name = "name")
private String name;
- @Column
+ @Column(name = "lastName")
private String lastName;
- @Column
+ @Column(name = "age")
private Byte age;
public User() {
@@ -59,4 +59,9 @@ public Byte getAge() {
public void setAge(Byte age) {
this.age = age;
}
+
+ @Override
+ public String toString() {
+ return "Имя: " + name + " | Фамилия: " + lastName + " | Возраст: " + 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..5a3c88eb 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,41 @@
package jm.task.core.jdbc.service;
+import jm.task.core.jdbc.dao.UserDao;
+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() {
+ private final UserDao userDao;
+
+ public UserServiceImpl() {
+ userDao = new UserDaoJDBCImpl();
}
- public void dropUsersTable() {
+ public void createUsersTable() {
+ userDao.createUsersTable();
+ }
+ public void dropUsersTable() {
+ userDao.dropUsersTable();
}
public void saveUser(String name, String lastName, byte age) {
-
+ userDao.saveUser(name, lastName, age);
+ System.out.printf("User с именем – %s добавлен в базу данных%n", name);
}
public void removeUserById(long id) {
-
+ userDao.removeUserById(id);
}
- public List getAllUsers() {
- return null;
+ public List getAllUsers(){
+ 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..bd924e86 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,88 @@
package jm.task.core.jdbc.util;
+import jm.task.core.jdbc.model.User;
+import org.hibernate.SessionFactory;
+import org.hibernate.boot.Metadata;
+import org.hibernate.boot.MetadataSources;
+import org.hibernate.boot.registry.StandardServiceRegistry;
+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.HashMap;
+import java.util.Map;
+
public class Util {
- // реализуйте настройку соеденения с БД
+
+ private static Util instance;
+ private static StandardServiceRegistry registry;
+ private static SessionFactory sessionFactory;
+
+ private Util() {
+ }
+
+ public static Util getInstance() {
+ if (instance == null) {
+ instance = new Util();
+ }
+ return instance;
+ }
+
+ public Connection getMySQLConnection() throws SQLException {
+ String hostName = "localhost";
+ String dbName = "base_for_work";
+ String userName = "aadmin";
+ String password = "Password!";
+
+ return getMySQLConnection(hostName, dbName, userName, password);
+ }
+
+ public static Connection getMySQLConnection(String hostName, String dbName,
+ String userName, String password) throws SQLException {
+ String connectionURL = "jdbc:mysql://" + hostName + ":3306/" + dbName;
+ return DriverManager.getConnection(connectionURL, userName, password);
+ }
+
+ public SessionFactory getSessionFactory() {
+ if (sessionFactory == null) {
+ try {
+ StandardServiceRegistryBuilder registryBuilder = new StandardServiceRegistryBuilder();
+
+ HashMap settings = new HashMap<>();
+ settings.put(Environment.DRIVER, "com.mysql.jdbc.Driver");
+ settings.put(Environment.URL, "jdbc:mysql://localhost:3306/base_for_work");
+ settings.put(Environment.USER, "aadmin");
+ settings.put(Environment.PASS, "Password!");
+ settings.put(Environment.DIALECT, "org.hibernate.dialect.MySQL5Dialect");
+ settings.put(Environment.SHOW_SQL, "true");
+
+ registryBuilder.applySettings(settings);
+
+ registry = registryBuilder.build();
+
+ MetadataSources sources = new MetadataSources(registry);
+ sources.addAnnotatedClass(User.class);
+ Metadata metadata = sources.getMetadataBuilder().build();
+
+ sessionFactory = metadata.getSessionFactoryBuilder().build();
+ } catch (Exception e) {
+ e.printStackTrace();
+ if (registry != null) {
+ close();
+ }
+ }
+ }
+ return sessionFactory;
+ }
+
+ public void close() {
+ if (registry != null) {
+ StandardServiceRegistryBuilder.destroy(registry);
+ }
+ }
+
}
diff --git a/target/TaskJDBC-1.0-SNAPSHOT.jar b/target/TaskJDBC-1.0-SNAPSHOT.jar
new file mode 100644
index 00000000..5d675b5c
Binary files /dev/null and b/target/TaskJDBC-1.0-SNAPSHOT.jar differ
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..a1930608
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..7ae2b4b5
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..a2a3abd5
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..75a5e824
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..5a4f0212
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..4e60943a
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..62c1f0f0
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..5e8a8816
Binary files /dev/null and b/target/classes/jm/task/core/jdbc/util/Util.class differ
diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
new file mode 100644
index 00000000..77596229
--- /dev/null
+++ b/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Sat Oct 23 19:09:24 MSK 2021
+groupId=org.example
+artifactId=TaskJDBC
+version=1.0-SNAPSHOT
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 00000000..0ca0fbbb
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,8 @@
+jm\task\core\jdbc\dao\UserDaoJDBCImpl.class
+jm\task\core\jdbc\Main.class
+jm\task\core\jdbc\dao\UserDaoHibernateImpl.class
+jm\task\core\jdbc\service\UserServiceImpl.class
+jm\task\core\jdbc\service\UserService.class
+jm\task\core\jdbc\model\User.class
+jm\task\core\jdbc\util\Util.class
+jm\task\core\jdbc\dao\UserDao.class
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 00000000..7f3e1865
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,8 @@
+C:\Users\steff\IdeaProjects\CoreTaskTemplate\src\main\java\jm\task\core\jdbc\dao\UserDaoJDBCImpl.java
+C:\Users\steff\IdeaProjects\CoreTaskTemplate\src\main\java\jm\task\core\jdbc\model\User.java
+C:\Users\steff\IdeaProjects\CoreTaskTemplate\src\main\java\jm\task\core\jdbc\util\Util.java
+C:\Users\steff\IdeaProjects\CoreTaskTemplate\src\main\java\jm\task\core\jdbc\service\UserService.java
+C:\Users\steff\IdeaProjects\CoreTaskTemplate\src\main\java\jm\task\core\jdbc\dao\UserDao.java
+C:\Users\steff\IdeaProjects\CoreTaskTemplate\src\main\java\jm\task\core\jdbc\dao\UserDaoHibernateImpl.java
+C:\Users\steff\IdeaProjects\CoreTaskTemplate\src\main\java\jm\task\core\jdbc\Main.java
+C:\Users\steff\IdeaProjects\CoreTaskTemplate\src\main\java\jm\task\core\jdbc\service\UserServiceImpl.java
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 00000000..aa9143da
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1 @@
+UserServiceTest.class
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 00000000..f4e4c231
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1 @@
+C:\Users\steff\IdeaProjects\CoreTaskTemplate\src\test\java\UserServiceTest.java
diff --git a/target/surefire-reports/TEST-UserServiceTest.xml b/target/surefire-reports/TEST-UserServiceTest.xml
new file mode 100644
index 00000000..6f7d2168
--- /dev/null
+++ b/target/surefire-reports/TEST-UserServiceTest.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/surefire-reports/UserServiceTest.txt b/target/surefire-reports/UserServiceTest.txt
new file mode 100644
index 00000000..afba1a64
--- /dev/null
+++ b/target/surefire-reports/UserServiceTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: UserServiceTest
+-------------------------------------------------------------------------------
+Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.456 sec
diff --git a/target/test-classes/UserServiceTest.class b/target/test-classes/UserServiceTest.class
new file mode 100644
index 00000000..712635bf
Binary files /dev/null and b/target/test-classes/UserServiceTest.class differ