bbossgroups 持久层模板sql变量参数设置的三种方式

简介: 本文介绍bbossgroups 持久层模板sql变量参数设置的三种方式,切入正题。 概述 Map:所有的变量参数名和值以key/value的方式放入,如果值为null则以null方式替换变量 Bean:所有的变量参数和值以都与bean中对应的属性字段名和值相对应,如果值为null则以相应属...
本文介绍bbossgroups 持久层模板sql变量参数设置的三种方式,切入正题。

概述
Map:所有的变量参数名和值以key/value的方式放入,如果值为null则以null方式替换变量
Bean:所有的变量参数和值以都与bean中对应的属性字段名和值相对应,如果值为null则以相应属性类型的sql类型的 null方式替换变量
SQLParams:所有的变量参数和值以都与SQLParams中对应的属性字段名和值相对应,参数的类型根据 SQLParams.addSQLParam("id", value, SQLParams.INT)方法的第三个参数来指定,如果值为null则以相应类型的sql类型的 null方式替换变量。

如果是insert,delete,update还可以使用List<Map>,List<Bean>,List<SQLParams>来完成批量处理操作(后台全部采用预编译批处理来完成批量数据处理,性能好),下面分别介绍上述三种方式的使用方法。
1.Map和List<Map>方式
Map方式:
 
                 Map datas = new HashMap();
		 datas.put("id", 139);
		 datas.put("fieldName", "updateWithMapParams139");				
		 executor.updateBean("updatesqltemplate", datas);	//更新记录

List<Map>方式:
 Map datas = new HashMap();
		 datas.put("id", 139);
		 datas.put("fieldName", "updateWithMapParams139");
		 List<Map> params_ = new ArrayList<Map>();
		 params_.add(datas);
		 datas = new HashMap();
		 datas.put("id", 140);
		 datas.put("fieldName", "updateWithMapParams140");
		 params_.add(datas);		
		 datas = new HashMap();
		 datas.put("id", 141);
		 datas.put("fieldName", "updateWithMapParams141");
		 params_.add(datas);		
		 executor.updateBeans("updatesqltemplate", params_);	//批量更新处理多个记录


2.Bean和List<Bean>方式
Bean方式:
ListBean bean = new ListBean();
		   bean.setId(139);
		 List<ListBean> result = executor.queryListBean(ListBean.class, "dynamicsqltemplateid", bean);
		
		  bean.setId(-1);
		 result = (List<ListBean>) executor.queryListBean(ListBean.class,"dynamicsqltemplateid", bean);
		 bean.setId(0);
		 result = (List<ListBean>) executor.queryListBean(ListBean.class,"dynamicsqltemplateid", bean);

List<Bean>方式:
ListBean bean = new ListBean();
		   bean.setId(139);
List<ListBean> params_ = new ArrayList<ListBean>();
params.add(bean );
		executor.updateBeans("updatesqltemplate", params_);//批量更新处理多个记录


3.SQLParams和List<SQLParams>方式
SQLParams方式:
 SQLParams params = new SQLParams();
		 params.addSQLParam("id", 139, SQLParams.INT);		
		 List<ListBean> result = executor.queryListBean(ListBean.class, "dynamicsqltemplateid", params);
		

List<SQLParams>方式:
SQLParams params = new SQLParams();
		 params.addSQLParam("id", 139, SQLParams.INT);
		 params.addSQLParam("fieldName", "duoduo139", SQLParams.STRING);
		 List<SQLParams> params_ = new ArrayList<SQLParams>(2);
		 params_.add(params);
		 params = new SQLParams();
		 params.addSQLParam("id", 140, SQLParams.INT);
		 params.addSQLParam("fieldName", "duoduo140", SQLParams.STRING);
		 params_.add(params);
		
		 params = new SQLParams();
		 params.addSQLParam("id", 141, SQLParams.INT);
		 
		 params.addSQLParam("fieldName", "duoduo141", SQLParams.STRING);
		 params_.add(params);
		 executor.updateBeans("updatesqltemplate", params_);//批量更新处理多个记录


补充说明-executor变量定义和相对应的sql配置文件
executor变量定义:
 ConfigSQLExecutor executor = = new ConfigSQLExecutor("com/frameworkset/sqlexecutor/sqlfile.xml");

sql配置文件:
<?xml version="1.0" encoding='gb2312'?>
<properties>
	<description>
<![CDATA[
	sql配置文件
	可以通过名称属性name配置默认sql,特定数据库的sql通过在
	名称后面加数据库类型后缀来区分,例如:
	sqltest
	sqltest-oracle
	sqltest-derby
	sqltest-mysql
	等等,本配置实例就演示了具体配置方法
 ]]>
	</description>
	<property name="sqltest"><![CDATA[select * from LISTBEAN]]>
	</property>
	<property name="sqltest-oracle"><![CDATA[select * from LISTBEAN]]>
	</property>
	<property name="sqltemplate"><![CDATA[select FIELDNAME from LISTBEAN where FIELDNAME=#[fieldName]]]>
	</property>
	<property name="sqltemplate-oracle"><![CDATA[select FIELDNAME from LISTBEAN where FIELDNAME=#[fieldName]  ]]></property>
	<!-- 动态sql,如果FIELDNAME 不等于null,并且FIELDNAME不为""将FIELDNAME作为查询条件-->
	<property name="dynamicsqltemplate"><![CDATA[select *  from LISTBEAN  where 1=1 
					#if($fieldName && !$fieldName.equals("")) and FIELDNAME = #[fieldName] #end  ]]>
	</property>
	<!-- 动态sql,如果id 不等于-1,并且id不为0将id作为查询条件-->
	<property name="dynamicsqltemplateid"><![CDATA[select *  from LISTBEAN  where 1=1 
					#if($id != -1 && $id != 0) and id = #[id] #end  ]]>
	</property>
	<property name="updatesqltemplate"><![CDATA[update LISTBEAN  set FIELDNAME = #[fieldName] where id = #[id] ]]>
	</property>
	<property name="queryFieldWithSQLParams"><![CDATA[select count(1)  from LISTBEAN ]]>
	</property>
</properties>


三种方式就介绍到此,欢迎感兴趣的朋友深入探讨bbossgroups持久层框架的方方面面。

相关文档:
bbossgroups持久层框架动态sql语句配置和使用
目录
相关文章
|
2月前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
3月前
|
SQL
开启慢SQL设置long_query_time=0.1为啥会统计的sql却存在小于100毫秒的sql
开启慢SQL设置long_query_time=0.1为啥会统计的sql却存在小于100毫秒的sql
59 1
|
4月前
|
SQL 存储 数据库
SQL部分字段编码设置技巧与方法
在SQL数据库管理中,设置字段的编码对于确保数据的正确存储和检索至关重要
|
4月前
|
SQL Java 数据库连接
mybatis使用四:dao接口参数与mapper 接口中SQL的对应和对应方式的总结,MyBatis的parameterType传入参数类型
这篇文章是关于MyBatis中DAO接口参数与Mapper接口中SQL的对应关系,以及如何使用parameterType传入参数类型的详细总结。
87 10
|
5月前
|
存储 SQL 关系型数据库
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
MySQL调优主要分为三个步骤:监控报警、排查慢SQL、MySQL调优。 排查慢SQL:开启慢查询日志 、找出最慢的几条SQL、分析查询计划 。 MySQL调优: 基础优化:缓存优化、硬件优化、参数优化、定期清理垃圾、使用合适的存储引擎、读写分离、分库分表; 表设计优化:数据类型优化、冷热数据分表等。 索引优化:考虑索引失效的11个场景、遵循索引设计原则、连接查询优化、排序优化、深分页查询优化、覆盖索引、索引下推、用普通索引等。 SQL优化。
852 15
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
|
6月前
|
SQL 存储 Unix
Flink SQL 在快手实践问题之设置 Window Offset 以调整窗口划分如何解决
Flink SQL 在快手实践问题之设置 Window Offset 以调整窗口划分如何解决
94 2
|
6月前
|
SQL 关系型数据库 MySQL
SQL自动启动设置指南:详细步骤与技巧
在数据库管理中,确保SQL服务能够自动启动对于保持数据服务的连续性和稳定性至关重要
|
6月前
|
SQL 存储 缓存
SQL Server 内存占用较高 - 清除缓存 或 设置内存最大占用值
SQL Server 内存占用较高 - 清除缓存 或 设置内存最大占用值
217 0
|
7月前
|
SQL Cloud Native 关系型数据库
云原生数据仓库使用问题之控制JDBC方式请求的SQL大小限制的参数是什么
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
7月前
|
SQL 存储 安全
SQL装机设置深度解析:从规划到实施的全面指南
SQL装机设置是一个复杂而重要的过程,它直接影响到数据库系统的性能和安全性。通过充分的规划、仔细的实施以及持续的优化和维护,可以确保SQL数据库系统为企业或个人提供稳定、高效的数据存储和管理服务。希望本文能为您提供有益的指导和启示,帮助您在SQL装机设置的道路上走得更远、更稳。在未来的发展中,随着技术的不断进步和需求的不断变化,SQL装机设置也将继续演变和完善。因此,作为数据库管理员或相关技术人员,我们需要不断学习新知识、掌握新技能,以适应这一领域的快速发展。同时,我们还应关注最佳实践和行业标准的更新,以便将最新的技术和方法应用到实际工作中。通过不断学习和实践,我们可以更好地应对SQL装机设置
62 0