hibernate 二种方法来select 的不同之处
get: 一执行就会发出sql来查询,如果打不到数则返回一个null
load : 执行后生成代理的对象,不发sql语句,当要用到查到的对象时才发sql
如果找不到相应的数据,则会抛异常!!
get 与load 查询后的状态都是presistent的状态。
//查询一条记录
public void testGetMehod() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
//presistent
User user = (User)session.get(User.class, "4028819a204b85a601204b85a7f60001");
System.out.println("user' name "+user.getName());
user.setName("新数据");
session.getTransaction().commit();
}catch(Exception e) {
session.getTransaction().rollback();
e.printStackTrace();
}finally {
HibernateUtils.closeSession(session);
}
}
//查询一条记录
public void testLoadMehod() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
//presistent
User user = (User)session.load(User.class, "4028819a204b85dfa601204b85a7f60001");
System.out.println("user' name "+user.getName());
user.setName("新数据");
session.getTransaction().commit();
}catch(Exception e) {
session.getTransaction().rollback();
e.printStackTrace();
}finally {
HibernateUtils.closeSession(session);
}
}