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; 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("****************************************"); + } +} 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(); } 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 @@
- +
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"); 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 @@ - - + +