通过bboss持久数操作数据库首先要配置数据源,参考文档:
bboss持久层多数据源配置及多数据库事务控制使用方法
bboss 持久层配置apache dbcp,proxool,c3p0,Druid等数据源方法
1.sql xml文件编写
首先在项目中导入bboss 持久层包:
maven坐标
com.bbossgroups bboss-persistent 5.1.3
gradle坐标
compile 'com.bbossgroups:bboss-persistent:5.1.3'
sql xml文件存放在的工程的具体的包路径中,例如:
com/pdp/masterdata/hr/dao/HumanDataSql.xml
sql xml文件配置遵循bboss ioc 语法,sql语句语法分为原生sql和模板变量sql,原生sql样列:
select * from tableinfo where name like ?
模板变量sql中可以包含bboss自定义模板变量和基于velocity语法动态sql,样列:
update td_sm_organization set #if($orgName && !$orgName.equals("")) org_name=#[orgName], #end #if($parentId && !$parentId.equals("")) parent_id=#[parentId], #end #if($orgnumber && !$orgnumber.equals("")) orgnumber=#[orgnumber], #end #if($orgdesc && !$orgdesc.equals("")) orgdesc=#[orgdesc], #end #if($chargeorgid && !$chargeorgid.equals("")) chargeorgid=#[chargeorgid], #end #if($remark3 && !$remark3.equals("")) remark3=#[remark3], #end #if($remark5 && !$remark5.equals("")) remark5=#[remark5], #end #if($orgTreeLevel && !$orgTreeLevel.equals("")) org_tree_level=#[orgTreeLevel], #end #if($orgLevel && !$orgLevel.equals("")) org_level=#[orgLevel], #end #if($orgXzqm && !$orgXzqm.equals("")) org_xzqm=#[orgXzqm], #end org_id=#[orgId] where org_id=#[orgId]
动态sql更多介绍,可访问文档: http://yin-bp.iteye.com/blog/2181720
sql文件示例com/pdp/masterdata/hr/dao/HumanDataSql.xml:
2.加载配置文件初始化bboss 持久层通用dao
bboss sql配置文件遵循bboss ioc 语法,dao加载sql文件:
com.frameworkset.common.poolman.ConfigSQLExecutor dao= new com.frameworkset.common.poolman.ConfigSQLExecutor("com/pdp/masterdata/hr/dao/HumanDataSql.xml"); //指定dbname Listdatas = dao.queryListWithDBName(HashMap.class,dbname, "selectTdSmOrgKey"); for(int i = 0; datas != null && i < datas.size(); i ++) { System.out.println(datas.get(i)); } } catch(SQLException e) { e.printStackTrace(); } //不指定dbname List datas = dao.queryList(HashMap.class, "selectTdSmOrgKey"); for(int i = 0; datas != null && i < datas.size(); i ++) { System.out.println(datas.get(i)); } } catch(SQLException e) { e.printStackTrace(); }
加载配置文件的dao的具体api使用,可以参考文档: http://yin-bp.iteye.com/blog/1112997