赞
踩
Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。
Hibernate中Session对象是非线程安全的 ,不能定义成全局变量, 只能定义成局部变量。
Session代表的是Hibernate与数据库的链接对象,是与数据库交互的桥梁。
●Session中的API
■保存方法:
▲Serializable save(Object obj) Serializable可序列话 其实是ID
Customer customer = new Customer();
customer.setCust_name("cc");
try {
Serializable id = seesion.save(customer);
System.out.println(id);
} catch (Exception e) {
System.out.println(e);
// TODO: handle exception
}
结果:
■查询方法:
▲T get(Class c,Serializable id);
▲T load(Class c,Serializable id);
get 和load的区别 :
get方法
采用的立即加载,代码执行的时候,就马上发送 sql语句去查询,查询后返回真正的实体,当查询一个找不到的对象会返回为null
load方法
采用的是延时加载(lazy懒加载),代码执行到的时候,不发送sql语句,当真正用到对象时候才会发送sql.查询后是代理对象。javassist-3.18.1-GA.jar 利用javasisit技术的代理,查询一个找不到的对象 ,返回ObjectNotFoundException
■修改的方法:
▲void update(Object obj)
■删除的方法:
▲void delete(Object obj)
■保存或更新:
▲void saveOrUpdate(Object obj)
■查询:
▲ SQLQuery createSQLQuery(String queryString);
▲Query createQuery(String queryString);
写sql和hql都是可以的
作者:叫我18岁的骚年
来源:CSDN
原文:https://blog.csdn.net/q6658368/article/details/81181973
版权声明:本文为博主原创文章,转载请附上博文链接!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。