使用批处理功能-bboss persistent

本文详细介绍了bboss persistent库中两种批处理操作模式:普通批处理和预编译批处理。通过DBUtil和PreparedDBUtil组件,演示了如何执行插入、删除和更新的批处理,并提供了多个示例,包括事务控制和批处理优化。
摘要由CSDN通过智能技术生成

bboss项目下载列表 在sourceforge访问地址为:
https://sourceforge.net/project/showfiles.php?group_id=238653  

JDBC为了提高在应用程序中数据库操作的整体性能,提供了批处理操作的接口,这些接口又分为两种模式普通批处理和预编译批处理;同样bboss persistent提供了两种批处理操作的模式:普通批处理和预编译批处理,本文详细介绍这两种模式。

普通批处理操作-com.frameworkset.common.poolman.DBUtil
在组件DBUtil中提供了addBatch和executeBatch两个方法来实现普通批处理操作,addBatch方法添加需要批处理的sql语句,executeBatch方法执行批处理操作。
addBatch方法的定义如下:
public void addBatch(String sql) throws SQLException
方法的功能为,添加批处理的sql语句,这些语句可以为insert,delete,update语句

executeBatch定义为:
public Object[] executeBatch() throws SQLException --在默认的数据库连接池上执行批处理操作(默认的数据库连接池是指poolman.xml文件中配置的第一个连接池),所有的批处理操作在一个事务中执行,只有所有的操作都成功的情况下,事务才提交,否则事务回滚。

public Object[] executeBatch(boolean needtransaction) throws SQLException --在默认的数据库连接池上执行批处理操作(默认的数据库连接池是指poolman.xml文件中配置的第一个连接池),根据needtransaction参数的值来决定是否启用事务,false的情况下,没有事务,批处理的语句执行一句就提交一句,碰到第一条失败的语句时终止后续的批处理操作;true的情况下,所有的批处理操作在一个事务中执行,只有所有的操作都成功的情况下,事务才提交,否则事务回滚。

public Object[] executeBatch(Connection con) throws SQLException --在con连接上执行所有批处理操作,如果con是一个事务连接,则所有的批处理sql语句将在一个事务环境中执行,否则在没有事务的环境下执行即批处理的语句执行一句就提交一句,碰到第一条失败的语句时终止后续的批处理操作。

public Object[] executeBatch(String dbname) throws SQLException --在dbname对应的数据库连接池上执行批处理操作(指定的数据库连接池是指poolman.xml文件中配置逻辑名称为dbname的连接池),所有的批处理操作在一个事务中执行,只有所有的操作都成功的情况下,事务才提交,否则事务回滚。

public Object[] executeBatch(String dbname,boolean needtransaction) throws SQLException --在dbname对应的数据库连接池上执行批处理操作(指定的数据库连接池是指poolman.xml文件中配置逻辑名称为dbname的连接池),根据needtransaction参数的值来决定是否启用事务,false的情况下,没有事务,批处理的语句执行一句就提交一句,碰到第一条失败的语句时终止后续的批处理操作;true的情况下,所有的批处理操作在一个事务中执行,只有所有的操作都成功的情况下,事务才提交,否则事务回滚。

下面举一个简单的例子:
import com.frameworkset.common.poolman.DBUtil;
。。。。

                DBUtil dbUtil = new DBUtil();
                try {
                       
                        dbUtil.addBatch("truncate table td_reg_bank_acc_bak");
                        dbUtil.addBatch("insert into td_reg_bank_acc_bak (create_acc_time,starttime,endtime) values(" + dbUtil.getDBDate(new Date())                                                                                                                                                                                                                 
                                                                                                                                                                                                                  + "," + dbUtil.getDBDate(new Date())
                                                                                                                                                                                                                  + "," + dbUtil.getDBDate(new Date()) + ")");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值