Session對象提供了兩種對象裝載的方法,分別是get()方法和load()方法。
get()方法
如果開發人員不確定數據庫中是否有匹配的記錄存在,就可以使用get()方法進行對象裝載,因為它會立刻訪問數據庫。如果數據庫中沒有匹配記錄存在,會返回null。
publicclassBWF{
publicstaticvoidmain(String[] args) {
Session session =HibernateUtil.getSession();
session.beginTransaction();
Product product=(Product) session.get(Product.class, 100001);
System.out.println("產品編號:"+product.getId());
System.out.println("產品生產商:"+product.getFactory());
System.out.println("產品價格:"+product.getPrice());
HibernateUtil.closeSession();
}
}
get()方法中含有兩個參數,一個是持久化對象,另一個是持久化時唯一標識。get()方法的返回值可能為null,也可能是一個持久化對象。
load()方法返回對象的代理,只有在返回對象被調用時,Hibernate才會發出SQL語句去資詢對象。
publicclassBWF{
publicstaticvoidmain(String[] args) {
Session session =HibernateUtil.getSession();
session.beginTransaction();
Product product=(Product) session.load(Product.class,newInteger("100001"));
System.out.println("產品編號:"+product.getId());
System.out.println("產品名稱:"+product.getName());
System.out.println("產品生產商:"+product.getFactory());
System.out.println("產品價格:"+product.getPrice());
HibernateUtil.closeSession();
}
}
由于load()方法返回對象在被調用時Hibernate才會發出SQL語句去查詢時象,所以在產口ID信息輸出之后才輸出SQL語句,因為產品ID在程序中是已知的,并不需要查詢。