6.7 执行预编译/普通批处理操作标签使用

bbossgroups项目下载地址:
https://sourceforge.net/projects/bboss/files/
相关的子项目:
bboss-taglib(标签库框架)
http://sourceforge.net/projects/bboss/files/bbossgroups-1.0/bboss-taglib.zip/download
bboss-persistent(持久层框架)
http://sourceforge.net/projects/bboss/files/bbossgroups-1.0/bboss-persistent.zip/download

相关的一组标签:batchutil,statement,batch,sqlparam

通过这组标签我们可以实现以下功能:

       普通批处理操作

       预编译批处理操作

下面详细说明上述功能。

1.1.1   普通批处理操作

<%@ page contentType="text/html; charset=GBK" language="java"%>

1.1.1.1             导入标签定义文件

 

<%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%>

<!--

    batchutil标签实现数据库批处理操作

    statement:指定批处理语句

    dbname:批处理语句执行的对应的数据库连接池名称,在poolman.xml文件中进行配置

 

   

-->

1.1.1.2             定义一组要进行批处理操作的sql语句

<%  String sql = "update sqltest set batch='1' where object_id=1";

    String sql1 = "update sqltest set batch='2' where object_id=1";

    String sql2 = "update sqltest set batch='3' where object_id=1";

    String sql3 = "update sqltest set batch='4' where object_id=1";

    String sql4 = "update sqltest set batch='5' where object_id=1";

%>

<html>

    <head>

       <title>测试在batchutil标签上直接执行数据库批处理操作</title>

    </head>

    <body>

       <table>

1.1.1.3             使用batchutil标签执行批处理操作

 

           <pg:batchutil dbname="bspf" type="common">

              <pg:statement sql="<%=sql %>" />

              <pg:statement sql="<%=sql1 %>" />

              <pg:statement sql="<%=sql2 %>" />            

              <pg:statement sql="<%=sql3 %>" />

              <pg:statement sql="<%=sql4 %>" />

           </pg:batchutil>

       </table>

    </body>

</html>

 

1.1.2   预编译批处理操作

<%@ page contentType="text/html; charset=GBK" language="java"%>

1.1.2.1             导入标签定义文件

<%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%>

<!--

    batchutil标签实现数据库预编译批处理操作

    statement:指定预编译批处理语句

    dbname:预编译批处理语句执行的对应的数据库连接池名称,在poolman.xml文件中进行配置

 

   

-->

1.1.2.2             定义一组要进行预编译批处理操作的sql语句和参数组

预编译批处理操作可以是多条不同的预编译sql语句,也可以是同一条sql语句的多个不同的绑定变量参数组,也可以是混合的情况。下面我们使用一条sql语句和5组不同的绑定参数的情况做为示例来说明各种不同的情况。

<%

    String object_id = "1";

 

    String created = "2010-03-12 12:43:54";

    String created1 = "2010-03-13 12:43:54";

    String created2 = "2010-03-14 12:43:54";

    String created3 = "2010-03-15 12:43:54";

    String created4 = "2010-03-16 12:43:54";

 

    String sql = "update sqltest set created=#[created] where object_id=#[object_id]";

%>

<html>

    <head>

       <title>测试在batchutil标签上直接执行数据库预编译批处理操作</title>

    </head>

    <body>

       <table>

1.1.2.3             使用batchutil标签执行预编译批处理操作

           <pg:batchutil dbname="bspf" type="prepared">

              <pg:statement sql="<%=sql %>" pretoken="#//[" endtoken="//]">

1.1.2.3.1   多组不同的参数用batch标签来组织

                  <pg:batch>

                     <pg:sqlparam name="object_id" value="<%=object_id %>" type="int" />

                     <pg:sqlparam name="created" value="<%=created %>" type="timestamp" />

                  </pg:batch>

              </pg:statement>

              <pg:statement sql="<%=sql %>" pretoken="#//[" endtoken="//]">

                  <pg:batch>

                     <pg:sqlparam name="object_id" value="<%=object_id %>" type="int" />

                     <pg:sqlparam name="created" value="<%=created1 %>"

                         type="timestamp" />

                  </pg:batch>

              </pg:statement>

              <pg:statement sql="<%=sql %>" pretoken="#//[" endtoken="//]">

1.1.2.3.2   如果只有一组参数,那么不需要使用batch标签

 

                  <pg:sqlparam name="object_id" value="<%=object_id %>" type="int" />

                  <pg:sqlparam name="created" value="<%=created2 %>" type="timestamp" />

 

              </pg:statement>

              <pg:statement sql="<%=sql %>" pretoken="#//[" endtoken="//]">

                  <pg:batch>

                     <pg:sqlparam name="object_id" value="<%=object_id %>" type="int" />

                     <pg:sqlparam name="created" value="<%=created3 %>"

                         type="timestamp" />

                  </pg:batch>

                  <pg:batch>

                     <pg:sqlparam name="object_id" value="<%=object_id %>" type="int" />

                     <pg:sqlparam name="created" value="<%=created4 %>"

                         type="timestamp" />

                  </pg:batch>

              </pg:statement>

           </pg:batchutil>

       </table>

    </body>

</html>

如果要引入事务的话,可以在执行sql的标签代码的外围包一个事务即可使用的方法如下:
import com.frameworkset.orm.transaction.TransactionManager;
<%

                TransactionManager tm =  new TransactionManager();
                try
                {
                        tm.begin();//开始事务
                       %>

                            放置操作数据库的标签代码
                       <%
                        tm.commit();//提交事务
                       
                }
                catch(Exception e)
                {
                        try {
                                tm.rollback();//回滚事务
                        } catch (Exception e1) {
                               
                                e1.printStackTrace();
                        }
                }
                %>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值