bboss預編譯批處理功能能夠非常友善地完成對資料的批量插入、批量删除、批量更新操作。所謂批量操作就是一次向資料庫中執行多條記錄操作,bboss批量處理操作全部采用預編譯方式執行,執行效率非常不錯。本文詳細介紹bboss持久層架構中批量處理操作的api及使用執行個體。切入正題。
1.相關元件
com.frameworkset.sqlexecutor.SQLExecutor-所有的api都是靜态方法,直接操作原始sql語句,所有的方法都可以指定操作的資料源,也可以不指定(這樣會在poolman.xml檔案中的第一個資料源上執行對應的sql)
com.frameworkset.sqlexecutor.ConfigSQLExecutor--所有的api都是執行個體方法,一個ConfigSQLExecutor對象執行個體必須以一個sql配置檔案路徑作為參數的構造函數來執行個體化;執行個體的所有方法不能直接使用sql語句,隻能指定一個配置sql的名稱,這個名稱對應sql配置檔案中的一條sql語句;ConfigSQLExecutor中所有的方法都可以指定操作的資料源,也可以不指定(這樣會在poolman.xml檔案中的第一個資料源上執行對應的sql)。
2.批量插入操作
api
SQLExecutor.insertBeans(sql,beans);
SQLExecutor.insertBeans(dbname,sql,beans);
ConfigSQLExecutor.insertBeans(sqlname,beans);
ConfigSQLExecutor.insertBeans(dbname,sqlname,beans);
使用執行個體-以SQLExecutor為例
public void batchadd(List<TestBean> newdatas)
{
//sql中的變量對應TestBean中的屬性名稱,必須要有相應的get/set方法,架構會自動将其轉換為預編譯占位符的sql語句
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.insertBeans(sql,newdatas);//不帶資料源的方法
SQLExecutor.insertBeans("testds",//資料源
sql,//資料庫sql語句
newdatas//批量插入的對象記錄集
);
}
3.批量更新操作
SQLExecutor.updateBeans(sql,beans);
SQLExecutor.updateBeans(dbname,sql,beans);
ConfigSQLExecutor.updateBeans(sqlname,beans);
ConfigSQLExecutor.updateBeans(dbname,sqlname,beans);
public void batchadd(List<TestBean> updatedatas)
{
sql ="update LISTBEAN set FIELDNAME=#[fieldName] where ID=#[id]";
//SQLExecutor.updateBeans(sql,updatedatas);
SQLExecutor.updateBeans("testds",sql,updatedatas);
}
4.批量删除操作
SQLExecutor.deleteBeans(sql,beans);
SQLExecutor.deleteBeans(dbname,sql,beans);
ConfigSQLExecutor.deleteBeans(sqlname,beans);
ConfigSQLExecutor.deleteBeans(dsname,sqlname,beans);
public void batchadd(List<TestBean> updatedatas)
{
sql ="delete from LISTBEAN where ID=#[id]";
//SQLExecutor.deleteBeans(sql,beans);
SQLExecutor.deleteBeans("mysql",sql,beans);
}
到此bboss中三種典型的批量處理操作的api及使用執行個體就介紹完了,至于poolman.xml中配置資料源請參考文章:
http://yin-bp.iteye.com/blog/352599ConfigSQLExecutor元件的更詳細的使用執行個體請參考以下文章:
http://yin-bp.iteye.com/blog/1112997SQLExecutor元件的更詳細的使用執行個體請參考以下文章:
http://yin-bp.iteye.com/blog/1035991這裡說明的都是單條sql語句的預編譯批處理操作,還可以參考以下多條sql語句同時進行預編譯批處理的執行個體:
https://github.com/bbossgroups/bbossgroups-3.5/blob/master/bboss-persistent/test/com/frameworkset/common/TestPreparedBatch.java