ibatis 配置参数解析

1  parameterClass  是 SQL要传进来的参数的类型。(通常可以是Map对象,也可以是基础数据类型)

2  resultMap也是你要返回的值类型,字面上理解,它就是结果集的映射,就是将返回的记录逐个字段的映射赋值给对象的属性上。其实如果没有特殊需求的话我们完全可以使用resultclass来代替它,因为如果字段与属性一模一样的话,查询出来数据集会自动匹配到resultclass指定的类的实例对象,如果字段名不在属性中的话,那这个字段将不会被返回的实例体类对象接受,相当于没有查询出这个字段一样的。

resultMap 有一个重要的发生是class,它将决定这个resultmap对应的实例的类,换句话讲,它的作用是指出结果集要映射的数据类型。

3 resultclass 指的是在select查询中的返回数据类型

<![CDATA[ ----sql-----]]>含义

SQL中经常有与xml规范相冲突的字符对xml映射文件的合法性造成影响。<![CDATA[ ]] 标记来避免冲突,但是在SQl 配置中有动态语句的时候,还是有一些细节需要注意。

有时候"  <= "  会对xml映射文件的合法性造成影响。

 1 <select id="find" parameterClass="java.util.Map" resultClass="java.lang.Long">
 2 <![CDATA[
 3 select id
 4 from tableA a,
 5      tableB b
 6  <dynamic prepend="WHERE">
 7  <isNotNull prepend="AND" property="startDate">
 8   a.act_time >= #startDate#
 9   and a.act_time <= #endDate#
10   and a.id = b.id
11  </isNotNull>
12  </dynamic>
13   ]]>
14 </select>  

在时候,将整个sql语句用<![CDATA[ ]]>标记来避免冲突,在一般情况下都是可行的,但是由于  sql配置中有动态语句 (where  部分),将导致系统无法识别动态判断部分,导致整个SQl语句非法。

 1 <select id="find" parameterClass="java.util.Map" resultClass="java.lang.Long">
 2 select id
 3 from tableA a,
 4      tableB b
 5  <dynamic prepend="WHERE">
 6  <isNotNull prepend="AND" property="startDate">
 7   a.act_time >= #startDate#
 8   and a.act_time <= #endDate#
 9   and a.id = b.id
10  </isNotNull>
11  </dynamic>
12 </select>

所以,正确的做法,缩小范围,只对有字符冲突的部分进行标记并调整。

 1 <select id="find" parameterClass="java.util.Map" resultClass="java.lang.Long">
 2 select id
 3 from tableA a,
 4      tableB b
 5  <dynamic prepend="WHERE">
 6  <isNotNull prepend="AND" property="startDate">
 7   a.act_time >= #startDate#
 8   <![CDATA[ and a.act_time <= #endDate#  ]]>
 9   and a.id = b.id
10  </isNotNull>
11  </dynamic>
12 </select>

总结,在CDATA的时候,只用把可能产生冲突的那段代码包含就可以了,不要盲目的包含。

#  与  $  的 区别

ibatis中,我们使用 sqlMap 进行 sql查询时需要引用 参数,在参数引用中遇到的符号  #  和 $之间的区分为,#可以进行与编译,进行类型匹配,而$不进行数据类型匹配,例如:

select  *  from table  where  id =#id# ,其中如果字段为字符型,那么#id#表示的就是‘id‘类型,如果id为整型,那么#id#就是id类型。

select * from table where id =$id$,如果字段id为整型,sql语句就不会出错,但是如果字段id为字符型,那么sql语句应该写成select *  from table where id =‘$id$‘

时间: 2024-10-20 07:18:37

ibatis 配置参数解析的相关文章

Kafka 0.8 配置参数解析

http://kafka.apache.org/08/configuration.html   Broker Configs 4个必填参数, broker.id Each broker is uniquely identified by a non-negative integer id broker唯一标识,broker可以在不同的host或port,但必须保证id唯一 log.dirs (/tmp/kafka-logs) 日志文件存放的目录 可以用逗号隔开多个目录,当创建partitions

Mybatis常用配置参数

Mybatis-plus官方配置详细文档:  https://mp.baomidou.com/config/常用配置参数如下: mybatis-plus: # mapper配置文件路径 mapper-locations: classpath:mybatis/mapper/*Mapper.xml # 数据库对应对象实例包 type-aliases-package: com.zsm.model configuration: #全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存,默认为 true

Apache优化配置——配置参数

●Apache配置参数 ⑴KeepAlive On/Off: KeepAlive指的是保持连接活跃,也就是说,如果将KeepAlive设置为On,那么来自同一客户端的请求就不需要再一次连接,避免每次请求都要创建一个连接而加重服务器的负担.一般情况下,图片较多的网站应该把KeepAlive设为On. ⑵KeepAliveTimeOut number: 如果第二次请求和第一次请求之间超过KeepAliveTimeOut的时间,第一次连接就会中断,再新建第二个连接.它的设置一般考虑图片或者JS等问价再

python 使用getopt 获取配置参数

在工程中特别是稍微大一点的项目基本上都会用到配置,就会涉及到配置文件的读取,配置参数的读取. 常用的解析配置文件的是configParser,解析命令行参数的则为getopt. getopt的参数可以分为两种:长模式和短模式. 长模式在命令行中为:--arg1 arg_value. 短模式则是长模式之外的常用空格分隔的参数. 在程序中使用getopt.getopt()对象获取参数,其格式为: opts, args = getopt.getopt(arg_list, shor_mode, long

ThreadPoolExecutor参数解析

ThreadPoolExecutor是一个非常重要的类,用来构建带有线程池的任务执行器,通过配置不同的参数来构造具有不同规格线程池的任务执行器. 写在前面的是: 线程池和任务执行器,线程池的定义比较直接,可以看做多个线程的集合.而任务执行器的概念比较的具有针对性,它用来执行任务,通过对线程池的管理实现多任务的并发,是线程池的载体. 线程和任务的区别,线程不是任务,线程是用来执行任务的. 队列是用来存放任务的,不是用来存放线程的. 主要的几个参数解析: 核心线程数(core pool sizes)

DNS各种基本配置(正向解析区域、反向解析区域;主/从;子域;基本安全控制)

DNS服务器所提供的服务是完成将主机名和转换为IP地址的工作.为什么需要将主机名转换为IP地址的工作呢?这是因为,当网络上的一台客户机访问某一服务器上的资源时,用户在浏览器地址栏中输入的是人类便于识记的主机名和域名.而网络上的计算机之间实现连接却是通过每台计算机在网络中拥有的惟一的IP地址来完成的,这样就需要在用户容易记忆的地址和计算机能够识别的地址之间有一个解析,DNS服务器便充当了地址解析的重要角色. 域名严格意义上的称呼为FQDN(Full Qualified Domain Name).域

通过查看mysql 配置参数、状态来优化你的mysql

mysql的监控方法大致分为两类: 1.连接到mysql数据库内部,使用show status,show variables,flush status 来查看mysql的各种性能指标. 2. 直接使用mysqladmin查看其性能指标,例如: UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T" mysqladmin两个参数,status,extended-st

linux kernel的cmdline参数解析原理分析

利用工作之便,今天研究了kernel下cmdline参数解析过程,记录在此,与大家共享,转载请注明出处,谢谢. Kernel 版本号:3.4.55 Kernel启动时会解析cmdline,然后根据这些参数如console root来进行配置运行. Cmdline是由bootloader传给kernel,如uboot,将需要传给kernel的参数做成一个tags链表放在ram中,将首地址传给kernel,kernel解析tags来获取cmdline等信息. Uboot传参给kernel以及kern

mysql配置参数详解

查看配置参数可以用下面的命令: show variables like '%innodb%';     #查看innodb相关配置参数 show status  like '%innodb%';           #查看innodb相关的运行时参数 show global status like 'open%tables'; # 查看全局的运行时参数,加上global是对当前mysql服务器中运行的所有数据库实例进行统计.不加global则只对当前数据库实例进行统计. my.cnf参数配置 [