hibernate的get()和load()介绍一
来源:互联网 发布:六次人口普查数据 编辑:程序博客网 时间:2024/06/08 16:56
hibernate作为一个开源的轻量级的mvc的数据持久层框架,对jdbc进行了细致的封装,让使用更加简单,是程序员更加可以注重对业务逻辑的编写.但是,因为hibernate在采用的面向对象的编程,是我们在编程过程中需要对面向对象的语言进行解析,生成sql语句,然后进行数据的封装耗时比较多.这也体现了hibernate的性能是不如jdbc和mybatis的.但是hibernate也进行了性能提升的改进,比如说二级缓存,在比如这里说get()和load().
好的,这里对hibernate做了一个大体的介绍,那么现在进入正题,对get()和load()的讨论.
get()和load()作为加载的方法,实现的功能是一样的,但是他们存在的是效率的问题,也就是说在什么情况下需要时那个方法.
其实load()和get()的本质区别就是是否用延迟,什么叫延迟?延迟就是你需要的时候在给你进行加载操作,不需要则不加载,由此也体现出了使用延迟对性能的优化,这样可以节约资源,省去不必要的查询出来却不使用的浪费.
那么,get()方法是不适用延迟的,load()方法默认进行延迟操作.当然,我们也可以对load()进行取消延迟的操作(不过,这样就是的load设计的无意义),而且,我们平时大多使用的就是load()的延迟装载.
<class name="DepeModel" table="db_dep" lazy="false">
稍微说下,延迟配置在hibernate的映射文件中的class标签中,lazy就是延迟属性,默认是true,使用了false,就是不适用延迟,那么这个方法和get()是一样的了.
正常load()代码示例:
public TestModel load(String id){ //这里说明了读取配置文件的hibernate.cfg.xml放在更目录下 //如果想自己设置,需把路劲先写到configure()中 Configuration cfg=new Configuration().configure(); //创建session工厂 SessionFactorysessionFactory=cfg.buildSessionFactory(); //创建session Session session=sessionFactory.openSession(); //使用hibernate的load方法加载 test=session.load(TestModel.class, id); session.close(); return test; }
使用中我们有一个这样的问题,那就是,加入session关闭了,那么这个时候我们需要用load()查询了,怎么办?
答案是:报错,介绍二会具体讲解!
hibernate的get()和load()介绍二
- hibernate的get()和load()介绍一
- hibernate的get()和load()介绍二
- hibernate的get和load
- Hibernate的load和get
- Hibernate的load和get
- Hibernate的 get()和load()
- Hibernate学习(一)之load和get的区别
- hibernate get()和load()
- hibernate get()和load()
- hibernate load 和get
- hibernate get 和load
- Hibernate的get和load的区别
- Hibernate的get和load的区别
- Hibernate的get和load的区别
- hibernate的load和get的区别
- hibernate的load()和get()的区别
- hibernate的load()和get()的区别
- Hibernate中load和get的区别
- 离散时间傅立叶变换DTFT实现
- ArrayList和linkedList源码分析
- 在jsp中引入jQuery
- MySql 取一天的开始时间和结束时间
- vim编辑器小结
- hibernate的get()和load()介绍一
- C#——分类目录
- 11月23日
- Flask-Mail学习中遇到的问题
- Nginx-rtmp模块实现流媒体play、push、pull功能
- GNS3 jungle newsfeed 隐藏
- Java关键字this、super使用
- CentOS 修改 Yum 安装的 MySQL 的默认路径
- 排序-希尔排序