Spring/Hibernate
大墨
素华偏可憙,的的半临池,疑为霜裹叶,复类雪封枝,日斜光隐见,风还影合离.
展开
-
hibernate 三种查询方式
(一)HQLHQL:Hibernate Qusery Language,如果你已经熟悉它,就会发现它跟SQL非常相像。不过你不要被表面的假象迷惑,HQL是面向对象的。如果你对JAVA和SQL语句有一定了解的话,那么HQL对你简直易如反掌,你完全可以利用在公车上的时间掌握它。以下从几个方面进行慢慢深入:1、大小写敏感大家知道SQL-92 Query是对大小写不敏感的,但是在HQL(前面提到它是OO的转载 2008-09-11 19:13:00 · 490 阅读 · 0 评论 -
Spring Bean Scope 有状态的Bean 无状态的Bean
在Spring的Bean配置中,存在这样两种情况:[xhtml] view plaincopybean id="testManager" class="com.sw.TestManagerImpl" scope="singleton" /> bean id="testManager" class="com.sw.TestMan转载 2012-06-14 09:12:30 · 458 阅读 · 0 评论 -
spring异常类
Spring数据访问的根异常是DataAccessException,所有的Spring的数据访问异常都继承DataAccessException。DataAccessException的nestedRuntimeException子类中,已经将所有的异常栈都进行了记录。CleanupFailureDataAccessException:清除失败异常DataAccessResourceFa转载 2012-06-14 21:39:56 · 1110 阅读 · 0 评论 -
Hibernate的锁机制
Hibernate的锁机制Table of Contents数据库中乐观锁与悲观锁的概念锁( locking )悲观锁( Pessimistic Locking )乐观锁( Optimistic Locking )数据库中乐观锁与悲观锁的概念锁( locking )业务逻辑的实现过程中,往往需要保证数据访问的排他性。如转载 2012-06-24 20:57:53 · 655 阅读 · 0 评论 -
hibernate 乐观锁与悲观锁使用方法
Hibernate支持两种锁机制: 即通常所说的“悲观锁(Pessimistic Locking)”和 “乐观锁(OptimisticLocking)”。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。Hibernate的加锁模式有: Ø LockMode转载 2012-06-24 18:20:55 · 773 阅读 · 0 评论 -
Spring配置数据源的三种方式
1,使用org.springframework.jdbc.datasource.DriverManagerDataSource说明:DriverManagerDataSource建立连接是只要有连接就新建一个connection,根本没有连接池的作用。 ${jdbc.driverClassName} ${jdbc.转载 2012-06-23 22:18:03 · 506 阅读 · 0 评论 -
openSession 与 getCurrentSession, openStatelessSession区别
1 getCurrentSession创建的session会和绑定到当前线程,而openSession不会。2 getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭这里getCurrentSession本地事务(本地事务:jdbc)时 要在配置文件里进行如下设置 * 如果使用的是本地事务(jdbc事务)原创 2012-06-24 17:57:28 · 3447 阅读 · 0 评论 -
Hibernate中的8种标识符生成器
1.assigned标识符生成器 assigned标识符生成器指定由应用程序生成并维护持久化对象的标识符。在这种情况下,标识符生成器使用应用程序分配给对象的标识符值。一般情况下,assigned生成器使用一个自然键(包含对象的业务属性)做主键。 assigned标识符生成器使用应用程序生成的标识符属性值,不涉及底层数据库实现细节,适合于各种数据库;持久化类的标识符可以采用任何Java支原创 2012-06-24 14:20:51 · 1426 阅读 · 0 评论 -
Spring Annotation Facility
JDK 在1.5之后加入了Annotation功能,同时Spring到2.5版本后,基本上开发人员也可以不再使用XML文件来配置bean了,都是使用Annotation来声明一个bean,因此,本节对Spring的Annotation做一个简单总结。 @Autowired(spring) @Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配原创 2011-10-18 18:23:02 · 735 阅读 · 0 评论 -
CGLib 动态代理
JDK自从1.3版本开始,就引入了动态代理,JDK的动态代理用起来非常简单,但是它有一个限制,就是使用动态代理的对象必须实现一个或多个接口。如果想代理没有实现接口的类可以使用CGLIB包。 CGLIB是一个强大的高性能的代码生成包。它被许多AOP的框架(例如Spring AOP)使用,为他们提供方法的interception(拦截)。Hibernate也使用CGLIB来代理单端s原创 2011-10-22 16:33:04 · 726 阅读 · 0 评论 -
JDK动态代理实现原理
之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。 废话不多说了,先来看一下JDK的动态是怎么用的。 Java代码 package dynamic.proxy; import java.lang转载 2014-04-14 13:13:18 · 815 阅读 · 0 评论 -
Hibernate中N+1次select问题
在Session的缓存中存放的是相互关联的对象图。默认情况下,当Hibernate从数据库中加载Customer对象时,会同时加载所有关联的Order对象。以Customer和Order类为例,假定ORDERS表的CUSTOMER_ID外键允许为null,图1列出了CUSTOMERS表和ORDERS表中的记录。以下Session的find()方法用于到数据库中检索所有的Custom转载 2012-06-17 12:53:15 · 512 阅读 · 0 评论 -
全面分析spring编程式事务与声明式事务管理
Spring 事务属性分析事务管理对于企业应用而言至关重要。它保证了用户的每一次操作都是可靠的,即便出现了异常的访问情况,也不至于破坏后台数据的完整性。就像银行的自 助取款机,通常都能正常为客户服务,但是也难免遇到操作过程中机器突然出故障的情况,此时,事务就必须确保出故障前对账户的操作不生效,就像用户刚才完全 没有使用过取款机一样,以保证用户和银行的利益都不受损失。在 Spring 中,事转载 2012-06-13 07:28:37 · 843 阅读 · 0 评论 -
Spring Scope Notes
在Spring Framework 中bean都有自己的作用域(scope), scope的配置方法如下:在spring2.0之前bean只有2种作用域即:singleton(单例)、non-singleton(也称prototype),Spring2.0以后,增加了session、request、global session三种专用于Web应用程序上下文的Bean。因此,默认情况下Spr原创 2011-10-24 21:46:44 · 654 阅读 · 0 评论 -
hibernate get() load() 区别
======================引用=================================================== 设 cat 表中没有 ID为1111的数据. session.get(cat.class, "1111"); //得到null对象 session.load(cat.class,"1111"); //得到的不是空对象,原创 2008-09-12 18:36:00 · 1048 阅读 · 0 评论 -
hibernate中update()和saveOrUpdate()
【前言】简单的来说,update()和saveOrUpdate()是用来对跨Session的PO进行状态管理的。 在Hibernate中,最核心的概念就是对PO的状态管理。一个PO有三种状态: 1、未被持久化的VO 此时就是一个内存对象VO,由JVM管理生命周期 2、已被持久化的PO,并且在Session生命周期内 此时映射数据库数据,由数据库管理生命周期原创 2008-09-11 18:40:00 · 736 阅读 · 0 评论 -
Hibernate中ehcache二级缓存配置方法
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE原创 2008-10-20 13:51:00 · 991 阅读 · 0 评论 -
XDoclet 与Hibernate 映射
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE原创 2008-10-15 15:19:00 · 1193 阅读 · 0 评论 -
Hibernate乐观锁的实现原理剖析与使用乐观锁时的注意点
Hibernate支持乐观锁。当多个事务同时对数据库表中的同一条数据操作时,如果没有加锁机制的话,就会产生脏数据(duty data)。Hibernate有2种机制可以解决这个问题:乐观锁和悲观锁。这里我们只讨论乐观锁。Hibernate乐观锁,能自动检测多个事务对同一条数据进行的操作,并根据先胜原则,提交第一个事务,其他的事务提交时则抛出org.hibernate.StaleObject转载 2008-10-20 13:54:00 · 6022 阅读 · 1 评论 -
Hibernate DBpool Configure
在hibernate3.0中,已经不再支持dbcp了,hibernate的作者在hibernate.org中,明确指出在实践中发现dbcp有BUG,在某些种情会产生很多空连接不能释放,所以抛弃了对dbcp的支持。至于c3p0,有评论说它的算法不是最优的,c3p0占用资源比较大,效率也不高。proxool不少行家推荐使用,而且暂时来说,是负面评价是最少的一个。以连接MySQl为例介绍原创 2008-09-11 19:48:00 · 531 阅读 · 0 评论 -
Spring中的四种声明式事务的配置
Spring中的四种声明式事务的配置Spring容器中有两种思想很重要,也就是我们常用的Ioc和Aop,如果理解了这两种思想,对于我们学习设计模式和编程有很大的帮助,美国四人帮(GOF)写的设计模式中,有很多都用到了Ioc的思想。简单的说就是依赖注入的思想。常见的一种情况:如果一原创 2011-09-08 10:42:18 · 453 阅读 · 0 评论 -
Hibernate的缓存机制
<!--@font-face {font-family:宋体}@font-face {font-family:"Cambria Math"}@font-face {font-family:Calibri}@font-face {font-family:"/@宋体"}p.MsoNormal, li.MsoNormal, div.MsoNormal转载 2008-10-20 13:09:00 · 597 阅读 · 0 评论 -
JDBC 访问各种数据库 URL 查询手册
我们在写JAVA程序访问数据库或者配置连接池时,经常会用到JDBC访问数据库 的 URL 语法,现将一些常用的驱动和语法总结如下:(注意和相应的驱动程序搭配,不同的驱动程序要求的 URL 语法不尽相同)A. Microsoft SQL Server url=jdbc:microsoft:sqlserver://[Server Name]:[PORT] driver=com.原创 2008-09-26 17:26:00 · 1616 阅读 · 0 评论 -
Hibernate-Criteria/DetachedCriteria 详解
Hibernate 设计了CriteriaSpecification 作为Criteria 的父接口,下面提供了Criteria和DetachedCriteria 。Criteria 和DetachedCriteria 的主要区别在于创建的形式不一样,Criteria 是在线的,转载 2011-09-23 11:10:15 · 968 阅读 · 0 评论 -
SpringMVC中使用Interceptor拦截器
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间。 一、定义Interceptor实现类 SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的。在转载 2016-04-19 15:03:17 · 771 阅读 · 1 评论