diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..dac437bc
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/../../../../../../../:\YandexDisk\Курсы\java-mentor.com\Java Core\CoreTaskTemplate\.idea/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
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..a13563ae
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,15 @@
+
+
+
+
+ mysql.8
+ true
+ true
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://localhost:3306/mydbtest
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/dataSources/2e524291-3b08-450b-8189-6203b25b2707.xml b/.idea/dataSources/2e524291-3b08-450b-8189-6203b25b2707.xml
new file mode 100644
index 00000000..e91fd2df
--- /dev/null
+++ b/.idea/dataSources/2e524291-3b08-450b-8189-6203b25b2707.xml
@@ -0,0 +1,941 @@
+
+
+
+
+ 8.0.23
+ InnoDB
+ InnoDB
+ lower/lower
+
+
+ utf8_general_ci
+
+
+ 1
+ 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
+
+
+ localhost
+ SELECT
+SYSTEM_USER
+
+
+
+ localhost
+ SHUTDOWN,SUPER
+BACKUP_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,PERSIST_RO_VARIABLES_ADMIN,SESSION_VARIABLES_ADMIN,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN
+SELECT|performance_schema:null
+SELECT|mysql.user:null
+
+
+
+ localhost
+ SYSTEM_USER
+TRIGGER|sys:null
+SELECT|sys.sys_config:null
+
+
+
+ %
+ SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,RELOAD,SHUTDOWN,PROCESS,FILE,REFERENCES,INDEX,ALTER,SHOW DATABASES,SUPER,CREATE TEMPORARY TABLES,LOCK TABLES,EXECUTE,REPLICATION SLAVE,REPLICATION CLIENT,CREATE VIEW,SHOW VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,EVENT,TRIGGER,CREATE TABLESPACE!
+
+
+
+ localhost
+ SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,RELOAD,SHUTDOWN,PROCESS,FILE,REFERENCES,INDEX,ALTER,SHOW DATABASES,SUPER,CREATE TEMPORARY TABLES,LOCK TABLES,EXECUTE,REPLICATION SLAVE,REPLICATION CLIENT,CREATE VIEW,SHOW VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,EVENT,TRIGGER,CREATE TABLESPACE,CREATE ROLE,DROP ROLE!
+
+
+
+
+ 1
+ int|0s
+ 1
+ null
+
+
+ 2
+ varchar(45)|0s
+ 1
+
+
+ 3
+ int|0s
+
+
+ 4
+ varchar(64)|0s
+ 1
+
+
+ 1
+ id
+ 1
+
+
+
\ No newline at end of file
diff --git a/.idea/dataSources/2e524291-3b08-450b-8189-6203b25b2707/storage_v2/_src_/schema/information_schema.FNRwLQ.meta b/.idea/dataSources/2e524291-3b08-450b-8189-6203b25b2707/storage_v2/_src_/schema/information_schema.FNRwLQ.meta
new file mode 100644
index 00000000..1ff3db2e
--- /dev/null
+++ b/.idea/dataSources/2e524291-3b08-450b-8189-6203b25b2707/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/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/libraries/apache_maven_3_6.xml b/.idea/libraries/apache_maven_3_6.xml
new file mode 100644
index 00000000..3e23e2f1
--- /dev/null
+++ b/.idea/libraries/apache_maven_3_6.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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/sqldialects.xml b/.idea/sqldialects.xml
new file mode 100644
index 00000000..4a1875f4
--- /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..83067447
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace (2).xml b/.idea/workspace (2).xml
new file mode 100644
index 00000000..5c923054
--- /dev/null
+++ b/.idea/workspace (2).xml
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FILE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1615801278971
+
+
+ 1615801278971
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TaskJDBC.iml b/TaskJDBC.iml
new file mode 100644
index 00000000..712d2853
--- /dev/null
+++ b/TaskJDBC.iml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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..cca96026 100644
--- a/src/main/java/jm/task/core/jdbc/Main.java
+++ b/src/main/java/jm/task/core/jdbc/Main.java
@@ -1,7 +1,40 @@
package jm.task.core.jdbc;
+
+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.lang.reflect.InvocationTargetException;
+import java.sql.*;
+
public class Main {
+
+
+ private static final String INSERT_NEW = "INSERT INTO users VALUES(?,?,?,?)";
+
+
public static void main(String[] args) {
// реализуйте алгоритм здесь
+ final UserService userService = new UserServiceImpl();
+
+ try {
+ userService.createUsersTable();
+
+ userService.saveUser("Stive1", "Libovski", (byte) 43);
+ userService.saveUser("Stive2", "Libovski", (byte) 44);
+ userService.saveUser("Stive3", "Libovski", (byte) 45);
+ userService.saveUser("Stive4", "Libovski", (byte) 46);
+
+ System.out.println("Вывод все пользователей в консоль \n "+ userService.getAllUsers().toString());
+
+ userService.cleanUsersTable();
+ userService.dropUsersTable();
+
+ } catch (SQLException throwables) {
+ throwables.printStackTrace();
+ }
+
}
}
diff --git a/src/main/java/jm/task/core/jdbc/dao/UserDao.java b/src/main/java/jm/task/core/jdbc/dao/UserDao.java
index 27069baf..ebb05fab 100644
--- a/src/main/java/jm/task/core/jdbc/dao/UserDao.java
+++ b/src/main/java/jm/task/core/jdbc/dao/UserDao.java
@@ -2,18 +2,19 @@
import jm.task.core.jdbc.model.User;
+import java.sql.SQLException;
import java.util.List;
public interface UserDao {
- void createUsersTable();
+ void createUsersTable() throws SQLException;
- void dropUsersTable();
+ void dropUsersTable() throws SQLException;
- void saveUser(String name, String lastName, byte age);
+ void saveUser(String name, String lastName, byte age) throws SQLException;
- void removeUserById(long id);
+ void removeUserById(long id) throws SQLException;
- List getAllUsers();
+ List getAllUsers() throws SQLException;
- void cleanUsersTable();
+ void cleanUsersTable() throws SQLException;
}
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..7457ee33 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,98 @@
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 {
+ private Util worker = new Util();
+ private Connection connection = worker.getConnection();
+ private PreparedStatement preparedStatement;
+ private Statement statement;
+
public UserDaoJDBCImpl() {
+ }
+
+ private PreparedStatement getPrepareStatement(String sql) throws SQLException {
+ return connection.prepareStatement(sql);
+ }
+ private ResultSet returnResultSet(String sql) throws SQLException {
+ statement = connection.createStatement();
+ return statement.executeQuery(sql);
}
- public void createUsersTable() {
+ public void createUsersTable() throws SQLException {
+ final String INSERT_NEW = "CREATE TABLE IF NOT EXISTS `users` (\n" +
+ " `id` bigint NOT NULL AUTO_INCREMENT,\n" +
+ " `name` varchar(255) NOT NULL,\n" +
+ " `lastName` varchar(255) NOT NULL,\n" +
+ " `age` tinyint NOT NULL,\n" +
+ " PRIMARY KEY (`id`)\n" +
+ ") ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8";
+ preparedStatement = getPrepareStatement(INSERT_NEW);
+ preparedStatement.execute();
+ preparedStatement.close();
}
- public void dropUsersTable() {
+ public void dropUsersTable() throws SQLException {
+ final String INSERT_NEW = "DROP TABLE IF EXISTS users";
+ preparedStatement = getPrepareStatement(INSERT_NEW);
+ preparedStatement.execute();
+ preparedStatement.close();
}
- public void saveUser(String name, String lastName, byte age) {
+ public void saveUser(String name, String lastName, byte age) throws SQLException {
+ final String INSERT_NEW = "INSERT INTO users(name,lastName,age) VALUES(?,?,?)";
+ preparedStatement = getPrepareStatement(INSERT_NEW);
+
+ preparedStatement.setString(1, name);
+ preparedStatement.setString(2, lastName);
+ preparedStatement.setByte(3, age);
+
+ preparedStatement.execute();
+ preparedStatement.close();
+ System.out.println("User с именем – " + name + " добавлен в базу данных");
}
- public void removeUserById(long id) {
+ public void removeUserById(long id) throws SQLException {
+ final String INSERT_NEW = "DELETE FROM users WHERE id =?";
+ preparedStatement = getPrepareStatement(INSERT_NEW);
+ preparedStatement.setLong(1, id);
+ preparedStatement.execute();
+ preparedStatement.close();
}
- public List getAllUsers() {
- return null;
+ public List getAllUsers() throws SQLException {
+ List users = new ArrayList<>();
+
+ String query = "SELECT * FROM users";
+
+ ResultSet resultSet = returnResultSet(query);
+ 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"));
+ users.add(user);
+ }
+ statement.close();
+ return users;
}
- public void cleanUsersTable() {
+ public void cleanUsersTable() throws SQLException {
+ final String INSERT_NEW = "DELETE FROM users";
+ preparedStatement = getPrepareStatement(INSERT_NEW);
+ preparedStatement.execute();
+ preparedStatement.close();
}
}
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..f4eb3a7c 100644
--- a/src/main/java/jm/task/core/jdbc/model/User.java
+++ b/src/main/java/jm/task/core/jdbc/model/User.java
@@ -59,4 +59,13 @@ public Byte getAge() {
public void setAge(Byte age) {
this.age = age;
}
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + "{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..e1d1a7c4 100644
--- a/src/main/java/jm/task/core/jdbc/service/UserService.java
+++ b/src/main/java/jm/task/core/jdbc/service/UserService.java
@@ -2,18 +2,19 @@
import jm.task.core.jdbc.model.User;
+import java.sql.SQLException;
import java.util.List;
public interface UserService {
- void createUsersTable();
+ void createUsersTable() throws SQLException;
- void dropUsersTable();
+ void dropUsersTable() throws SQLException;
- void saveUser(String name, String lastName, byte age);
+ void saveUser(String name, String lastName, byte age) throws SQLException;
- void removeUserById(long id);
+ void removeUserById(long id) throws SQLException;
- List getAllUsers();
+ List getAllUsers() throws SQLException;
- void cleanUsersTable();
+ void cleanUsersTable() throws SQLException;
}
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..cea6cec4 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.UserDaoJDBCImpl;
import jm.task.core.jdbc.model.User;
+import java.sql.SQLException;
import java.util.List;
+
public class UserServiceImpl implements UserService {
- public void createUsersTable() {
+ private UserDao userDaoJDBC = new UserDaoJDBCImpl();
+ public void createUsersTable() throws SQLException {
+ userDaoJDBC.createUsersTable();
}
- public void dropUsersTable() {
-
+ public void dropUsersTable() throws SQLException {
+ userDaoJDBC.dropUsersTable();
}
- public void saveUser(String name, String lastName, byte age) {
-
+ public void saveUser(String name, String lastName, byte age) throws SQLException {
+ userDaoJDBC.saveUser(name, lastName, age);
}
- public void removeUserById(long id) {
-
+ public void removeUserById(long id) throws SQLException {
+ userDaoJDBC.removeUserById(id);
}
- public List getAllUsers() {
- return null;
+ public List getAllUsers() throws SQLException {
+ return userDaoJDBC.getAllUsers();
}
- public void cleanUsersTable() {
-
+ public void cleanUsersTable() throws SQLException {
+ userDaoJDBC.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..659e282d 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,37 @@
package jm.task.core.jdbc.util;
+import java.lang.reflect.InvocationTargetException;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.sql.Statement;
+
public class Util {
// реализуйте настройку соеденения с БД
+ private static final String URL = "jdbc:mysql://localhost:3306/mydbtest?useSSL=false";
+
+ private static final String USERNAME = "root1";
+ private static final String PASSWORD = "12345_Aa";
+
+ private Connection connection;
+
+ public Connection getConnection() {
+ return connection;
+ }
+
+// public void setConnection(Connection connection) {
+// this.connection = connection;
+// }
+
+ public Util(){
+ try {
+ Class.forName("com.mysql.cj.jdbc.Driver").getDeclaredConstructor().newInstance();
+ connection = DriverManager.getConnection(URL,USERNAME,PASSWORD);
+
+ } catch (InstantiationException | InvocationTargetException | NoSuchMethodException | IllegalAccessException | ClassNotFoundException | SQLException e) {
+ e.printStackTrace();
+ }
+
+
+ }
}
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..7edc5fe0
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..360610b7
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..54851907
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..be0c5b7b
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..d7fe77c3
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..4c76cab1
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..80e8a2f2
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..debf07e0
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