1.get和load的區別
* get不支持lazy ,load支持lazy
* 採用get加載數據如果沒有匹配的數據返回null而load則拋出異
/**
* 採用get如果數據庫沒有就返回null
*/
public static void testReadByGetMethod02() {
Session session = null;
try {
//
session = HibernateSessionFactory.getSession();
session.beginTransaction();
Users user = (Users) session.get(Users.class,
"402881123dba6017013dba6019490001");
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
} finally {
HibernateSessionFactory.closeSession();
}
}
/**
* 採用load,延遲加載只有真正用到這個對象的時候才加載(執行sql)
*/
public static void testReadByLoadMethod01() {
Session session = null;
try {
session = HibernateSessionFactory.getSession();
session.beginTransaction();
//這個時候不執行sql
Users user = (Users) session.load(Users.class,
"402881123dba6017013dba6019490001");
//這個時候執行sql
System.out.println("user_name:"+user.getUserName());
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
HibernateSessionFactory.closeSession();
}
}
/**
* 採用Load加載數據如果數據庫中沒有響應的數據,那麼拋出異常
*/
public static void testReadByLoadMethod02() {
Session session = null;
try {
session = HibernateSessionFactory.getSession();
session.beginTransaction();
Users user=(Users)session.load(Users.class,"aaaaa");
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
HibernateSessionFactory.closeSession();
}
}