[ Published on -
1. Java - Primitives
2. Java - Strings
3. Java - Arrays
4. Java - Date
5. Java - Generics
6. Java - Collections
7. Java - Localization
8. Java - Formatting
9. Java - Regular Expressions
10. Java - System
11. Java - Serialization
12. Java - Multithreading
13. Java - IO/File
14. Java - Networking
15. Java - ORM - JPA
a) Simple User entity class
package jpa; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import javax.persistence.Query; /** **************************************************************************** * JAVA PERSISTENCE API EXAMPLE * * JPA Reference: http://www.objectdb.com/api/java/jpa/annotations/class * JPA Performance Benchmark: http://www.jpab.org/All/All/All.html * JPA Cheat sheet: http://refcardz.dzone.com/refcardz/getting-started-with-jpa * * * @author stanislav.zorjan */ public class Main { private EntityManagerFactory ef = Persistence.createEntityManagerFactory("javaOzonePU"); private EntityManager em = ef.createEntityManager(); private BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); /** ************************************************************************ * main point * @param args */ public static void main(String args[]){ Main m = new Main(); } /** ************************************************************************ * Default constructor */ public Main() { inputAddUser(); //inputFindUser(); //getAllUsers(); //findUserByFirstName("Stanislav"); //findUserByLastName("Zorjan"); //findUserByAddress("Matije"); //updateUserFirstName(3, "Stanislavski"); //deleteUserByID(1); } /** ************************************************************************ * Method getting input data from console */ private void inputAddUser(){ try { System.out.println("Please enter first name:"); String firstName = br.readLine(); System.out.println("Please enter last name"); String lastName = br.readLine(); System.out.println("Please enter address"); String address = br.readLine(); insertUser(firstName, lastName, address); System.out.println("Do you want to add another user? y/n"); if(br.readLine().toLowerCase().equals("y")){ inputAddUser(); }else{ em.close(); ef.close(); } } catch (IOException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } /** ************************************************************************ * Method for finding users */ private void inputFindUser(){ System.out.println("Find user by:\n1. ID\n2. First Name\n3. Last Name\nEnter number 1-3"); try { Integer choice = Integer.parseInt(br.readLine()); switch(choice){ case 0: getAllUsers(); break; case 1: System.out.println("Enter ID of the user:"); Integer id = Integer.parseInt(br.readLine()); findUserByID(id); break; case 2: System.out.println("Enter Name of the user:"); String firstName = br.readLine(); findUserByFirstName(firstName); break; case 3: System.out.println("Enter Name of the user:"); String lastName = br.readLine(); findUserByFirstName(lastName); break; } } catch (IOException ex) { System.out.println("Please enter a number between 1-3"); inputFindUser(); } finally{ try { System.out.println("\nDo you want to find another user? y/n"); if(br.readLine().toLowerCase().equals("y")){ inputFindUser(); }else{ em.close(); ef.close(); } } catch (IOException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } } /** ************************************************************************ * Method for inserting user into db * @param firstName * @param lastName * @param address */ private void insertUser(String firstName, String lastName, String address){ User u = new User(); u.setFirstName(firstName); u.setLastName(lastName); u.setAddress(address); em.getTransaction().begin(); em.persist(u); em.getTransaction().commit(); } /** ************************************************************************ * Getting all users by using named query from User class */ private void getAllUsers(){ Query q = em.createNamedQuery("User.findAll"); Listlist = q.getResultList(); System.out.println(Arrays.toString(list.toArray())); } /** ************************************************************************ * Getting user by ID */ private void findUserByID(Integer id){ User u = (User) em.find(User.class, id); System.out.println(u.toString()); } /** ************************************************************************ * Getting user by it's first name using named query from User class * @param firstName */ private void findUserByFirstName(String firstName){ Query q = em.createNamedQuery("User.findByFirstName"); q.setParameter("firstName", firstName); System.out.println(Arrays.toString(q.getResultList().toArray())); } /** ************************************************************************ * Getting user by it's last name using named query from User class * @param lastName */ private void findUserByLastName(String lastName){ Query q = em.createQuery("SELECT c FROM User c WHERE c.lastName = :lastName"); q.setParameter("lastName", lastName); System.out.println(Arrays.toString(q.getResultList().toArray())); } /** ************************************************************************ * Getting user by it's address using native query * @param address */ private void findUserByAddress(String address){ Query q = em.createNativeQuery("SELECT * FROM users WHERE address LIKE \"%"+address+"%\"", User.class); List l = q.getResultList(); System.out.println(Arrays.toString(l.toArray())); } /** ************************************************************************ * Updating user by id * @param ID */ private void updateUserFirstName(Integer ID, String firstName){ Query q = em.createQuery("UPDATE User c SET c.firstName = :firstName WHERE c.id = :id"); q.setParameter("id", ID); q.setParameter("firstName", firstName); em.getTransaction().begin(); int status = q.executeUpdate(); em.getTransaction().commit(); System.out.println("update status: " + status); } /** ************************************************************************ * Deleting user by id * @param ID */ private void deleteUserByID(Integer ID){ Query q = em.createQuery("DELETE FROM User c WHERE c.id = :id"); q.setParameter("id", ID); em.getTransaction().begin(); int status = q.executeUpdate(); em.getTransaction().commit(); System.out.println("update status: " + status); } }