newxy新坐标的事务管理

本文介绍了newxy(新坐标)技术如何进行事务管理,包括本地事务支持、超时回滚机制、事务隔离等级设置,以及如何在事务中处理多个数据库操作。通过示例代码展示了如何开始、提交、回滚事务,并提供了多种应用场景。
摘要由CSDN通过智能技术生成
newxy新坐标的事务管理
newxy新坐标 技术运用之六
 作者:胡立新
一、简介
newxy(新坐标)可以同时对多个数据库进行事务管理, newxy(新坐标)的事务由类 net.newxy.dbm.Transaction来完成。
newxy(新坐标)目前只支持本地事务(在未来版本中,如果数据库连接有JTA的支持,那么在 newxy(新坐标)事务中进行的操作将是整个原子性JTA事务的一部分)。
        一个Transaction实例除有一个主线程外,还有一个专门负责 超时回滚任务的线程。主线程负责对一批需要一次性完成的单元进行操作。如果在设定或默认的时间内主线程一批操作尚未完成,负责超时回滚任务的线程会干预,回滚事务。
    newxy(新坐标)的事务管理很方便,只需在调用 IFacade接口方法前调用事务方法call( IFacade ifacade), 或方法call( IFacade ifacade,int transactionIsolation),如 tran.call(ifacade).update(dto)。
 
二、运用举例:
设有数据库有两表:
/*客户表 */
create table customers (
    id int primary key,
    name VARCHAR(255)
)
/*订单表 */
create table orders (
    id int primary key,
    customer_id int,
    date datetime
)
运用一
//新建一名叫“张五”的客户,新建 一与此用户关联的定单,订单表字段customer_id是“张五”客户的id号,
//id号由系统自动生成。
package common;
 
import net.newxy.dbm.*;
import org.apache.commons.beanutils.DynaBean;
 
public class Test{
    public static void main(String[] args) {
        TestSqlServerDao dao1=new TestSqlServerDao();
 
        DynaDto customerDto=new DynaDto();
        customerDto.set_table("customers");
        customerDto.set("name","张五 ");
 
        DynaDto ordersDto=new DynaDto();
        ordersDto.set_table("orders");
        ordersDto.set("date",net.newxy.util.DateTools.todayInTs());
 
        Transaction tran=new Transaction();
        try{
            tran.begin();
            Object result1=tran. call ( dao1).update(customerDto);
            if(result1!=null){
                // result不等于空,表明是插入操作,且 result中包含了自动生成的主关键字值。
                ordersDto.set("customer_id",((DynaBean)result1).get("id"));
            }else{
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值