2014年10月12日 星期日

【筆記】一個可以在Java SE中運行的簡單JPA程式

啟動Derby DB後,連線到我們建立的資料庫後,執行下列語法來建立EMPLOYEE資料表:
CREATE TABLE APP.EMPLOYEE (
    ID INTEGER NOT NULL, 
    NAME VARCHAR(255), 
    SALARY INTEGER, 
    PRIMARY KEY (ID))

接著在Eclipse中建立一個hrServiceJava專案,專案中引入下列jar檔:
  • derbyclient.jar:在Glassfish安裝目錄/javadb/lib下可以找到
  • javax.persistence.jar:在Glassfish安裝目錄/glassfish/modules下可以找到
  • org.eclipse.persistence.asm.jar:在Glassfish安裝目錄/glassfish/modules下可以找到
  • org.eclipse.persistence.core.jar:在Glassfish安裝目錄/glassfish/modules下可以找到
  • org.eclipse.persistence.jpa.jar:在Glassfish安裝目錄/glassfish/modules下可以找到
  • org.eclipse.persistence.jpa.jpql.jar:在Glassfish安裝目錄/glassfish/modules下可以找到

再來在src下建立一個META-INF的資料夾,然後在其中建立一個persistence.xml的檔案:

    
        idv.jk.hr.entity.Employee
        NONE
  
            
            
            
            
        
    


下一步,建立idv.jk.hr.entity的套件,在其中新增一個EmployeeEntity
package idv.jk.hr.entity;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Employee 
{
 @Id
 private int id;
 private long salary;
 private String name;
 
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public long getSalary() {
  return salary;
 }
 public void setSalary(long salary) {
  this.salary = salary;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
}
最後,寫一個簡單的程式來嘗試新增一個員工資料,新增一個idv.jk.hr.client的套件,在其中新增一個EmployeeMain的類別:
package idv.jk.hr.client;

import idv.jk.hr.entity.Employee;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class EmployeeMain 
{
 public static void main(String[] args)
 {
  EntityManagerFactory emf = 
    Persistence.createEntityManagerFactory("HrService");
  EntityManager em = emf.createEntityManager();
  
  Employee emp = new Employee();
  emp.setId(168);
  emp.setSalary(100000);
  emp.setName("易路發");
  em.getTransaction().begin();
  em.persist(emp);
  em.getTransaction().commit();
 }
}

完成後,執行EmployeeMain這個類別,應該就可以在資料庫中的EMPLOYEE資料表中新增一筆資料。


完整的範例程式,可以在這裡下載

沒有留言: