import java.sql.Connection; import java.sql.Date; import java.sql.SQLException; import java.util.List; import com.frameworkset.common.poolman.DBUtil; import com.frameworkset.common.poolman.JDBCTemplate; import com.frameworkset.common.poolman.JDBCValueTemplate; import com.frameworkset.common.poolman.PreparedDBUtil; import com.frameworkset.common.poolman.SQLExecutor; import com.frameworkset.common.poolman.TemplateDBUtil; import com.frameworkset.sqlexecutor.ListBean; public class TestValueTemplateDBUtil { public static void testrollbackWithConnection() throws Throwable { Object ret = TemplateDBUtil.executeTemplate( new JDBCValueTemplate(){ public Object execute() throws Exception { DBUtil dbUtil = new DBUtil(); Connection con = PreparedDBUtil.getConection(); 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.setInt(1, 1000 + i); db.setDate(1, new java.util.Date()); db.setDate(2, new java.util.Date()); db.setDate(3, new java.util.Date()); // if(true && i < 50) // { // throw new Exception("e"); // } db.executePrepared(con); } } catch(SQLException e) { con.rollback(); throw e; } catch(Exception e) { con.rollback(); throw e; } finally { db.resetPrepare(); con.close(); } dbUtil.executeInsert("insert into table values()"); return "go"; } } ); System.out.println("testrollbackWithConnection return value:" + ret); } /** * * @param beans * @return * @throws Throwable */ public void stringarraytoList(final List<ListBean> beans) throws Throwable { List<ListBean> ret = TemplateDBUtil.executeTemplate( new JDBCValueTemplate<List<ListBean>>(){ public List<ListBean> execute() throws Exception { String sql = "INSERT INTO LISTBEAN (" + "ID," + "FIELDNAME," + "FIELDLABLE," + "FIELDTYPE," + "SORTORDER," + " ISPRIMARYKEY," + "REQUIRED," + "FIELDLENGTH," + "ISVALIDATED" + ")" + "VALUES" + "(#[id],#[fieldName],#[fieldLable],#[fieldType],#[sortorder]" + ",#[isprimaryKey],#[required],#[fieldLength],#[isvalidated])"; SQLExecutor.delete("delete from LISTBEAN"); SQLExecutor.insertBeans(sql, beans); return beans; } } ); } public static void testrollback() throws Throwable { Object ret = TemplateDBUtil.executeTemplate( new JDBCValueTemplate(){ 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.setInt(1, 1000 + i); db.setDate(1, new java.util.Date()); db.setDate(2, new java.util.Date()); db.setDate(3, new java.util.Date()); // if(true && i < 50) // { // throw new Exception("e"); // } db.executePrepared(); } } finally { } dbUtil.executeInsert("insert into table values()"); return "go"; } } ); System.out.println("testrollback return value:" + ret); } public static void testcommit() throws Throwable { Object ret = TemplateDBUtil.executeTemplate( new JDBCValueTemplate(){ 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.setInt(1, 1000 + i); db.setDate(1, new java.util.Date()); db.setDate(2, new java.util.Date()); db.setDate(3, new java.util.Date()); // if(true && i < 50) // { // throw new Exception("e"); // } db.executePrepared(); } } finally { } dbUtil.executeInsert("insert into td_reg_bank_acc_bak (clob1,clob2) values('aa','bb')"); return "go"; } } ); System.out.println("testcommit return value:" + ret); } public static void testcommitWithConnection() throws Throwable { Object ret = TemplateDBUtil.executeTemplate( new JDBCValueTemplate(){ 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.setInt(1, 1000 + i); db.setDate(1, new java.util.Date()); db.setDate(2, new java.util.Date()); db.setDate(3, new java.util.Date()); // if(true && i < 50) // { // throw new Exception("e"); // } db.executePrepared(dbUtil.getConection()); } } finally { } dbUtil.executeInsert("insert into td_reg_bank_acc_bak (clob1,clob2) values('conaa','conbb')"); return "go"; } } ); System.out.println("testcommitWithConnection return value:" + ret); } public static void main(String[] args) { try { TestValueTemplateDBUtil.testrollback(); } catch(Throwable e) { e.printStackTrace(); } try { TestValueTemplateDBUtil.testrollbackWithConnection(); } catch (Throwable e) { // TODO Auto-generated catch block e.printStackTrace(); } try { TestValueTemplateDBUtil.testcommit(); } catch (Throwable e) { // TODO Auto-generated catch block e.printStackTrace(); } try { TestValueTemplateDBUtil.testcommitWithConnection(); } catch (Throwable e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(DBUtil.getNumActive()); System.out.println(DBUtil.getNumIdle()); System.out.println(DBUtil.getMaxNumActive()); } }