java隐式事务代码 java隐式初始化( 二 )


对象的工厂 。XAConnection s 是参与 JTA 事务的 JDBC 连接 。
您将需要用应用服务器的管理工具设置 XADataSource。从应用服务器和 JDBC 驱动程序的文档中可以了解到相关的指导 。
J2EE 应用程序用 JNDI 查询数据源 。一旦应用程序找到了数据源对象,它就调用 javax.sql.DataSource.getConnection() 以获得到数据库的连接 。
XA 连接与非 XA 连接不同 。一定要记住 XA 连接参与了 JTA 事务 。这意味着 XA 连接不支持 JDBC
的自动提交功能 。同时,应用程序一定不要对 XA 连接调用 java.sql.Connection.commit() 或者
java.sql.Connection.rollback()。相反,应用程序应该使用 UserTransaction.begin()、
UserTransaction.commit() 和 serTransaction.rollback()。
3、容器事务
容器事务主要是J2EE应用服务器提供的,容器事务大多是基于JTA完成,这是一个基于JNDI的,相当复杂的API实现 。相对编码实现JTA事
务管理,java隐式事务代码我们可以通过EJB容器提供的容器事务管理机制(CMT)完成同一个功能 , 这项功能由J2EE应用服务器提供 。这使得我们可以简单的指定将哪个方
法加入事务,一旦指定 , 容器将负责事务管理任务 。这是我们土建的解决方式,因为通过这种方式我们可以将事务代码排除在逻辑编码之外,同时将所有困难交给
J2EE容器去解决 。使用EJB CMT的另外一个好处就是程序员无需关心JTA API的编码,不过,理论上我们必须使用EJB 。
四、三种事务差异
1、JDBC事务控制的局限性在一个数据库连接内,但是其使用简单 。
2、JTA事务的功能强大,事务可以跨越多个数据库或多个DAO , 使用也比较复杂 。
3、容器事务 , 主要指的是J2EE应用服务器提供的事务管理,局限于EJB应用使用 。
五、总结
事务控制是构建J2EE应用不可缺少的一部分 , 合理选择应用何种事务对整个应用系统来说至关重要 。一般说来 , 在单个JDBC
连接连接的情况下可以选择JDBC事务,在跨多个连接或者数据库情况下,需要选择使用JTA事务,如果用到了EJB,则可以考虑使用EJB容器事务 。
如果满意请及时采纳,谢谢~
java中什么是显示调用和隐式调用?当我们在调用类的构造器来创建对象的时候,首先要调用的是父类的非静态的初始化块,接着会调用构造器,但是父类的构造器可能有多个,也就是重载 , 当调用完父类的非静态初始化块之后 , 将会调用的是当前类的非静态初始化块然后是自身的构造函数,调用父类的构造函数就有两种调用的方式,一个是显示调用,另一个是隐式调用,下面通过代码来说一下这两者间的区别 。
class Person {
public Person (){}
public Person (String name){
system.out.println(name);
}
}
class Student extends Person {
public Student{
super ("hello world");
}
public Student{
this();
}
public Student{
}
}
了解了这段代码的输出情况,你也就是了解了显示调用和隐式调用,这里出现的关键字super,super调用用于显示调用父类的构造器,this则用来显示调用本类中的另一个重载的构造器,这两种构造器只能在构造器中使用 , 而且出现在构造函数的第一行代码中,因此构造器中两种关键字只能用其中一个 , 而且每个只能调用一次 。
如何用java开启mysql事务 , 要求详细如何用java开启mysql事务 , 要求详细
看你是什么事务 , jdbc事务,还是分布式事务,还是容器事务
1,编程式事务管理(jdbc的事务是绑定在connection上的)

推荐阅读