`

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

阅读更多
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.1.3</version> 
</dependency> 

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:
<?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
分享到:
评论
3 楼 qq641879434 2017-02-07  
万分感谢
2 楼 yin_bp 2017-01-19  
qq641879434 写道
怎么设置配置文件 可以查看执行的SQL语句。 我只能getSql(语句名)
   看不到带参数进去 执行的SQL语句


运行的时候查看sql,可以参考文档进行设置:
http://yin-bp.iteye.com/blog/1925173
1 楼 qq641879434 2017-01-18  
怎么设置配置文件 可以查看执行的SQL语句。 我只能getSql(语句名)
   看不到带参数进去 执行的SQL语句

相关推荐

    bboss ioc配置文件中使用外部属性文件介绍

    本文将详细介绍如何在BBoss的IOC配置文件中引用外部属性文件,以便更好地管理和动态配置应用。 首先,BBoss的IOC配置文件通常是一个XML文件,比如`bboss-ioc.xml`,在这个文件中我们可以声明并配置各种bean。当需要...

    基于Java的bboss插件集设计源码,涵盖文档转换及持久层技术

    该项目为bboss插件集的Java设计源码,总计277个文件,涵盖163个Java源文件、22个XML配置文件、14个Gradle构建脚本、13个Git忽略规则、13个属性文件以及少量的JavaScript、HTML、CSS和Shell脚本,主要用于文档转换和...

    基于Java的bboss开源框架设计源码

    该项目是基于Java语言的bboss开源框架构建的设计源码,包含3075个文件,涵盖2700个Java源文件、85个XML配置文件、52个HTML文件、39个properties和prefs文件、23个GIF图片、18个Gradle文件、17个gitignore文件、10个...

    springboot整合bboss es增删改查测试demo代码

    对应的配置文件为application.properties文件 多集群测试用例:eshelloword-spring-boot-starter\src\test\java\org\bboss\elasticsearchtest\springboot\MultiBBossESStartersTestCase.java 多集群演示功能测试...

    bboss 插件工程,持久层hibernate/hibernate4插件

    bboss-plugins project.包含kafka、log4j、spring、dubbo、activemq、word转pdf、pdf转swf项目,持久层hibernate/hibernate4插件

    bboss-db-elasticsearch-tool-master_java_

    在Java中,传统的JDBC编程方式往往需要编写大量重复的SQL代码,而ORM框架如BBoss-DB-Elasticsearch-Tool则通过元数据(如注解或XML配置)将Java对象与数据库表映射起来,实现了数据的透明访问。这极大地提高了开发...

    基于JavaScript和CSS的bboss会话共享demo设计源码

    本项目是基于JavaScript和CSS开发的bboss会话共享demo,包含421个文件,其中包括114个GIF图像文件、111个JPG图像文件、88个PNG图像文件、29个JavaScript脚本文件、20个CSS样式表文件、18个XML配置文件、12个JSP页面...

    bboss mvcdemo 下载地址

    - 快速入门:简单的示例展示如何创建第一个BBoss MVCDemo应用,包括编写控制器、模型和视图。 - 请求处理:讲解BBoss MVCDemo如何处理HTTP请求,包括URL映射、参数绑定和返回值处理。 - 模型层详解:介绍如何定义...

    bboss persistent 1.0.2中方便地实现大字段(clob,blob)的处理

    BBoss Persistent是一个轻量级的持久层框架,它提供了方便的方式来处理这些大字段。本文将深入探讨在BBoss Persistent 1.0.2中如何高效地管理CLOB和BLOB数据。 首先,CLOB用于存储大量的文本数据,如长篇文章或XML...

    bboss 安全认证过滤器功能介绍

    BBoss安全认证过滤器是Java Web开发中一种用于实现用户身份验证和权限控制的重要组件。在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在...

    企业级J2EE开源框架bboss

    2. **数据库操作**:BBoss提供了便捷的数据访问层(DAO),支持SQL动态生成、事务管理以及多种数据库的兼容性,使得数据库操作变得简单且高效。 3. **服务治理**:框架内置了服务注册与发现机制,可以实现微服务...

    bboss会话共享培训文档

    bboss会话共享是一种分布式会话管理技术,它针对在集群环境下应用部署时如何解决会话数据丢失和单点登录问题提供了专门的解决方案。根据提供的文档内容,我们可以详细探讨bboss会话共享涉及的关键知识点。 首先,...

    Bboss国际化实践.ppt

    - 属性配置文件管理:使用标准的properties文件,提供缓冲和热加载机制,提高开发效率。 - 模块化管理:每个模块可以有自己的属性配置文件,便于维护。 8. **菜单国际化**: - 菜单信息:包括系统名称、logo、...

    基于bboss新版平台项目环境搭建和代码工具使用视频教程.rar

    8. **配置项目**:修改配置文件,如web.xml和bboss的配置文件,以适应你的业务需求。 9. **测试运行**:通过访问预设的URL,验证项目是否成功启动。 接下来,`bboss平台代码生成工具使用教程.wmv`可能涵盖了如何...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    **Elasticsearch 开发环境搭建与 BBoss 入门教程** ...通过提供的视频教程和源码示例,你可以逐步学习到环境配置、基本操作以及一些进阶技能,从而在实际项目中更有效地利用 Elasticsearch 和 BBoss。

    由 bboss 开源的数据采集同步ETL工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    bboss-datatran 由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能。 同时也是一个高性能Elasticsearch orm 客户端,100%兼容es各个版本 ...

    基于Java和Shell的bboss session framework跨域集群节点会话共享与监控设计源码

    该框架包含222个文件,包括164个Java源文件、14个XML配置文件、6个Gradle构建文件、6个JAR包文件、6个属性文件等,旨在支持跨域应用集群节点的会话共享与监控,并提供示例站点http://session.bbossgroups.com/供用户...

    bboss elasticsearch-5.7.8.rar

    3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...

Global site tag (gtag.js) - Google Analytics