天天看點

bboss persistent事務管理介紹 (五)

l       帶傳回值的模闆方法使用執行個體

Object ret = TemplateDBUtil.executeTemplate(

              new JDBCValueTemplate(){

                  /**

                   * 整個execute()方法的執行都會被包含在一個資料庫事務中

                   * 當有異常抛出時TemplateDBUtil.executeTemplate()方法就會自動復原整個資料庫事務

                   * 當整個方法正常結束後,事務就會自動被送出,并将傳回值傳回給調用程式。

                   * 通過模闆工具提供的便利,開發人員不需要編寫自己的事務代碼就可以順利地實作資料庫的事務性操作

                   */

                  public Object execute() throws Exception {

                     DBUtil dbUtil = new DBUtil();                                         PreparedDBUtil db = null;

                     try {

                         for (int i = 0; i < 1; i++) {

                            db = new PreparedDBUtil();                          

                            db.preparedInsert("insert into " +

                                   "td_reg_bank_acc_bak " +                                 "(create_acc_time,starttime,endtime) " +

                                   "values(?,?,?)");

                            Date today = new Date(

                                   new java.util.Date().getTime());

                            db.setDate(1, new java.util.Date());

                            db.setDate(2, new java.util.Date());

                            db.setDate(3, new java.util.Date());

                            db.executePrepared();

                         }

                     }

                     catch(Exception e)

                     {

                         throw e;//抛出異常,将導緻整個資料庫事務復原

                     }

                     try

                         dbUtil.executeInsert("insert into " +

                                "td_reg_bank_acc_bak " +

                                "(clob1,clob2) values('aa','bb')");

                     }                    

                     //方法順利執行完成,事務自動送出,并傳回方法的傳回值

                     return "go";

                  }            

              }

           );