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();
}
}