- 浏览: 821852 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
Hiberante3 一级缓存总结
1. Session 级别的缓存,它同session邦定。它的生命周期和session相同。Session消毁,它也同时消毁;管理一级缓存,一级缓存无法取消,用两个方法管理,clear(),evict()
2. 两个session 不能共享一级缓存,因它会伴随session的生命周期的创建和消毁;
3. Session缓存是实体级别的缓存,就是只有在查询对象级别的时候才使用,如果
使用HQL和SQL是查询属性级别的,是不使用一级缓存的!切记!!!!
4 . iterate 查询使用缓存,会发出查询Id的SQL和HQL语句,但不会发出查实体的,
它查询完会把相应的实体放到缓存里边,一些实体查询如果缓存里边有,就从缓存中查询,但还是会发出查询id的SQL和HQL语句。如果缓存中没有它会数据库中查询,然后将查询到的实体一个一个放到缓存中去,所以会有N+1问题出现。
5 . List()和iterate 查询区别:
使用iterate,list查询实体对象*N+1问题,在默认情况下,使用query.iterate查询,有可以能出现N+1问题
所谓的N+1是在查询的时候发出了N+1条sql语句1: 首先发出一条查询对象id列表的sqlN:
根据id列表到缓存中查询,如果缓存中不存在与之匹配的数据,那么会根据id发出相应的sql语句list和iterate的区别?
list每次都会发出sql语句,list会向缓存中放入数据,而不利用缓存中的数据
iterate:在默认情况下iterate利用缓存数据,但如果缓存中不存在数据有可以能出现N+1问题
6.Get()和load(),iterate方法都会使用一级缓存.
7.hiberate3 session 存储过程如下:
例如 object 对象
Session.save(object);
这时候不会把数据放到数据库,会先放到session缓存中去,数据库中没有相应记录,session.flush();才发SQL和HQL语句,数据库中有了相应记录,
但是数据库用select查不到,这是跟数据库事物级别有关系,(这里在说下数据库的事务隔离级别一共四种如下:)
数据库隔离级别:
隔离级别 是否存在脏读 是否存在不可重复读 是否存在幻读;
Read UnCommited(未提交读) Y Y Y
Read Commited (提交读 oraclel默认) N Y Y
Repeatable Read(不可重复读(Msql默认)) N N Y
Serializable(使用很少) N N N
Session.beginTrransaction().commit();
事物提交后可以查询到了。
Session.flush() 语句但是为什么不写呢,因为commit()会默认调用flush();
Hiberante3 二级缓存总结
1.Hibernate3的(sessionFactory)二级缓存和session级别的缓存一样都只对实体对象做缓存,不对属性级别的查询做缓存;二级缓存的生命周期和sessionFactory的生命周期是一样的,sessionFactory可以管理二级缓存;
2.sessionFactory级别的缓存,需要手动配置;所有的session可以共享sessionFactory 级别的缓存;(一般把一些不经常变化的实体对象放到sessionFactory级别的缓存中,适合放不经常变化的实体对象。)
3.Hiberante3二级缓存的配置和使用方法如下:
1. 必须把ehcache.jar包导入,然后到Hibernate3.2的etc文件下把ehcache.xml复制到工程src目录下(ehcache.xml里边的参数里边有详细英文说明);
(说明:ehcache.jar是第三方法的缓存产品,hiberante只是把它做了集成,还有好多第三方hibernate集成的缓存产品,相关说明请查阅hiberante3开发手册;ehcache是不支持分布应用的,如果有分布式需求,请换成支持分布式的二级缓存产品,hiberate3开发手册都有相头说明。配置方法都类似);
4.Hibernate3的二级缓存默认是开起的,也可以指定开起。在hibernate.cfg.xml 文件下配置如下:
*修改hibernate.cfg.xml文件,开户二级缓存;
<property name=”hibernate.cache.use_second_level_cache”>true</property>
*指定二级缓存产品的提供商;
<property name=”hibernate.cache.provider_class”>org.hibernate.cache.EhCacheProvider
</property>
要让那些实体使用二级缓存,在hibernate.cfg.xml配置文件中加入:
<!—
让这个实体用二级缓存 也可以在实体中映射文件去配置即:
<cache usage="read-only"/>
-->
<class-cache class=”com.zzz.hibernate.ClassT” usage=”read-only”/>
Read-only一般使用这个策略,其它的hibernate3开发手册中也有详细介绍;
CacheMode去hibernate3开发手册中搜索这个关键字,可以找到一级缓存和二级缓存交互使用的问题;
1. Session 级别的缓存,它同session邦定。它的生命周期和session相同。Session消毁,它也同时消毁;管理一级缓存,一级缓存无法取消,用两个方法管理,clear(),evict()
2. 两个session 不能共享一级缓存,因它会伴随session的生命周期的创建和消毁;
3. Session缓存是实体级别的缓存,就是只有在查询对象级别的时候才使用,如果
使用HQL和SQL是查询属性级别的,是不使用一级缓存的!切记!!!!
4 . iterate 查询使用缓存,会发出查询Id的SQL和HQL语句,但不会发出查实体的,
它查询完会把相应的实体放到缓存里边,一些实体查询如果缓存里边有,就从缓存中查询,但还是会发出查询id的SQL和HQL语句。如果缓存中没有它会数据库中查询,然后将查询到的实体一个一个放到缓存中去,所以会有N+1问题出现。
5 . List()和iterate 查询区别:
使用iterate,list查询实体对象*N+1问题,在默认情况下,使用query.iterate查询,有可以能出现N+1问题
所谓的N+1是在查询的时候发出了N+1条sql语句1: 首先发出一条查询对象id列表的sqlN:
根据id列表到缓存中查询,如果缓存中不存在与之匹配的数据,那么会根据id发出相应的sql语句list和iterate的区别?
list每次都会发出sql语句,list会向缓存中放入数据,而不利用缓存中的数据
iterate:在默认情况下iterate利用缓存数据,但如果缓存中不存在数据有可以能出现N+1问题
6.Get()和load(),iterate方法都会使用一级缓存.
7.hiberate3 session 存储过程如下:
例如 object 对象
Session.save(object);
这时候不会把数据放到数据库,会先放到session缓存中去,数据库中没有相应记录,session.flush();才发SQL和HQL语句,数据库中有了相应记录,
但是数据库用select查不到,这是跟数据库事物级别有关系,(这里在说下数据库的事务隔离级别一共四种如下:)
数据库隔离级别:
隔离级别 是否存在脏读 是否存在不可重复读 是否存在幻读;
Read UnCommited(未提交读) Y Y Y
Read Commited (提交读 oraclel默认) N Y Y
Repeatable Read(不可重复读(Msql默认)) N N Y
Serializable(使用很少) N N N
Session.beginTrransaction().commit();
事物提交后可以查询到了。
Session.flush() 语句但是为什么不写呢,因为commit()会默认调用flush();
Hiberante3 二级缓存总结
1.Hibernate3的(sessionFactory)二级缓存和session级别的缓存一样都只对实体对象做缓存,不对属性级别的查询做缓存;二级缓存的生命周期和sessionFactory的生命周期是一样的,sessionFactory可以管理二级缓存;
2.sessionFactory级别的缓存,需要手动配置;所有的session可以共享sessionFactory 级别的缓存;(一般把一些不经常变化的实体对象放到sessionFactory级别的缓存中,适合放不经常变化的实体对象。)
3.Hiberante3二级缓存的配置和使用方法如下:
1. 必须把ehcache.jar包导入,然后到Hibernate3.2的etc文件下把ehcache.xml复制到工程src目录下(ehcache.xml里边的参数里边有详细英文说明);
(说明:ehcache.jar是第三方法的缓存产品,hiberante只是把它做了集成,还有好多第三方hibernate集成的缓存产品,相关说明请查阅hiberante3开发手册;ehcache是不支持分布应用的,如果有分布式需求,请换成支持分布式的二级缓存产品,hiberate3开发手册都有相头说明。配置方法都类似);
4.Hibernate3的二级缓存默认是开起的,也可以指定开起。在hibernate.cfg.xml 文件下配置如下:
*修改hibernate.cfg.xml文件,开户二级缓存;
<property name=”hibernate.cache.use_second_level_cache”>true</property>
*指定二级缓存产品的提供商;
<property name=”hibernate.cache.provider_class”>org.hibernate.cache.EhCacheProvider
</property>
要让那些实体使用二级缓存,在hibernate.cfg.xml配置文件中加入:
<!—
让这个实体用二级缓存 也可以在实体中映射文件去配置即:
<cache usage="read-only"/>
-->
<class-cache class=”com.zzz.hibernate.ClassT” usage=”read-only”/>
Read-only一般使用这个策略,其它的hibernate3开发手册中也有详细介绍;
CacheMode去hibernate3开发手册中搜索这个关键字,可以找到一级缓存和二级缓存交互使用的问题;
发表评论
-
Hibernate工作原理
2010-10-03 10:34 4093Hibernate工作原理 图 ... -
Hibernate基础
2010-09-19 09:43 1132Hibernate基础 Part 1 1. ... -
hibernate一对一映射外键关联
2010-09-17 11:24 1308hibernate一对一映射外键关联 一对一外键关联 外键关 ... -
在Hibernate中使用JDBC事务
2010-09-16 14:21 1281在Hibernate中使用JDBC事务 Hibernate ... -
hibernate事务,一级缓存,二级缓存
2010-09-16 12:34 1155hibernate主要从以下几个 ... -
Hibernate的五个核心接口介绍
2010-09-16 12:14 1002所有的Hibernate应用中都会访问Hibernate的 ... -
Hibernate缓存配置/批量处理
2010-09-16 12:01 1186Hibernate缓存配置/批量处 ... -
hibernate知识点总结
2010-09-16 08:48 1281hibernate知识点总结 1.hibernate的优缺点 ... -
项目缓存方案总结
2010-09-16 08:42 840项目缓存方案总结 一 ... -
hibernate缓存总结
2010-09-16 08:30 963hibernate缓存总结: 缓存是位于应用程序与 ... -
Hibernate中一级缓存、二级缓存及查询缓存的技术性总结
2010-09-15 22:54 866一、 一级缓存 1. 一级缓存只缓存整个对象 ... -
Hibernate中的缓存总结
2010-09-15 22:51 981Hibernate中的缓存总结 Hibernate ... -
hibernate缓存相关
2010-09-15 22:49 806hibernate缓存相关 hibernat ... -
hibernate技术面试相关
2010-09-13 20:51 1146Hibernate 中数据表映射关 ... -
hibernate 相关面试题
2010-09-13 20:50 10071.在数据库中条件查询 ... -
hibernate get()与load()的区别
2010-09-13 15:36 817hibernate get()与load()的区别 s ... -
Hibernate持久化对象的生命周期
2010-09-13 11:06 1051持久化对象的状态: ... -
Hibernate中持久化类实例的三种状态
2010-09-13 10:59 2125在Hibernate中持久化类实 ... -
全面介绍Hibernate持久化类
2010-09-13 10:55 1200Hibernate持久化类使用的是JavaBean的风格,为要 ... -
hibernate参考文档下载
2010-09-13 10:41 1170hibernate参考文档下载 这是一个非常有用改的hibe ...
相关推荐
hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档
标题“Hiberante3相关文档”表明了主要讨论的是关于Hibernate3这一持久化框架的资料集合,可能涵盖了多个方面,如查询语言、缓存机制以及数据加载策略。 描述中的“Hiberante3_HQL”提示我们将会涉及到Hibernate...
总结,Hibernate3.jar结合其API,为Java开发者提供了强大的数据库操作工具。通过理解并熟练运用这些核心概念和组件,可以显著提升项目的开发效率和代码质量。同时,掌握Hibernate的配置和查询方式,将使开发者在处理...
4. 缓存配置:Hibernate提供了一级缓存和二级缓存,一级缓存是Session级别的,而二级缓存可以通过第三方插件如Ehcache进行配置,提高数据访问性能。 5. SessionFactory初始化:通过`Configuration`类加载配置信息并...
总的来说,"Struts2+Hiberante+ajax+Mysql 三级联动"项目展示了如何利用这些技术进行高效的Web开发,特别是在处理多级交互和动态数据展示方面。通过学习和实践这样的项目,开发者可以提升对Java Web开发的理解,尤其...
hiberante-4.2.3-part3
它提供了一种对象级别的缓存,确保了对象状态的一致性。 2. `Transaction transaction`:代表了一个数据库事务,用于管理一组数据库操作,确保它们要么全部成功,要么全部失败(ACID属性)。 `HibernateDAO` 类提供...
总结来说,Hibernate 是一个强大的 ORM 解决方案,它通过面向对象的方式消除了 JDBC 的许多繁琐操作,提高了开发效率和系统的可维护性。通过理解和掌握 Hibernate 的核心概念、工作流程及关键组件,开发者可以更好地...
《疯狂Ajax讲义3》是针对Web开发领域中Ajax技术的深入学习资料,结合Spring和Hibernate两大框架,为读者提供...通过阅读《疯狂Ajax讲义3+Spring+hiberante》,你将能够掌握这一现代Web开发技术栈,提升自己的专业技能。
最新springboot2基础hiberante5完整项目,打包jar,运行jsp,包括后台与前台,拦截器,登录,后台下载就可以使用,注意不是jpa,里面有完整Dao,千万级数据项目分离的代码,为了适合老项目开发特意集成hiberante5....
Hibernate Tools是一套全新而且完整的面向Hibernate3的工具集合,它包含了Eclipse插件和Ant编译流程。Hibernate Tools是JBoss Tools的核心组件,所以他也是JBoss Developer Studio的一部分
Spring 框架是 Java 企业级应用开发中的核心组件,它提供了全面的软件基础设施,包括依赖注入(DI)、面向切面编程(AOP)以及众多的模块如数据访问、Web 应用、任务调度等。Spring MVC 是 Spring 框架的一部分,...
3. **hibernate-validator.jar**: 实现了JSR-303/JSR-349 Bean Validation标准,用于验证实体属性的值是否符合预定义的约束。 4. **jta.jar**: 为了支持分布式事务处理,Hibernate依赖于Java Transaction API(JTA...
5. **缓存机制**:Hibernate支持一级缓存(Session级别的缓存)和二级缓存(SessionFactory级别的缓存)。一级缓存默认开启,能提高性能,减少对数据库的访问。二级缓存则可以通过插件如Ehcache实现,可以跨会话共享...
开发工具:MyEclipse 6....Struts+Spring+Hiberante框架整合的简单登录系统 无需配置任何文件、只需在mysql中创建一个空数据库 如:create database test; 注:mysql数据库用户名:root 密码:root
3. 拦截器:Spring MVC的Interceptor可以拦截请求,执行预处理和后处理逻辑,如权限验证、日志记录、性能统计等。定义一个实现了HandlerInterceptor接口的类,并在Spring MVC配置中注册。 4. 日志记录:Spring MVC...
一级缓存是Session级别的,所有在Session内的操作都会缓存结果,提高读写效率。二级缓存则是SessionFactory级别的,可跨会话共享,通常需要配合第三方缓存实现,如Ehcache。Hibernate还支持查询缓存,将已执行过的...
8. **缓存机制**:Hibernate支持一级缓存(Session级别的缓存)和二级缓存(SessionFactory级别的缓存),能够提高数据访问速度并减少数据库压力。 9. **关联映射**: Hibernate支持一对一、一对多、多对一和多对多...
- **读取配置**:`Configuration` 类可以加载并解析配置文件,从而获取数据库连接的信息、缓存策略以及其他配置参数。 - **构建SessionFactory**:通过调用 `Configuration` 的 `buildSessionFactory()` 方法来创建 ...
hiberante4.2.3-part2