bboss 持久层sql xml配置文件编写和加载方法介绍

简介: bboss 持久层sql xml配置文件编写和加载方法介绍 通过bboss持久数操作数据库首先要配置数据源,参考文档: bboss持久层多数据源配置及多数据库事务控制使用方法 bboss 持久层配置apache dbcp,proxool,c3p0,Druid等数据源方法 1.
bboss 持久层sql xml配置文件编写和加载方法介绍
通过bboss持久数操作数据库首先要配置数据源,参考文档:
bboss持久层多数据源配置及多数据库事务控制使用方法

bboss 持久层配置apache dbcp,proxool,c3p0,Druid等数据源方法
1.sql xml文件编写

首先在项目中导入bboss 持久层包:
maven坐标
<dependency> 
    <groupId>com.bbossgroups</groupId> 
    <artifactId>bboss-persistent</artifactId> 
    <version>5.0.7.2</version> 
</dependency> 

gradle坐标
compile 'com.bbossgroups:bboss-persistent:5.0.7.2'


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:
<?xml version="1.0" encoding="UTF-8"?>

<properties>
	
	<property name="tdSmUserSave">
		<![CDATA[
			insert into td_sm_user
	  			(user_id, user_sn, user_name, user_password, user_realname,
	   			user_pinyin, user_sex, user_hometel, user_worktel, user_worknumber,
	   			user_mobiletel1, user_mobiletel2, user_fax, user_oicq, user_birthday,
	   			user_address, user_postalcode, user_idcard, user_isvalid,
	   			user_regdate, user_logincount, user_type, remark1, remark2, remark3,
	   			remark4, remark5, past_time, dredge_time, lastlogin_date, worklength,
	   			politics, istaxmanager, logon_ip, cert_sn)
	   		values (#[userId], #[userSn], 
	   			#if($userName && !$userName.equals(""))
					#[userName],
				#else 
					#[userWorknumber],
				#end 
				#[userPassword], #[userRealname], #[userPinyin], #[userSex], #[userHometel], 
				#[userWorktel], #[userWorknumber], 
	   			#[userMobiletel1], #[userMobiletel2], #[userFax], #[userOicq], 
	   			#[userBirthday], #[userAddress], #[userPostalcode], 
	   			#[userIdcard], #[userIsvalid], #[userRegdate], #[userLogincount], 
	   			#if($userName && !$userName.equals(""))
					'1',
				#else 
					'2',
				#end
				 #[remark1], #[remark2], #[remark3], #[remark4], #[remark5], 
	   			#[pastTime], #[dredgeTime], #[lastloginDate], #[worklength], #[politics], 
	   			#[istaxmanager], #[logonIp], #[certSn])
		]]>
	</property>
	
	<property name="tdSmUserUpdate">
		<![CDATA[
			update td_sm_user
	  		set	#if($userName && !$userName.equals(""))
					user_name=#[userName],
				#else 
					user_name=#[userWorknumber],
				#end
	  			user_password=#[userPassword], user_realname=#[userRealname],
	   			user_pinyin=#[userPinyin], user_sex=#[userSex], user_hometel=#[userHometel], 
	   			user_worktel=#[userWorktel], user_mobiletel1=#[userMobiletel1], user_mobiletel2=#[userMobiletel2],
	   			user_fax=#[userFax], user_oicq=#[userOicq], user_birthday=#[userBirthday],
	   			user_email=#[userEmail], user_address=#[userAddress], user_postalcode=#[userPostalcode], 
	   			user_idcard=#[userIdcard], user_isvalid=#[userIsvalid],	user_regdate=#[userRegdate], 
	   			user_logincount=#[userLogincount],
	   			#if($userName && !$userName.equals(""))
					user_type='1',
				#else 
					user_type='2',
				#end 
	   			remark1=#[remark1], remark2=#[remark2], 
	   			remark3=#[remark3],	remark4=#[remark4], remark5=#[remark5], past_time=#[pastTime], 
	   			dredge_time=#[dredgeTime], lastlogin_date=#[lastloginDate], worklength=#[worklength],
	   			politics=#[politics], istaxmanager=#[istaxmanager], logon_ip=#[logonIp], cert_sn=#[certSn]
	   		where user_worknumber=#[userWorknumber]
		]]>
	</property>
	
	<property name="tdSmUserSelectByWorkNumber">
		<![CDATA[
		
			select user_id as userId from td_sm_user where user_worknumber=?
		]]>
	</property>
	
	<property name="tdSmOrgSave">
		<![CDATA[
			insert into td_sm_organization 
				(org_id, org_sn, org_name, parent_id, orgnumber, orgdesc, 
				chargeorgid, remark3, remark5, org_tree_level, org_level, org_xzqm) 
			values (#[orgId], #[orgSn], #[orgName], #[parentId], #[orgnumber], #[orgdesc], 
			#[chargeorgid], #[remark3], #[remark5], #[orgTreeLevel], #[orgLevel], #[orgXzqm])
		]]>
	</property>
	
	<property name="tdSmOrgUpdate">
		<![CDATA[
			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] 
		]]>
	</property>
	
	<property name="tdSmOrgSelect">
		<![CDATA[
			select org_id as orgId, org_sn as orgSn, parent_id  as parentId				
			from td_sm_organization where org_id=#[orgId]
		]]>
	</property>
	
	<property name="tdSmOrgAllData">
		<![CDATA[
			select org_id as orgId, org_sn as orgSn, parent_id  as parentId				
			from td_sm_organization order by org_id
		]]>
	</property>
	
	<property name="tdSmJobSave">
		<![CDATA[
			insert into td_sm_job
				(job_id, job_name, job_desc)
			values (#[jobId], #[jobName], #[jobDesc])
		]]>
	</property>
	
	<property name="tdSmJobUpdate">
		<![CDATA[
			update td_sm_job 
			set job_name=#[jobName] , job_desc=#[jobDesc] 
			where job_id=#[jobId] 
		]]>
	</property>
	
	<property name="tdSmJobSelect">
		<![CDATA[
			select * from td_sm_job where job_id=#[jobId]
		]]>
	</property>
	
	<property name="tdSmOrgJobSave">
		<![CDATA[
			insert into td_sm_orgjob
				(job_id, org_id, job_sn)
			values (#[jobId], #[orgId], #[jobSn])
		]]>
	</property>
	
	<property name="tdSmOrgJobUpdate">
		<![CDATA[
			update td_sm_orgjob 
			set org_id=#[orgId], job_sn=#[jobSn]
			where job_id=#[jobId] 
		]]>
	</property>
	
	<property name="tdSmOrgJobSelect">
		<![CDATA[
			select * from td_sm_orgjob where job_id=#[jobId]
		]]>
	</property>
	
	<property name="tdSmOrgUserSave">
		<![CDATA[
			insert into td_sm_orguser
				(user_id, org_id)
			values (#[userId], #[orgId])
		]]>
	</property>
	
	<property name="tdSmOrgUserUpdate">
		<![CDATA[
			update td_sm_orguser 
			set org_id=#[orgId]
			where user_id=#[userId] 
		]]>
	</property>
	
	<property name="tdSmOrgUserSelect">
		<![CDATA[
			select * from td_sm_orguser where user_id=#[userId]
		]]>
	</property>
	
	<property name="tdSmUserJobOrgSave">
		<![CDATA[
			insert into td_sm_userjoborg
				(user_id, org_id, job_id, job_starttime)
			values (#[userId], #[orgId], #[jobId], #[jobStartTime])
		]]>
	</property>
	
	<property name="tdSmUserJobOrgUpdate">
		<![CDATA[
			update td_sm_userjoborg 
			set org_id=#[orgId], job_id=#[jobId], job_starttime=#[jobStartTime]
			where user_id=#[userId] 
		]]>
	</property>
	
	<property name="tdSmUserJobOrgSelect">
		<![CDATA[
			select * from td_sm_userjoborg where user_id=#[userId]
		]]>
	</property>
	
	<property name="selectTdSmUserKey">
		<![CDATA[
			select user_id,USER_WORKNUMBER,user_type from td_sm_user 
		]]>
	</property>
	
	<property name="selectTdSmOrgKey">
		<![CDATA[
			select org_id,org_tree_level from td_sm_organization order by org_tree_level 
		]]>
	</property>
	
	<property name="selectTdSmJobKey">
		<![CDATA[
			select job_id from td_sm_job
		]]>
	</property>
	
	<property name="selectTdSmOrgUserKey">
		<![CDATA[
			select distinct(user_id) from td_sm_orguser
		]]>
	</property>
	
	<property name="selectTdSmOrgJobUserKey">
		<![CDATA[
			select distinct(user_id) from td_sm_userjoborg
		]]>
	</property>
</properties>





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
List<HashMap> datas = 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<HashMap> 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
目录
相关文章
|
12月前
|
SQL 数据采集 关系型数据库
实现MySQL与SQL Server之间数据迁移的有效方法
总的来说,从MySQL到SQL Server的数据迁移是一个涉及到很多步骤的过程,可能会遇到各种问题和挑战。但只要精心规划、仔细执行,这个任务是完全可以完成的。
720 18
|
12月前
|
SQL XML Java
菜鸟之路Day35一一Mybatis之XML映射与动态SQL
本文介绍了MyBatis框架中XML映射与动态SQL的使用方法,作者通过实例详细解析了XML映射文件的配置规范,包括namespace、id和resultType的设置。文章还对比了注解与XML映射的优缺点,强调复杂SQL更适合XML方式。在动态SQL部分,重点讲解了`&lt;if&gt;`、`&lt;where&gt;`、`&lt;set&gt;`、`&lt;foreach&gt;`等标签的应用场景,如条件查询、动态更新和批量删除,并通过代码示例展示了其灵活性与实用性。最后,通过`&lt;sql&gt;`和`&lt;include&gt;`实现代码复用,优化维护效率。
1117 5
|
SQL Java 数据库连接
Java中实现SQL分页的方法
无论何种情况,选择适合自己的,理解了背后的工作原理,并能根据实际需求灵活变通的方式才是最重要的。
288 9
|
SQL 关系型数据库 MySQL
【MySQL】SQL分析的几种方法
以上就是SQL分析的几种方法。需要注意的是,这些方法并不是孤立的,而是相互关联的。在实际的SQL分析中,我们通常需要结合使用这些方法,才能找出最佳的优化策略。同时,SQL分析也需要对数据库管理系统,数据,业务需求有深入的理解,这需要时间和经验的积累。
435 12
|
SQL 关系型数据库 MySQL
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL 数据库 SQL 语句调优方法详解(2-1)
本文深入介绍 MySQL 数据库 SQL 语句调优方法。涵盖分析查询执行计划,如使用 EXPLAIN 命令及理解关键指标;优化查询语句结构,包括避免子查询、减少函数使用、合理用索引列及避免 “OR”。还介绍了索引类型知识,如 B 树索引、哈希索引等。结合与 MySQL 数据库课程设计相关文章,强调 SQL 语句调优重要性。为提升数据库性能提供实用方法,适合数据库管理员和开发人员。
|
SQL 数据库连接 Linux
数据库编程:在PHP环境下使用SQL Server的方法。
看看你吧,就像一个调皮的小丑鱼在一片广阔的数据库海洋中游弋,一路上吞下大小数据如同海中的珍珠。不管有多少难关,只要记住这个流程,剩下的就只是探索未知的乐趣,沉浸在这个充满挑战的数据库海洋中。
459 16
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
919 4
|
SQL BI 数据库
SQL操作的一些基本方法
【10月更文挑战第27天】SQL操作的一些基本方法
258 3
|
SQL 监控 固态存储
SQL优化有哪些方法?
【10月更文挑战第27天】SQL优化有哪些方法?
504 3