- 浏览: 46836 次
- 性别:
- 来自: 深圳
最新评论
文章列表
还有一点需要说明的是,AService的方法在执行之前创建的transactionstatus确实是通过这个方法创建的,但是,BService的方法在执行之前创建transactionstatus的方法就与这个不一样了,下面会有详解。
回顾了事务开始时所调用的方法之后,是不是觉得现在对spring如何处理事务越来越清晰了呢。由于这么几个方法的调用,每个方法入栈之前它的事务状态就已经被设置好了。这个事务状态就是为了在方法出栈时被调用而准备的。
让我们再次回到BService中的方法出栈的那个时间段,看看spring都做了些什么,我们知道,后入栈的肯定是先出栈,BService中的方法后入栈, ...
- 2009-10-26 14:55
- 浏览 1049
- 评论(0)
上次说到spring声明式事务管理的事务开始部分,按流程来讲,下面应该提交事务了, spring的声明式事务管理其实是比较复杂的,事实上这种复杂性正是由于事务本身的复杂性导致的,如果能用两三句话就把这部分内容说清楚是不 ...
- 2009-10-26 14:55
- 浏览 789
- 评论(0)
接着我们重点再回头看一下createTransactionIfNecessary方法里的这一句:
txInfo.newTransactionStatus(this.transactionManager.getTransaction(txAttr));
接着我们就应该去看看这个getTransaction方法了,假设我们是使用hibernate3,其他类似。看getTransaction之前我们来看一下这两类和一个接口:
接口PlatformTransactionManager
抽象类public abstract class AbstractPlatformTransactionMa ...
- 2009-10-26 14:52
- 浏览 786
- 评论(0)
/***作者:张荣华(ahuaxuan) *2007-06-16 *转载请注明出处及作者*/
出自:http://www.iteye.com/topic/87426
简介:事务是所有企业应用系统的核心,之前人们使用ejb的时候,容器事务管理(CMT),是slsb最令人称道的地方,据说很多人使用ejb,使 ...
- 2009-10-26 14:43
- 浏览 802
- 评论(0)
我在hibernate工厂类中看到了关于ThreadLocal的使用,threadLocal显然是类变量,全局的 是否这样表示不同的线程共享了threadLocal,事实上没错,多个线程取得到是同一样threadLocal 但是在不同的线程中使用threadLocal得到的变量不一样。那么什么是同一线程呢,我们可以这样理解 线程是主线程创建分支线程调用类执行完再返回主线程,那么这么这分支线程上所执行的所有对象的 方法实际上是同一个线程,除非中间使用多线程方法去创建其它分支线程。因此从创建分支线程 开始的那个方法一直执行到返回都是在同一线程中,其中引用的类,对象,方法都属性同一线程。 显示当前线程 ...
- 2009-10-25 17:37
- 浏览 814
- 评论(0)
OGNL是Object Graph Navigation Language的简称,详细相关的信息可以参考:http://www.ognl.org。这里我们只涉及Struts2框架中对OGNL的基本支持。
Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势:
支持对象方法调用,如xxx.doSomeSpecial();
支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 | 值名],例如:@java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstan ...
- 2009-10-24 11:56
- 浏览 751
- 评论(0)
1.悲观锁
它指的是对数据被外界修改持保守态度。假定任何时刻存取数据时,都可能有另一个客户也正在存取同一笔数据,为了保持数据被操作的一致性,于是对数据采取了数据库层次的锁定状态,依靠数据库提供的锁机制来 ...
- 2009-10-20 15:37
- 浏览 995
- 评论(0)
数据库事务必须具备ACID的特征(Atomic原子性,Consistency一致性,Isolation隔离性,Durability持久性)数据库操作过程中可能出现的3种不确定情况:
1. 脏读取(Dirty Reads):一个事务读取了另一个并行事务未提交的数据。
2. 不可重复读取(Non-repeatable Reads):一个事务再次读取之前的数据时,得到的数据不一致,被另一个已提交的事务修改。
3. 虚读(Phantom Reads):一个事务重新执行一个查询,返回的记录中包含了因为其他最近提交的事务而产生的新记录。
标准SQL规范中,为了避免上面3 ...
- 2009-10-20 11:43
- 浏览 4021
- 评论(0)
package com.syscatech.util.db.hibernate;import java.io.PrintWriter;
import java.io.StringWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.Properties;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.Bas ...
- 2009-10-19 23:51
- 浏览 1933
- 评论(0)
Hibernate
支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP。在配置连接池时需要注意的有三点:
一、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在缺陷。如果你因为某种原因需要在Hibernate3中使用DBCP,建议采用JNDI方式。
二、默认情况下(即没有配置连接池的情况下),Hibernate会采用内建的连接池。但这个连接池性能不佳,且存在诸多BUG(笔者就曾在Mysql环境下被八小时连接悬空问题困过),因此官方也只是建议仅在开发环境下使用。
三、Hibe ...
- 2009-10-19 20:23
- 浏览 1999
- 评论(0)
1、Hibernate JDBC属性
属性名
用途
hibernate.connection.driver_class
jdbc驱动类
hibernate.connection.url
jdbc URL
hibernate.connection.username
数据库用户
hibernate.connection.password
数据库用户密码
hibernate.connection.pool_size
连接池容量上限数目
注:使用C3P0的properties样例代码:
hibernate.c ...
- 2009-10-19 19:31
- 浏览 798
- 评论(0)
在Spring的开发中,我们在很多情况下会使用占位符引用属性文件的属性值来简化我们的系统及使我们的系统具有更高的灵活性和通用性。这种配置方式有两个明显的好处:
?- 减少维护的工作量:资源的配置信息可以多应用共 ...
- 2009-10-19 12:40
- 浏览 1090
- 评论(0)
Join操作基本分为3大类:外连接(细分为:左连接、右连接、全连接)、自然连接、内连接Join操作的共性:第一步均为将所有参与操作的表进行了一个笛卡儿积,然后才依据各连接条件进行记录的筛选 SQL> select * from employees;LAST_NAME DEPARTMENT_ID SALARY------------------------------ ------------------------ ------------Getz ...
- 2009-10-19 12:17
- 浏览 641
- 评论(0)
OS验证指的是Oracle数据库不再自行检查请求用户的合法性,而是将此过程委托给用户所在的操作系统,由操作系统代理完成用户合法性的检查工作。对于采用此种认证机制的用户在连接数据库时无需输入用户名和密码即可登录。 Windows平台下的用户OS认证配置基本上分成两大类型:一、配置以sysdba角色登陆的用户[1]确保SQLNET.AUTHENTICATION_SERVICES=(NTS)附加:此参数位于$ORACLE_HOME/network/admin下的sqlnet.ora文件中,若允许远程用户以OS认证形式登录数据库(即由远程用户所使用的操作系统负责验证),则须将SPFILE& ...
- 2009-10-19 12:16
- 浏览 892
- 评论(0)
hibernate的保存 hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别: 一、预备知识: 在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient、persistent、detached 下边是常见的翻 ...
- 2009-10-19 12:15
- 浏览 645
- 评论(0)