1.get()方法
数据库:
get()方法代码:
package com.tyf.hibernate;
import org.hibernate.Session;
import com.tyf.entity.Users;
public class TestGetUser {
public static void main(String[] args) {
new TestGetUser().getUserById(2);
}
private void getUserById(int i){
Session session=HibernateSessionFactory.getSession();
Users user=(Users)session.get(Users.class, i);
System.out.println(user.getName()+"还有"+user.getPassword());
HibernateSessionFactory.closeSession();
}
}运行结果:如果将i 的值改为没有的值比如4 结果:
运行结果出现了空指针异常(NullPointException),是由user对象调用的getName方法引起的,原因在于user对象为null,因此使用get()方法加载数据时,如果指定的记录不存在,则返回null.
2.load()方法
package com.tyf.hibernate;
import org.hibernate.Session;
import com.tyf.entity.Users;
public class TestLoadUser {
public static void main(String[] args) {
new TestLoadUser().loadUserById(2);
}
private void loadUserById(int i){
Session session=HibernateSessionFactory.getSession();
Users user=(Users)session.load(Users.class, i);
System.out.println(user.getName()+"还有"+user.getPassword());
HibernateSessionFactory.closeSession();
}
}运行结果;讲i换成4:
出现了ObjectNotFoundException异常,表示对象没有发现,这个异常说明使用load()方法加载时,要求记录必须存在,这一点与get()方法是不同的。
本文介绍了Hibernate框架中get和load方法的区别。get方法在指定记录不存在时返回null,而load方法则会抛出ObjectNotFoundException异常,强调了两种方法在处理不存在记录时的不同行为。
312

被折叠的 条评论
为什么被折叠?



