jpa cart - kennesaw state universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/jpa cart new.docx ·...
TRANSCRIPT
![Page 1: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/1.jpg)
JPA Cart
1. Open the NetBeans IDE
2. Choose File → New Project
3. Choose Java from the Categories menu on the left and choose Java
Application from the Projects menu on the right and click “Next”
![Page 2: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/2.jpg)
7. In order to save our objects to the database, we need to make sure
we have a database to save them in.
1. Click on the Services pane in the upper-left of the NetBeans IDE and expand the Databases node.
2. Right-click the Java DB service and click the “Start Server” menu item. This will start the Java DB engine that comes bundled with NetBeans.
![Page 3: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/3.jpg)
3. Right-click the Java DB service again and choose the “Create Database” menu item.4. In the Create Java DB Database dialog, enter myfirstjpa as the database name and enter app for both the user name and password
You should now see a new database named myfirstjpa in the database list.
![Page 4: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/4.jpg)
7. Right-click on the JPACart project node and choose New → Entity
Class from the context menu.
![Page 5: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/5.jpg)
8. Enter Customer as the Class Name and entities as the Package.
You will also see a warning that a Persistence Unit must be created.
The persistence unit defines some details for JPA such as the data
source for the database. Click the “Create Persistence Unit”
button to create the persistence unit.
9. In the Create Persistence Unit dialog, name the new persistence
unit PU1 and set the persistence provider to TopLink(default) and
leave the Table Generation Strategy on “Create.”
![Page 6: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/6.jpg)
10. In the Data Source drop-down menu, choose the New Data Source
option to create a new data source.
11. Click “Finish” to complete the creation of the Customer entity.
12. Create the Order entity as above.
13. Add the derbyclient.jar into the library
Enter into the website :
http://www.java2s.com/Code/Jar/DEF/Downloadderbyclientjar.htm
and download the derbyclient.jar
Right click the library and choose the Add Jar file.
14. Create Client file.
Client.java
package client;
![Page 7: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/7.jpg)
import javax.persistence.EntityManager;
import javax.persistence.Persistence;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;
import java.util.Collection;
import java.util.List;
import entity.Customer;
import entity.Order;
public class Client {
private static EntityManagerFactory emf;
private static EntityManager em;
public static void main(String[] args) {
// Create EntityManagerFactory for persistent unit named
"pu1"
// to be used in this test
![Page 8: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/8.jpg)
emf = Persistence.createEntityManagerFactory("pu1");
// Persist all entities
createTransactionalEntityManager();
System.out.println("Inserting Customer and Orders... " +
testInsert());
closeTransactionalEntityManager();
// Test query and navigation
createEntityManager();
System.out.println("Verifying that all are inserted... " +
verifyInsert());
closeEntityManager();
// Get a detached instance in a new EntityManager
createEntityManager();
Customer c = findCustomer("Joe Smith");
closeEntityManager();
// Remove all entities
createTransactionalEntityManager();
![Page 9: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/9.jpg)
System.out.println("Removing all... " + testDelete(c));
closeTransactionalEntityManager();
// Query the results
createEntityManager();
System.out.println("Verifying that all are removed... " +
verifyDelete());
closeEntityManager();
}
private static String testInsert() {
// Create new customer
Customer customer0 = new Customer();
customer0.setId(1);
customer0.setName("Joe Smith");
// Persist the customer
em.persist(customer0);
// Create 2 orders
![Page 10: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/10.jpg)
Order order1 = new Order();
order1.setId(100);
order1.setAddress("123 Main St. Anytown, USA");
Order order2 = new Order();
order2.setId(200);
order2.setAddress("567 1st St. Random City, USA");
// Associate orders with the customer. The association
// must be set on both sides of the relationship: on the
// customer side for the orders to be persisted when
// transaction commits, and on the order side because it
// is the owning side.
customer0.getOrders().add(order1);
order1.setCustomer(customer0);
customer0.getOrders().add(order2);
order2.setCustomer(customer0);
![Page 11: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/11.jpg)
return "OK";
}
private static String verifyInsert() {
Customer c = findCustomer("Joe Smith");
Collection<Order> orders = c.getOrders();
if (orders == null || orders.size() != 2) {
throw new RuntimeException("Unexpected number of
orders: "
+ ((orders == null)? "null" : "" + orders.size()));
}
return "OK";
}
private static String testDelete(Customer c) {
// Merge the customer to the new persistence context
Customer c0 = em.merge(c);
// Delete all records.
![Page 12: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/12.jpg)
em.remove(c0);
return "OK";
}
private static String verifyDelete() {
Query q = em.createQuery("select c from Customer c");
List results = q.getResultList();
if (results == null || results.size() != 0) {
throw new RuntimeException("Unexpected number of
customers after delete");
}
q = em.createQuery("select o from Order o");
results = q.getResultList();
if (results == null || results.size() != 0) {
throw new RuntimeException("Unexpected number of
orders after delete");
}
![Page 13: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/13.jpg)
return "OK";
}
private static Customer findCustomer(String name) {
Query q = em.createQuery("select c from Customer c where
c.name = :name");
q.setParameter("name", name);
return (Customer)q.getSingleResult();
}
private static void createTransactionalEntityManager() {
// Create a new EntityManager
em = emf.createEntityManager();
// Begin transaction
![Page 14: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/14.jpg)
em.getTransaction().begin();
}
private static void closeTransactionalEntityManager() {
// Commit the transaction
em.getTransaction().commit();
// Close this EntityManager
em.close();
}
private static void createEntityManager() {
// Create a new EntityManager
em = emf.createEntityManager();
![Page 15: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/15.jpg)
}
private static void closeEntityManager() {
// Close this EntityManager
em.close();
}
}
Customer.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package entity;
import java.io.Serializable;
import javax.persistence.*;
![Page 16: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/16.jpg)
import static javax.persistence.CascadeType.*;
import java.util.Collection;
import java.util.ArrayList;
@Entity
public class Customer implements Serializable {
private int id;
private String name;
private Collection<Order> orders = new ArrayList<Order>();
@Id
public int getId() {
![Page 17: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/17.jpg)
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@OneToMany(cascade=ALL, mappedBy="customer")
public Collection<Order> getOrders() {
return orders;
![Page 18: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/18.jpg)
}
public void setOrders(Collection<Order> newValue) {
this.orders = newValue;
}
}
Order.java
package entity;
import javax.persistence.*;
@Entity
@Table(name="ORDER_TABLE")
public class Order {
![Page 19: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/19.jpg)
private int id;
private String address;
private Customer customer;
@Id
@Column(name="ORDER_ID")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name="SHIPPING_ADDRESS")
![Page 20: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/20.jpg)
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@ManyToOne()
@JoinColumn(name="CUSTOMER_ID")
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
![Page 21: JPA Cart - Kennesaw State Universityksuweb.kennesaw.edu/~kqian/swe4633(fall)/JPA cart new.docx · Web viewJPA Cart Open the NetBeans IDE Choose File → New Project Choose Java from](https://reader031.vdocuments.site/reader031/viewer/2022040904/5e77d606faf32d4c131d49d7/html5/thumbnails/21.jpg)
}
}
Run the Project and you will see the following.