From 00ba4d74bd01f6ac147ab3b29ff727810351112c Mon Sep 17 00:00:00 2001 From: VPVXNC Date: Sat, 18 Dec 2021 17:07:55 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C,=20=D0=B2=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B0=D1=8F=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 14 ++- src/main/java/jm/task/core/jdbc/Main.java | 10 +- .../core/jdbc/dao/UserDaoHibernateImpl.java | 100 ++++++++++++++++-- .../task/core/jdbc/dao/UserDaoJDBCImpl.java | 86 +++++++++++++-- .../java/jm/task/core/jdbc/model/User.java | 25 +++-- .../core/jdbc/service/UserServiceImpl.java | 25 ++++- .../java/jm/task/core/jdbc/util/Util.java | 66 +++++++++++- src/test/java/UserServiceTest.java | 1 + 8 files changed, 291 insertions(+), 36 deletions(-) diff --git a/pom.xml b/pom.xml index 0605a4c0..57065979 100644 --- a/pom.xml +++ b/pom.xml @@ -13,8 +13,8 @@ org.apache.maven.plugins maven-compiler-plugin - 7 - 7 + 15 + 15 @@ -33,7 +33,13 @@ mysql mysql-connector-java - 5.1.38 + 8.0.26 + + + + org.postgresql + postgresql + 42.2.23 @@ -45,7 +51,7 @@ org.hibernate hibernate-core - 4.3.10.Final + 5.5.8.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..ed2c81ea 100644 --- a/src/main/java/jm/task/core/jdbc/Main.java +++ b/src/main/java/jm/task/core/jdbc/Main.java @@ -1,7 +1,15 @@ package jm.task.core.jdbc; +import jm.task.core.jdbc.service.UserService; +import jm.task.core.jdbc.service.UserServiceImpl; +import java.sql.SQLException; + public class Main { - public static void main(String[] args) { + public static void main(String[] args) throws SQLException { // реализуйте алгоритм здесь + UserService userService = new UserServiceImpl(); + +// userService.createUsersTable(); + userService.dropUsersTable(); } } diff --git a/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java b/src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java index dc2d0636..59c1e124 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,124 @@ package jm.task.core.jdbc.dao; import jm.task.core.jdbc.model.User; - +import jm.task.core.jdbc.util.Util; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; import java.util.List; public class UserDaoHibernateImpl implements UserDao { - public UserDaoHibernateImpl() { - } + private SessionFactory sessionFactory; + public UserDaoHibernateImpl() { + sessionFactory = Util.getSessionFactory(); + } @Override public void createUsersTable() { - + Session session = sessionFactory.openSession(); + Transaction transaction = null; + try { + transaction = session.beginTransaction(); + session.createSQLQuery(UserDaoJDBCImpl.CREATE_TABLE).executeUpdate(); + transaction.commit(); + } catch (RuntimeException e) { + if (transaction != null) { + transaction.rollback(); + } + } finally { + session.close(); + } } @Override public void dropUsersTable() { - + Session session = sessionFactory.openSession(); + Transaction transaction = null; + try { + transaction = session.beginTransaction(); + session.createSQLQuery(UserDaoJDBCImpl.DROP_TABLE).executeUpdate(); + transaction.commit(); + } catch (RuntimeException e) { + if (transaction != null) { + transaction.rollback(); + } + } finally { + session.close(); + } } @Override public void saveUser(String name, String lastName, byte age) { - + Session session = sessionFactory.openSession(); + Transaction transaction = null; + try { + transaction = session.beginTransaction(); + session.save(new User(name, lastName, age)); + transaction.commit(); + } catch (RuntimeException e) { + if (transaction != null) { + transaction.rollback(); + } + } finally { + session.close(); + } } @Override public void removeUserById(long id) { - + Session session = sessionFactory.openSession(); + Transaction transaction = null; + try { + transaction = session.beginTransaction(); + User user = session.get(User.class, id); + session.delete(user); + transaction.commit(); + } catch (RuntimeException e) { + if (transaction != null) { + transaction.rollback(); + } + } finally { + session.close(); + } } @Override public List getAllUsers() { - return null; + Session session = sessionFactory.openSession(); + Transaction transaction = null; + List users; + try { + transaction = session.beginTransaction(); + String hql = "FROM User"; + users = session.createQuery(hql).list(); + return users; + } catch (RuntimeException e) { + if (transaction != null) { + transaction.rollback(); + } + throw e; + } finally { + session.close(); + } } @Override public void cleanUsersTable() { - + Session session = sessionFactory.openSession(); + Transaction transaction = null; + try { + transaction = session.beginTransaction(); + String hql = "DELETE FROM User"; + session.createQuery(hql).executeUpdate(); + transaction.commit(); + } catch (RuntimeException e) { + if (transaction != null) { + transaction.rollback(); + } + } finally { + 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..77d4ec46 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,107 @@ package jm.task.core.jdbc.dao; import jm.task.core.jdbc.model.User; - +import jm.task.core.jdbc.util.Util; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; public class UserDaoJDBCImpl implements UserDao { - public UserDaoJDBCImpl() { + public static final String CREATE_TABLE = "CREATE TABLE users" + + "(" + + "id BIGINT PRIMARY KEY AUTO_INCREMENT, " + + "name VARCHAR(64), " + + "last_name VARCHAR(64), " + + "age TINYINT" + + ");"; + + public static final String DROP_TABLE = "DROP TABLE users;"; + + private static final String INSERT_INTO = "INSERT users(name, last_name, age) " + + "VALUES (?, ?, ?);"; + + private static final String REMOVE_BY_ID = "DELETE FROM users " + + "WHERE id = ?;"; + + private static final String GET_ALL = "SELECT * FROM users"; + + private static final String CLEAR_TABLE = "DELETE FROM users"; + + public UserDaoJDBCImpl() { } public void createUsersTable() { - + try (Connection connection = Util.open(); + PreparedStatement preparedStatement = connection.prepareStatement(CREATE_TABLE)) { + preparedStatement.execute(); + } catch (SQLException e) { + e.printStackTrace(); + } } public void dropUsersTable() { + try (Connection connection = Util.open(); + PreparedStatement preparedStatement = connection.prepareStatement(DROP_TABLE)) { + preparedStatement.execute(); + } catch (SQLException e) { + e.printStackTrace(); + } } public void saveUser(String name, String lastName, byte age) { - + try (Connection connection = Util.open(); + PreparedStatement preparedStatement = connection.prepareStatement(INSERT_INTO)) { + preparedStatement.setString(1, name); + preparedStatement.setString(2, lastName); + preparedStatement.setByte(3, age); + preparedStatement.execute(); + } catch (SQLException e) { + e.printStackTrace(); + } } public void removeUserById(long id) { - + try (Connection connection = Util.open(); + PreparedStatement preparedStatement = connection.prepareStatement(REMOVE_BY_ID)) { + preparedStatement.setLong(1, id); + preparedStatement.execute(); + } catch (SQLException e) { + e.printStackTrace(); + } } public List getAllUsers() { - return null; + List users = new ArrayList<>(); + try (Connection connection = Util.open(); + PreparedStatement preparedStatement = connection.prepareStatement(GET_ALL)) { + ResultSet resultSet = preparedStatement.executeQuery(); + while (resultSet.next()) { + users.add(buildUser(resultSet)); + } + return users; + } catch (SQLException e) { + e.printStackTrace(); + } + return users; } - public void cleanUsersTable() { + private User buildUser(ResultSet resultSet) throws SQLException { + return new User(resultSet.getString("name"), + resultSet.getString("last_name"), + resultSet.getByte("age")); + } + public void cleanUsersTable() { + try (Connection connection = Util.open(); + PreparedStatement preparedStatement = connection.prepareStatement(CLEAR_TABLE)) { + preparedStatement.execute(); + } 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..dc59609c 100644 --- a/src/main/java/jm/task/core/jdbc/model/User.java +++ b/src/main/java/jm/task/core/jdbc/model/User.java @@ -1,25 +1,24 @@ 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 = "last_name") private String lastName; - @Column + @Column(name = "age") private Byte age; public User() { - } public User(String name, String lastName, Byte age) { @@ -28,6 +27,16 @@ public User(String name, String lastName, Byte age) { this.age = age; } + @Override + public String toString() { + return "User{" + + "id=" + id + + ", name='" + name + '\'' + + ", lastName='" + lastName + '\'' + + ", age=" + age + + '}'; + } + public Long getId() { return id; } 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..bd2b5b58 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,46 @@ 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.sql.SQLException; import java.util.List; public class UserServiceImpl implements UserService { - public void createUsersTable() { + private UserDao userDaoJDBC = new UserDaoJDBCImpl(); + private UserDao userDaoHibernate = new UserDaoHibernateImpl(); + + public void createUsersTable() { +// userDaoJDBC.createUsersTable(); + userDaoHibernate.createUsersTable(); } public void dropUsersTable() { +// userDaoJDBC.dropUsersTable(); + userDaoHibernate.dropUsersTable(); } public void saveUser(String name, String lastName, byte age) { - +// userDaoJDBC.saveUser(name, lastName, age); + userDaoHibernate.saveUser(name, lastName, age); } public void removeUserById(long id) { - +// userDaoJDBC.removeUserById(id); + userDaoHibernate.removeUserById(id); } public List getAllUsers() { - return null; +// return userDaoJDBC.getAllUsers(); + return userDaoHibernate.getAllUsers(); } public void cleanUsersTable() { - +// userDaoJDBC.cleanUsersTable(); + userDaoHibernate.cleanUsersTable(); } } diff --git a/src/main/java/jm/task/core/jdbc/util/Util.java b/src/main/java/jm/task/core/jdbc/util/Util.java index 59e462ba..f9b24a76 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,67 @@ package jm.task.core.jdbc.util; -public class Util { - // реализуйте настройку соеденения с БД +import jm.task.core.jdbc.model.User; +import org.hibernate.HibernateException; +import org.hibernate.SessionFactory; +import org.hibernate.cfg.Configuration; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public final class Util { + + +// Реализация без проперти +// private static final String URL = "jdbc:mysql://localhost:3306/test"; +// private static final String USERNAME = "root"; +// private static final String PASSWORD = "22121995"; + private static SessionFactory sessionFactory; + private static final String URL_KEY = "db.url"; + private static final String USERNAME_KEY = "db.username"; + private static final String PASSWORD_KEY = "db.password"; + private static final String SHOW_SQL = "show_sql"; + private static final String FORMAT_SQL = "format_sql"; +// private static final String HBM2DDL = "hibernate.hbm2ddl.auto"; + + private Util() { + } +// Реализация без проперти +// public static Connection open() { +// try { +// return DriverManager.getConnection(URL, USERNAME, PASSWORD); +// } catch (SQLException e) { +// throw new RuntimeException(e); +// } +// } + + public static Connection open() { + try { + return DriverManager.getConnection( + PropertiesUtil.get(URL_KEY), + PropertiesUtil.get(USERNAME_KEY), + PropertiesUtil.get(PASSWORD_KEY) + ); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + public static SessionFactory getSessionFactory() { + if (sessionFactory == null) { + try { + Configuration configuration = new Configuration(); + configuration.setProperty("hibernate.connection.url", PropertiesUtil.get(URL_KEY)) + .setProperty("hibernate.connection.username", PropertiesUtil.get(USERNAME_KEY)) + .setProperty("hibernate.connection.password", PropertiesUtil.get(PASSWORD_KEY)) + .setProperty("show_sql", PropertiesUtil.get(SHOW_SQL)) + .setProperty("format_sql", PropertiesUtil.get(FORMAT_SQL)) + .addAnnotatedClass(User.class); + sessionFactory = configuration.buildSessionFactory(); + } catch (HibernateException e) { + System.out.println("Исключение " + e); + e.printStackTrace(); + } + } + return sessionFactory; + } } diff --git a/src/test/java/UserServiceTest.java b/src/test/java/UserServiceTest.java index c4b9dd0a..d46e9877 100644 --- a/src/test/java/UserServiceTest.java +++ b/src/test/java/UserServiceTest.java @@ -18,6 +18,7 @@ public class UserServiceTest { public void dropUsersTable() { try { userService.dropUsersTable(); + userService.createUsersTable(); userService.dropUsersTable(); } catch (Exception e) { Assert.fail("При тестировании удаления таблицы произошло исключение\n" + e); From e78b3c649a87ffd27bd9710ba0283af9df17e626 Mon Sep 17 00:00:00 2001 From: VPVXNC Date: Sat, 18 Dec 2021 17:19:46 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C,=20=D0=B2=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B0=D1=8F=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- target/classes/jm/task/core/jdbc/Main.class | Bin 0 -> 651 bytes .../classes/jm/task/core/jdbc/dao/UserDao.class | Bin 0 -> 411 bytes .../core/jdbc/dao/UserDaoHibernateImpl.class | Bin 0 -> 4266 bytes .../jm/task/core/jdbc/dao/UserDaoJDBCImpl.class | Bin 0 -> 5030 bytes .../classes/jm/task/core/jdbc/model/User.class | Bin 0 -> 2368 bytes .../jm/task/core/jdbc/service/UserService.class | Bin 0 -> 423 bytes .../task/core/jdbc/service/UserServiceImpl.class | Bin 0 -> 1454 bytes .../jm/task/core/jdbc/util/PropertiesUtil.class | Bin 0 -> 1412 bytes target/classes/jm/task/core/jdbc/util/Util.class | Bin 0 -> 2609 bytes 9 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 target/classes/jm/task/core/jdbc/Main.class create mode 100644 target/classes/jm/task/core/jdbc/dao/UserDao.class create mode 100644 target/classes/jm/task/core/jdbc/dao/UserDaoHibernateImpl.class create mode 100644 target/classes/jm/task/core/jdbc/dao/UserDaoJDBCImpl.class create mode 100644 target/classes/jm/task/core/jdbc/model/User.class create mode 100644 target/classes/jm/task/core/jdbc/service/UserService.class create mode 100644 target/classes/jm/task/core/jdbc/service/UserServiceImpl.class create mode 100644 target/classes/jm/task/core/jdbc/util/PropertiesUtil.class create mode 100644 target/classes/jm/task/core/jdbc/util/Util.class 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 0000000000000000000000000000000000000000..138a64c76140cdc5361cb632042c7d60cea8bf9c GIT binary patch literal 651 zcma)3+e*Vg5IxgY)26lcTJN_9(JHtfQ1L|+#HdKMAU(|Gfu4ltSI*&XG7RCxF8jFp8u?fXy z7<7$ZbSWF2vM^34|K*-a?GrKwK~oV*j`r1AuhURrLLy8$fh)bb47CyY{+NkxbwrqR zhRao1uan4@w{D!lMrv`W{Z_S7XIzFYR+t(B6Y{;m76_X|Tp0hoE;h9fA6?arb>K%9 zRtPhRb#(8E+J*Cj@mwwFg|0f%9{+OAEMV76VjU&Erg>5zb5D*F+zHOad1U(;^pwDp z91RRU&=ki)e*n{%;Vy?VW?96LPdFRV(i^PnXXKon7ubY>Oc7~@ZDcXV2QDUZg1*av`^raK#j_DX6XI6G{>}*Of&1Kax+Z*?%tAXJ<8}c@~6eH!fhsm0;~5 z!z|am;o@F;&V|2m)m(a(h`^D%I)TVFb&LqUvG{LJFb(G!=3y>y;`~eJ9%1F1^**PZ H1!esU-U?|* literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..70789d0a298c2d895a6036bd77936bbfcd5aef66 GIT binary patch literal 4266 zcmcJS*;gCM6~@03EgD3#7{~U=U|aUYHewmEc*#fxTLNJOLSP|qn8Zs<^oYii8f#(9 zILTz2%w*q}{~)iKbCNSAIVY2+dC32iIA67d)Ch$$C+FmWu2OZ?t-8Pa-P^@K|NYm$ z0|?;{9=On^LebzxyFlNLzNZIrdLbKFN$(h$vOxPCvtX8I1lorD8y<9^Q-w!E7c_x^ zoqV9Im!1VOR?!ITY^5`SO4-Z>*7*=Pl{Lz1MyX_4g?T+wwu<`#z9E0yDrN)QX4)tg z^s*5+IwRDH9`vf{({Kv?0>j65*wU@QddVox>DI!bl~{h48}^i%cDs1;US0SS&Zs!6 z;T+x&7(D4<0$tXwQK+3(!291E33cH-22>1cxPXfSXIfe%>a>wH3#p=BC=m`B30yd4 z)A2f_!Y6R`L>`NCky(kN16KsB*<>`FiuzLFNIdGRkXUKR-10?Y_hX5aZ#5ZP4ktH# zOVLeVcs;f9B$nX(MQ7Z!?zJm&Mt(LL$_}DM}0ZHRDN=NSkD^1R4lPcgMQoZ zFKf7pYm7vuXfU{I58@9hhK&2op?E`DYvrO@$cCDg@LWy}B=oYmXV}YVatMAE!x}~~ zDsbs2%472dx{Vh`rcyT6cel8`t=U)?-a(f-vW(!Ah8uFa zJCn0YhKgGP=Nld*D}}O|H=-{x#;%N=+~X@6-j*vmidHU{)-%sK5MmO{C0ACRF|avJ zsbEG89uH>T+A^3w43-D?5LOY=G^YJGLvyx-?fjR;v1A*Bbid$MeDt) z=RI3RYu9<$4k>y$ATZP-+735r@sId7NLJQK$+59X?KNwIETjqheH)9XfQYF0!IAH7 zbuM$IXymQx_L2SA7VR=ur1^?{po=X+(I_5t+huZ%SR^avP&k*f9b-mqKj)XyEsZds zea!+BID0hy`@4r47;l<;=j0R2@C==6W|klMN|ByU9#iudFwmRH8G6A!dQCu{HLFt0 z81tsos#m^gz6ZP|x#KeL5iSVi_~(*$3Ep>9_Ib_Wv%p_7_Ip4Z{uE;P71Y0=`xB14 zVDZ_5Hv6fdmv@~$?DCh!mGb!sk(tr5? zZ@O@R>jDo)4=^UcSCayN#FfP8=ji0v?Z#M7P^rH5DxZAO8-H1GF>9^_LLl*c{t9+ZE1~{ta`t z30f$lVtc<@^VGwg_V6A(*0|;c_UY~WoIe2NH4XFr*rVdS%5R`hanrM);-!a^zxf66 z1Y6;`(*ln@R>i~a|A6Nzox4UShKR>cr-yB{V|03)H;f6463-a%j1$iUT^%Q$3F4Xj zf8hBRJ|HA2Q7jNt2YIIJ>Io_$==LhMfMn-ynBE*2z3>WmKSlHa3obnLx@{%NNpZ>Q zda&K={u~}TPBqoXdxL7N?^SI*^_xch4({?f$2?l%SdwGwY#+1L`L&mNT42WAC2pywcIjVDPqO!Ie23o4-gnt^ z*}d=K`_x?*&mq;OaNm@zHn**|D^hLKXt&k&p^6VFwz}xLV-#H%Eq;WLYg9wDpwg~h zrSHNN~kkbj%<%Yjj)ga_o>1K&Rk@wE>VwhCeAX~tr2gED-*o=tssh3zF8w! z-h|jbV*8Xm33i4!uQB0&h##@++^Zp$1xT+W*70NfgeW{UoNe5(ic_(14oaLeP>7R% z4UmV~`%}Ejut<3Z*-DU0b&!qX*8eqDE6L`OEO5F&Vl3!p`QqKq>;6+vX_PmnYp}ic zru{R_wIobiYW`xj;==KYN7Qn*UP&+!ZHIzf0~*Ue^2S%3pD% ztat&mz2>$}74KivEDPUjayt6vC4S9CF8qduep|1GmpLM1m2AaxJ266G*)(^YpNnTL z>Y+VWt%vN^>!F|ZN@Df1Y=eFNC%|@|Xk=SW@2V2>#9QFZUE+O?v;3^R$&Z?!1wKG` zCkbkbsBRO^G{Px`QtI!1g!D#_#Kbx H!tehBrw^W} literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6d5e734ccb9b47548a3f350fd639d55c123ef616 GIT binary patch literal 5030 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fd2f8c0073a3ace5d57834e31db54c3132e41121 GIT binary patch literal 1454 zcmaKrZ%@-u6vm&sP0G4%%z+@{n1IMO{!|ea9bz2B2$}d|O2W&#u9=-(OWKaaZ>5QZ zpot&A4`n>}cG=K2yt%#q&hI&W&bhz;{P+c+hF2;QNGeEaxPdW-e3zeb-R4e5f8Xkw zM!+z(V>wo^%aANrjunhEEO&c)!2Qp<;d-XtZMO`)&0YPYZ+iROJ>0MF9rR9Z6$+AR zWS}X?YRF-Np%RUxpfk%bWpp!~i)e;Sf5c-bHKL(cL~9CeGE}d<^VVvap2Gt(%q|~h zH>Kg0NG(5*8{W!b2DcT=YPchuDPGH_c*8S^Ellt~@Rn_g_`4d4A~@If+|z%LN*eBA zfnnU|XEKVRTyBi)Zw8*_bZXI^dgWN4mo(hRGNC=Q=Z1v(mxDG#s(cvUSkX{Mg^cW& z!E4)=@(hJ?C1myk%hnr~AJhbHRl}Odbi%Mr?u=4Zun}AEn6i=dp4&Ew(XbrzsNW;I zr4uCDa1CxBbI%ga3^r52C(CD8jj3!5T@v*FjcXrJB~jXJH~AxSe}u6hAh{R!pd0_k(8G|khraE{4uGWa2lIl2r& zr;sI74v%Q1h2hx5V_GrMqyzLeeFa*re#hh`rWr;g@!Wv|(wMwLQHK=j)_BTXlrlq< z*;ooS_JDFiIj2Z5D{@&~D_&wg6-lQ^KQk{u)$sBl9SXx1p2(lc;wjBU@>x8?wsepB ze;~6*YiW^?DP3YQ84+28iX|yBEisv)NCwaGfgz)nvSh<68o8g<@>H< zTan|{$NcSNbsWSY4TlXJ!BK&IyYAT{&-1ng8G4PtmbXHNEvmqVN#xajll}-{-&LJGVTs029OX$%oJOynT<4-heo392*2$yBKhF#I$b zZeyC>1e3jk8CrMwE1-9i2ZhFczDk=!Cg{+N{hpr?w>6wo|AF_mQyh!M1hSuzefj~H c-b4F{%Svn!N5&SWouVuTGJFK?(@$XbH%BW#ga7~l literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..680b0d9c0e2e79e5a8d5436f78e7ff2523425198 GIT binary patch literal 2609 zcmai0TUQfT7~KbuN#ckQK)m6tia;%?BHrRHB8VjsNVt^RmQE%^GBBBmGZT=uFMaA; zpZy1YwRVXvU2Pw`R-f=k^f&aatNSD&Bn0b2Cg(fzop0~&dgiZx-~0|Bitj^cLbHMv z75mUC(7vLrX%S1avyrLvilO@gtv5~E^lu9^_Yce~2nZZo$wz$6TaD%q;OLIC$)fF> zd87J1gkGGI`8h3cxR%sx&UMzcv}HsG=7Ui1k&3f8C(z~@o=3yun(jO9hQNuq<7Oi{ zGc7~p8+eJy!0AT$4s`tGI)^ z0-foiX=UoOByg&Kx0QMg=J6i2>VYPT^r}^5iuV^46`ccd&)ww;*QtRmIbxzt$lQ7kc5KBG>@QmKWh<54lswwsl0Dlr{hv*tC|lyYUW#m||HS#P|t=Bi^gD$v3yNvC^Q1=TS^ zwv~BB1wnwGop-e(hHnp)qL9!E71R!nyZZW}j$YgG0;hLnv0*6C?wMUWdt{o?NjXJV zH^xmFgrFSrL(&IU-#y3iJ>S&|3B%7h8Sh{#oDd3lqQI49#=xB28I7jB=B#plm97Ii z&&sO~xo5T2P*E%!ozU!zWq4=fju#7vr~6)cB5eIq5il=zkEy96?4VJsAgFy z(>FM@ioABVp1u2F>&@2NcR#)RaqH#QZ(FaoUY-)Hu!l^cTbdGvr{Jl)C#!dG9h-VL z6nx9U{{O1HiOW9YBCm%gwr(pz@{Zu@DCV&MfzP>aLXh%ejod-`iyFC;^5YtLnDUo3 z@(7w~g`W_#_!TV<^I!0P-{32VUrG>P^C`bJBypfI)tIoTtVGbn#}| z2JIqP1_pJP`6KI;LK{J3akoO??+StC7dZ1LmfoUo@fG?f2g3s;Mw|FJ94XO~tBWOW zay1+tCQG>*36E4(S2uBeVQ>?-e#M!e(KY!3ql0ho5ZFY5+bJSECu%FF-wcOW*^?V+ zBeP4~z0B1JzX7h$kE_h&HQqeeF^U@;;8C8r!&5hr#4SePHbWRId3lI2Xrnhdn6#5b qJN;d$_!~siKbTPvYbV$$H=AG~&;I~v*!=leqZHz59UJ%#NB#psbHv2} literal 0 HcmV?d00001 From 19b0afbf0c47bfef20849fd8c16525aa66577882 Mon Sep 17 00:00:00 2001 From: VPVXNC Date: Sat, 25 Dec 2021 14:02:04 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C,=20=D0=B2=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B0=D1=8F=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/core/jdbc/util/PropertiesUtil.java | 30 +++++++++++++++++++ src/main/resources/application.properties | 8 +++++ 2 files changed, 38 insertions(+) create mode 100644 src/main/java/jm/task/core/jdbc/util/PropertiesUtil.java create mode 100644 src/main/resources/application.properties diff --git a/src/main/java/jm/task/core/jdbc/util/PropertiesUtil.java b/src/main/java/jm/task/core/jdbc/util/PropertiesUtil.java new file mode 100644 index 00000000..a6d02472 --- /dev/null +++ b/src/main/java/jm/task/core/jdbc/util/PropertiesUtil.java @@ -0,0 +1,30 @@ +package jm.task.core.jdbc.util; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +public final class PropertiesUtil { + + private static final Properties PROPERTIES = new Properties(); + + static { + loadProperties(); + } + + private PropertiesUtil() { + } + + public static String get(String key) { + return PROPERTIES.getProperty(key); + } + + private static void loadProperties() { + try (InputStream inputStream = PropertiesUtil.class.getClassLoader().getResourceAsStream("application.properties")) { + PROPERTIES.load(inputStream); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 00000000..754495f7 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1,8 @@ +db.url=jdbc:mysql://localhost:3306/test +db.username=root +db.password=22121995 +#hibernate.connection.url=jdbc:mysql://localhost:3306/test +#hibernate.connection.username=root +#hibernate.connection.password=22121995 +show_sql=true +format_sql=true