



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
get和load的区别:1不存在对应记录时表现不一样2load返回的是代理对象(javassist.jar生成二进制码),等到真正用到对象的内容才会发出SQL语句3get直接从数据库加载,不会延迟无论是get还是load,都会首先查找缓存(一级缓存),如果没有,才会去数据库查找,调用clear()方法,可以强制清除session缓存调用flush()方法可以强制进行从内存到数据库的同步。SessionFactory1用来管理Session2通常情况下每个应用只需要一个SessionFactory3除非要访问多个数据库的情况4关注两个方法即可iopenSession每次都是新的,需要close();iigetCurrentSession从上下文找,如果有,用旧的,如果没有,创建新的a用途,界定事务边界b事务提交自动close;ccurrent_session_context_class(jta或者thread)thread使用connectionlist和iterate的区别:alist取出所有biterate取出id,等要用的时候再根据id取出对象csession中的list第二次发出,仍然会倒数据库查询diterate第二次,首先找session级缓存getCurrentSession()一定要在事务中使用!缓存问题i:一级缓存:session级别的缓存ii:二级缓存:SessionFactory级别缓存,可以跨Session级别访问什么对象应该放在二级缓存?1经常被访问2改动不大3数量有限怎么使用二级缓存?第一步:打开二级缓存。第二步:在hibernate文件里面配置如下信息:trueorg.hibernate.cache.EhCacheProvider第三步:添加ehcache.xml文件第四步:在映射类文件中添加属性:默认情况下,load会使用二级缓存,iterate会使用二级缓存。list会默认往二级缓存添加数据,但是查询的时候不使用。iii:查询缓存:是指同样的,重复查询使用的缓存。查询缓存依赖于二级缓存,所以,需要打开二级缓存。true写程序的时候,需要调用:Query的setCachable(true);缓存算法:LRU,LFU,FIFO(面试意义更大,实际当中很少用到)1.Least Recently Used2.Least Frequently Used(命中率低)3.First Infirst OutmemoryStoreEvictionPolicy=”LRU”(ehcache)。事务的并发处理(面试的意义更大)并发出现的问题:1第一类丢失更新2脏读3不可重复读4幻读设置Hibernate的设置级别:1:read-uncommitted2:read-uncommitted4:repeatable-read8:serializable设置锁的隔离级别:2乐观锁和悲观锁。一对多中,一的一方有多的一方集合,多的一方有以的一方的实体类。一的一方配置示例:多的一方配置文件示例:get和load方法:即使加载:不管是否使用,马上加载(从数据库取出放入内存),如session.get()方法。不需要session一直打开状态优点:响应速度快,效率高缺点:占用资源多延迟加载:代码执行后并不马上执行sql语句从数据库获取数据,而是在使用对象是才加载,如session.load()方法。注意,如果使用延迟加载,session要一直 处于open状态,否则报异常优点:占用资源少缺点:响应速度慢1:表的别名:select stu from Student as stu where stu.stuName=yinlei;2:返回单个数据:当Sql语句返回的只有一个数值时,可以使用query.uniqueResult();如:select stu from Student as stu where stuId=1;3:模糊查询:select stu from Student as stu where stu.stuName like yinlei;4:select stu.stuId,stu.stuName from Student as stu返回的不是实体对象的list,而是5:Object数组list6:命名参数类似于PreparedStatement的功能,普通占位符,使用?,但小标中从0开始,而JDBC中从1开始示例:String hql = “select stu from Student as stu where stu.stuAge between ? and ?”;Query query = session.createQuery(hql);query.setInteger(0, 22);query.setInteger(1, 23);Liststus = query.list();当占位符较多时,容易混淆,这时可以使用hibernate提供的命名参数查询:示例:String hql = “select stu from Student as stu where stu.stuAge between :minAge and :maxAge and stu.stuName like :name”;Query query = session.createQuery(hql);query.setInteger(“minAge”, 21);query.setInteger(“maxAge”, 23);query.setString(“name”, “yinlei%”);Liststus = query.list();聚合函数示例:String hql = “select count(stu),max(stuAge),min(stuAge),avg(stuAge),sum(stuAge) from com.yinlei.Student as stu”;Query query = session.createQuery(hql);Object objs = (Object) query.uniqueResult();for(Object object : objs )System.out.println(object);Mysql分页语法很简单:select * from student limit (nowpage-1)*pagesize,pagesizesqlserver分页:select top 3 from student where stuId not in(select top 0 stuId from student order by stuId) order by stuId;Hibernate的分页方法:String hql = “from Student”;Query query = session.createQuery(hql);query.setFirstResult(nowPage-1)*pageSize);query.setMaxResults(pageSize);Liststus = query.list();HQL可以执行查询删除修改新增操作,但是只要删除操作偶尔使用。示例:String queryString = “update Student set stuAge = stuAge+1;Query query = session.createQuery(quer
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咨询灭蚊方案
- 义务植树活动策划及方案
- 寒假声乐课程活动策划方案
- 来电咨询推广方案
- 保险咨询保险规划方案
- 大陆公司岗位绩效工资制运行管理办法
- 散装卫生巾营销方案策划
- 大学生吉他招生营销方案
- 动物保护活动策划方案
- 人工智能在教育领域应用前景
- 2025-2026学年人音版(简谱)(2024)初中音乐七年级上册教学计划及进度表
- 6 有趣的纸艺制作教学设计-2025-2026学年小学美术广西版五年级上册-广西版
- 2025年中国邮政集团有限公司安徽省分公司社会招聘笔试参考题库附答案解析
- 2025年度零售定点药店医保培训考核试题(答案+解析)
- 2025年发展对象考试题(附答案)
- 第2课《中国人首次进入自己的空间站》课件+2025-2026学年统编版语文八年级上册
- 2025年安全员项目负责人(B证)考试题库(含答案)
- 2025年旋挖钻司机操作安全教育培训试题试卷及答案
- 红领巾知识竞赛题库及答案
- 2025年湖北客运从业资格证考试试题答案
- 2025至2030中国铷/铯及其化合物行业项目调研及市场前景预测评估报告
评论
0/150
提交评论