#眉標=Java
#大標= Java物件的永續性解決方案: Java Persistence API
#副標= Java EE 5: 伺服器端開發技術大躍進(5)
#作者=文/廖峻鋒
==<程式1>===========
Connection connection;
try {
// Step 1: 載入JDBC驅動程式
Class.forName("com.mysql.jdbc.Driver").newInstance();
// Step 2: 取得資料庫連結
String url = "jdbc:mysql://localhost/dbname?user=root&password=abc";
connection = DriverManager.getConnection(url);
// Step 3: 建立Statement物件
Statement stmt = connection.createStatement();
// Step 4: 下SQL
ResultSet rs = stmt.executeQuery("select * from product");
// Step 5: 處理結果
while(rs.next()) {
…
}
}catch (Exception ex){ // Step 6: 關閉連結與例外處理
ex.printStackTrace();
}// end catch
finally {
try {
connection.close();
}
catch (Exception ex) {
ex.printStackTrace();
}
}// end finally
==<程式1 end>==============
==<程式2>===========
@Entity
@Table(name=” tb_emp”)
public class Employee {
@Id
private int id;
private String name;
@Temporal(value = TemporalType.DATE)
private Date birthday;
…(getter與setter省略)…
}
==<程式2 end>==============
==<程式3>===========
Employee
==<程式3 end>==============
==<程式5>===========
Public static void main(String args[]){
// 取得EntityManager的前置作業
EntityManagerFactory emf = Persistence
.createEntityManagerFactory("EmployeeService"); // (1)
EntityManager em = emf.createEntityManager(); // (2)
// 找到id為100的員工並設定其生日為今天
em.getTransaction().begin(); // (3)
Employee e = em.find(Employee.class, 100); // (4)
e.setBirthday(new Date()); // (5)
em.getTransaction().commit(); // (6)
em.close(); // (7)
emf.close(); // (8)
}
==<程式5 end>==============
==<程式6>===========
…(後略)…
==<程式6 end>==============
==<程式7>===========
@Entity
@Table(name="tb_emp")
@SecondaryTable(name="tb_emp_detail", pkJoinColumns=@PrimaryKeyJoinColumn(name="ID"))
public class Employee { ... }
==<程式7 nd>==============
==<程式8 box>===========
@Column(name=”emp_sal”,nullable=”false”)
private lone salary;
==<程式8 end>==============
==<程式9>===========
@Id
@GeneratedValue(strategy=TABLE)
private int id;
==<程式9 end>==============
==<程式10>===========
// 位置參數
Query query1 = em.createQuery(“
select e from Employee e where e.id == ?1”);
query1.setParameter(1,100);
List result1 = query1.getResultList();
// 具名參數
Query query2 = em.createQuery(“
select e from Employee e where e.id == :id”);
query2.setParameter(“id”,100);
List result2 = query2.getResultList();
==<程式10 end>==============