bboss永続層ページングインタフェースの使用例


bboss永続層ページングインタフェースは特徴的で、3種類のStyleのページングインタフェースを提供しています.
最初のStyleはsql文に基づいて直接ページを分けます.このスタイルはbbos 3.6.0と以前のバージョンでずっと使われていたインタフェースです.
2番目のStyleは、bbos 3.6.1以降のバージョンで提供されるインタフェースであるsql文と外部から送信された合計レコード数に基づいてページングされます.
3つ目のStyleは、bboss 3.6.1以降で提供されるインタフェースであるsql文と外部から送信された合計レコード数sql文に基づいてページングされます.
クエリー・パラメータの入力方法に基づいて、以下に3つのStyleを例に挙げて説明します.
1.準備作業-3種類のStyleを表示するためのsql文プロファイルを作成
QueryMaterialListはページングsql
queryCountMaterialListは合計レコード数sqlを調べる
<?xml version="1.0" encoding="UTF-8"?>
<properties>
	<property name="queryMaterialList">
	<![CDATA[
		select * from td_app_bom where id=#[id]
		]]>
	</property>
	
	<property name="queryCountMaterialList">
	<![CDATA[
		select count(1) from td_app_bom where id=#[id]
		]]>
	</property>
	
	
	<property name="queryMaterialListbindParam">
	<![CDATA[
		select * from td_app_bom where id=?
		]]>
	</property>
	
	<property name="queryCountMaterialListbindParam">
	<![CDATA[
		select count(1) from td_app_bom where id=?
		]]>
	</property>
</properties>

2.ページング・クエリー・メソッドのサンプル・コード
public class ApplyService {

	private com.frameworkset.common.poolman.ConfigSQLExecutor executor = new ConfigSQLExecutor("com/frameworkset/sqlexecutor/purchaseApply.xml");
	
	/******************************* bean          *******************************/
	public ListInfo queryMaterailListInfoFirstStyleBean(int offset, int pagesize ,PurchaseApplyCondition condition) throws Exception {
		
		//      ,queryMaterialList        ,
		//  sql                   ,        ,      
		//condition         
		return executor.queryListInfoBean(HashMap.class, "queryMaterialList", offset, pagesize,condition);
	}
	
	public ListInfo queryMaterailListInfoSecondStyleBean(int offset, int pagesize ,PurchaseApplyCondition condition) throws Exception {
		//          totalSize   ,queryCountMaterialList               
		//condition         
		long totalSize = executor.queryObjectBean(long.class, "queryCountMaterialList", condition);
		//        ,queryMaterialList        ,  totalsize           ,
		//                     ,        ,        ,           ,             sql
		//condition         
		return executor.queryListInfoBean(HashMap.class, "queryMaterialList", offset, pagesize,totalSize ,condition);
	}
	
	
	public ListInfo queryMaterailListInfoThirdStyleBean(int offset, int pagesize ,PurchaseApplyCondition condition) throws Exception {
		//  sql            sql      ,        ,    ,             sql
		ListInfo list = executor.queryListInfoBeanWithDBName(HashMap.class, "bspf","queryMaterialList", 0, 10,"queryCountMaterialList" ,condition);
		return list;
	}
	/******************************* bean          *******************************/
	
	/*******************************                 *******************************/
	public ListInfo queryMaterailListInfoFirstStyle(int offset, int pagesize ,String id) throws Exception {
		
		//      ,queryMaterialList        ,
		//  sql                   ,        ,      
		//id         
		return executor.queryListInfo(HashMap.class, "queryMaterialListbindParam", offset, pagesize,id);
	}
	
	public ListInfo queryMaterailListInfoSecondStyle(int offset, int pagesize ,String id) throws Exception {
		//          totalSize   ,queryCountMaterialList               
		//id         
		long totalSize = executor.queryObject(long.class, "queryCountMaterialListbindParam",id);
		//        ,queryMaterialList        ,  totalsize           ,
		//                     ,        ,        ,           ,             sql
		//id         
		return executor.queryListInfoWithTotalsize(HashMap.class, "queryMaterialListbindParam", offset, pagesize,totalSize,id );
	}
	
	
	public ListInfo queryMaterailListInfoThirdStyle(int offset, int pagesize ,String id) throws Exception {
		//  sql            sql      ,        ,    ,             sql,id         
		ListInfo list = executor.queryListInfoWithDBName2ndTotalsizesql(HashMap.class, "bspf","queryMaterialListbindParam", 0, 10,"queryCountMaterialListbindParam",id );
		return list;
	}
	/*******************************                 *******************************/
}

例を挙げて、疑問があれば、伝言を残してさらに検討してください.
補足説明:ListInfoオブジェクトには、ページレコードセットと合計レコード数が含まれます.