From 2757c5e5470e991074b03699c097df522d196537 Mon Sep 17 00:00:00 2001 From: hamster Date: Mon, 28 Aug 2017 10:31:00 +0300 Subject: [PATCH 1/6] input my log/pass (but its not need) --- .../src/main/java/com/bobocode/util/DBUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jpa-hibernate-util/src/main/java/com/bobocode/util/DBUtil.java b/jpa-hibernate-util/src/main/java/com/bobocode/util/DBUtil.java index 07ad744..9cda182 100644 --- a/jpa-hibernate-util/src/main/java/com/bobocode/util/DBUtil.java +++ b/jpa-hibernate-util/src/main/java/com/bobocode/util/DBUtil.java @@ -25,8 +25,8 @@ private static Map getPropertiesMap() { properties.put("hibernate.connection.url", "jdbc:postgresql://localhost:5432/bobocode_db"); properties.put("hibernate.connection.driver_class", "org.postgresql.Driver"); - properties.put("hibernate.connection.username", "bobouser"); - properties.put("hibernate.connection.password", "bobopass"); + properties.put("hibernate.connection.username", "postgres"); + properties.put("hibernate.connection.password", "qwerty"); properties.put("hibernate.dialect", "org.hibernate.dialect.PostgreSQL9Dialect"); properties.put("hibernate.hbm2ddl.auto", "create"); From db7c650a796f35d60ede1099eb1d7ab5bf8f7fea Mon Sep 17 00:00:00 2001 From: hamster Date: Mon, 28 Aug 2017 10:31:16 +0300 Subject: [PATCH 2/6] input my log/pass --- .../src/main/resources/META-INF/persistence.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jpa-hibernate-util/src/main/resources/META-INF/persistence.xml b/jpa-hibernate-util/src/main/resources/META-INF/persistence.xml index 18e5e4a..265070e 100644 --- a/jpa-hibernate-util/src/main/resources/META-INF/persistence.xml +++ b/jpa-hibernate-util/src/main/resources/META-INF/persistence.xml @@ -7,8 +7,8 @@ - - + + From 59be2358709d6b9b04e760972b792c936060e67e Mon Sep 17 00:00:00 2001 From: hamster Date: Mon, 28 Aug 2017 10:32:00 +0300 Subject: [PATCH 3/6] change @GeneratedValue to @GeneratedValue(strategy = GenerationType.IDENTITY) --- .../src/main/java/com/bobocode/model/Account.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jpa-hibernate-model/src/main/java/com/bobocode/model/Account.java b/jpa-hibernate-model/src/main/java/com/bobocode/model/Account.java index 0d67101..16f67e0 100644 --- a/jpa-hibernate-model/src/main/java/com/bobocode/model/Account.java +++ b/jpa-hibernate-model/src/main/java/com/bobocode/model/Account.java @@ -15,7 +15,7 @@ @Table(name = "account") public class Account { @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "first_name") private String firstName; From af0afa7b1162d9ee2372c8f0d20f30ebc6d918e3 Mon Sep 17 00:00:00 2001 From: hamster Date: Mon, 28 Aug 2017 12:15:28 +0300 Subject: [PATCH 4/6] add Main for test --- .../src/main/java/com/bobocode/Main.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 jpa-hibernate-servlet-task/src/main/java/com/bobocode/Main.java diff --git a/jpa-hibernate-servlet-task/src/main/java/com/bobocode/Main.java b/jpa-hibernate-servlet-task/src/main/java/com/bobocode/Main.java new file mode 100644 index 0000000..aea176e --- /dev/null +++ b/jpa-hibernate-servlet-task/src/main/java/com/bobocode/Main.java @@ -0,0 +1,37 @@ +package com.bobocode; + +import com.bobocode.dao.AccountDao; +import com.bobocode.dao.impl.AccountDaoImpl; +import com.bobocode.model.Account; +import com.bobocode.util.AccountDataUtil; +import com.bobocode.util.DBUtil; + +import java.util.List; + +/** + * Created by hamster on 28.08.2017. + */ +public class Main { + public static void main(String[] args) { + AccountDao accountDao = new AccountDaoImpl(DBUtil.getEntityManagerFactory()); + System.out.println("findOne"); + System.out.println(accountDao.findOne(2L)); + System.out.println("****************************************"); + + System.out.println("findByEmail"); + System.out.println(accountDao.findByEmail("bob@marly.com")); + System.out.println("****************************************"); + + System.out.println("findAll"); + List accountList = accountDao.findAll(); + for (Account element:accountList) { + System.out.println(element); + } + System.out.println("****************************************"); + + System.out.println("save Account"); + Account newAccount = AccountDataUtil.generateFakeAccount(); + accountDao.save(newAccount); + System.out.println("****************************************"); + } +} From 1b3e9125384bb52ac482b4b3bdfa7b1efcd52a57 Mon Sep 17 00:00:00 2001 From: hamster Date: Mon, 28 Aug 2017 12:16:21 +0300 Subject: [PATCH 5/6] change data type for 1969-19-08 --- jpa-hibernate-servlet-task/src/main/webapp/form.jsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jpa-hibernate-servlet-task/src/main/webapp/form.jsp b/jpa-hibernate-servlet-task/src/main/webapp/form.jsp index 259b51c..ad5fda5 100644 --- a/jpa-hibernate-servlet-task/src/main/webapp/form.jsp +++ b/jpa-hibernate-servlet-task/src/main/webapp/form.jsp @@ -38,7 +38,7 @@
- +
From 15fe3eccc0020b6de44890d432cf67fb91d77c75 Mon Sep 17 00:00:00 2001 From: hamster Date: Mon, 28 Aug 2017 12:16:55 +0300 Subject: [PATCH 6/6] implement all methods --- .../com/bobocode/dao/impl/AccountDaoImpl.java | 32 ++++++++++++++++--- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/jpa-hibernate-servlet-task/src/main/java/com/bobocode/dao/impl/AccountDaoImpl.java b/jpa-hibernate-servlet-task/src/main/java/com/bobocode/dao/impl/AccountDaoImpl.java index 20f6e70..fb6aba5 100644 --- a/jpa-hibernate-servlet-task/src/main/java/com/bobocode/dao/impl/AccountDaoImpl.java +++ b/jpa-hibernate-servlet-task/src/main/java/com/bobocode/dao/impl/AccountDaoImpl.java @@ -5,6 +5,7 @@ import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; +import javax.persistence.TypedQuery; import java.util.List; @@ -22,29 +23,50 @@ public Account findOne(Long id) { em.getTransaction().begin(); //todo: find account by id using EntityManager - + Account queryAccount = em.createQuery("select a FROM Account a where a.id = :id", Account.class) + .setParameter("id", id) + .getSingleResult(); em.getTransaction().commit(); em.close(); - - throw new UnsupportedOperationException("Method is not implemented yet. It's your homework!"); // todo: return account + return queryAccount; } @Override public Account findByEmail(String email) { // todo: implement search by email via EntityManager - throw new UnsupportedOperationException("Method is not implemented yet. It's your homework!"); + EntityManager em = emf.createEntityManager(); + em.getTransaction().begin(); + + Account queryEmail = em.createQuery("select a from Account a where a.email = :email", Account.class) + .setParameter("email", email) + .getSingleResult(); + em.getTransaction().commit(); + em.close(); + return queryEmail; } @Override public List findAll() { //todo: find and return all accounts using EntityManagers - throw new UnsupportedOperationException("Method is not implemented yet. It's your homework!"); + EntityManager em = emf.createEntityManager(); + em.getTransaction().begin(); + List queryAccountList = em.createQuery("select a from Account a", Account.class) + .getResultList(); + em.getTransaction().commit(); + em.close(); + return queryAccountList; } @Override public void save(Account account) { // todo: save an account sing EntityManager + EntityManager em = emf.createEntityManager(); + em.getTransaction().begin(); + em.persist(account); + System.out.println(account.toString() + " saccesfully saved!"); + em.getTransaction().commit(); + em.close(); }