Mybatis--<![CDATA[ sql 语句 ]]>

在mapper文件中写sql语句时,遇到特殊字符时,如:< 等,建议使用<![CDATA[ sql 语句 ]]>标记,将sql语句包裹住,不被解析器解析

 

在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]>来解决。

<![CDATA[   ]]> 是什么,这是XML语法。在CDATA内部的所有内容都会被解析器忽略。

如果文本包含了很多的"<"字符 <=和"&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。

但是有个问题那就是 <if test="">   </if>   <where>   </where>  <choose>  </choose>  <trim>  </trim> 等这些标签都不会被解析,所以我们只把有特殊字符的语句放在 <![CDATA[   ]]>  尽量缩小 <![CDATA[  ]]> 的范围。

实例如下:

<select id="allUserInfo" parameterType="java.util.HashMap" resultMap="userInfo1">
  <![CDATA[
  SELECT newsEdit,newsId, newstitle FROM shoppingGuide  WHERE 1=1  AND  newsday > #{startTime} AND newsday <= #{endTime}
  ]]>
  <if test="etidName!=‘‘">
   AND newsEdit=#{etidName}
  </if>
</select>  

因为这里有 ">"  "<=" 特殊字符所以要使用 <![CDATA[   ]]> 来注释,但是有<if> 标签,所以把<if>等 放外面

时间: 2024-10-19 20:37:25

Mybatis--<![CDATA[ sql 语句 ]]>的相关文章

基于SpringJDBC的类mybatis形式SQL语句管理的思考与实现

SpringJDBC为我们提供了一个非常方便的数据库访问接口,我们都知道使用JdbcTemplate对数据库进行操作时需要传入执行的SQL语句.在小型系统中,SQL语句可能并不会太多,这个时候我们无论采取什么方式进行管理都没有关系.但是当系统逐渐庞大后,我们就要考虑以一种恰当的方式对这些SQL进行管理了.我们将首先介绍比较常见的几种SQL管理方式,然后再讨论类mybatis形式的SQL管理方式. 在方法中直接构造并传入 这种方式是在需要执行数据库操作的方法内直接硬编码SQL语句.这样做的好处在于

mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句

mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. choose (when,otherwize) ,相当于java 语言中的 switch ,与 jstl 中的choose 很类似.3. trim (对包含的内容加上 prefix,或者 suffix 等,前缀,后缀)4. where (主要是用来简化sql语句中where条件判断的,能智能的处理 a

mybatis 动态sql语句

mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类: 1. if 语句 (简单的条件判断) 2. choose (when,otherwize) ,相当于java 语言中的 switch ,与 jstl 中的choose 很类似. 3. trim (对包含的内容加上 prefix,或者 suffix 等,前缀,后缀) 4. where (主要是用来简化sql语句中where条件判断的,能智能的

log4j打印MyBatis的sql语句配置

log4j.rootLogger=DEBUG,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) -%m%n log4j.logger.com.ibatis=debug log4j

mybatis显示sql语句 log4j.properties配置文件

log4j.properties配置如下: 1 将ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运行的sql语句,方便调试: 2 3 ### 设置Logger输出级别和输出目的地 ### 4 log4j.rootLogger=debug,stdout,logfile 5 6 7 ### 把日志信息输出到控制台 ### 8 log4j.appender.stdout=org.apache.log4j.ConsoleAppender 9 #log4j.appender.

通过Log4j的DEBUG级别来显示mybatis的sql语句

    为了更加方便调试sql语句,需要显示mybatis的sql语句.     网络上的一般方式都是通过log4j来实现,但是很多都有问题.      经过实验,以下代码能够保持正常:(只显示mybatis的sql语句的debug语句,其他的debug不显示)     log4j.rootLogger = DEBUG,CONSOLE,LogFile,ErrorFile #注意这里需要改成DEBUG # 应用于控制台 log4j.appender.CONSOLE = org.apache.log

ssm环境下配置log4j打印mybatis的sql语句

首先附上官网的说明文档: mybatis Logging环境spring4.3.0+springmvc4.3.0+mybatis3.4.0 按官方文档的说明 1 SLF4J 2 Apache Commons Logging 3 Log4j 2 4 Log4j 5 JDK logging mybatis会使用最先找到的(按上文列举的顺序查找),不少应用服务器的classpath中已经包含Commons Logging,如Tomcat和WebShpere, 所以MyBatis会把它作为具体的日志实现

Mybatis动态sql语句(OGNL语法)

下面是Mybatis动态sql语句(即OGNL语法)的简单案例 1.创建表 create table test(id int primary key auto_increment,name varchar(20),job varchar(20),dept varchar(20),sal int) charset=utf8; insert into test values (null,'鲁班','java','甲',1456), (null,'后裔','java','甲',2440), (null

Java实战之路(1):SpringBoot项目中使用Mybatis打印Sql语句

SpringBoot项目中使用Mybatis打印Sql语句 如题,实际项目中使用很多都会用到SpringBoot+Mybatis的经典搭配进行开发,数据库里明明有数据,可是程序运行就是查不到,此时我们在本地Debug时,需要将Mybatis的实际Sql打印出来,看看Sql与我们期望的是否一致,或者将Sql拿到数据库中直接执行,看看结果.这里简单介绍几种实战中的用法. 方法一 properties:在application.properties配置文件中增加如下配置 logging.level.c

Mybatis里SQL语句的分页

SQL语句中的分页. 首先在接口中定义,定义的时候是需要通过@Param注解来表示向mybatis里传入参数: public interface GoodsInfoMapper extends IDaoHotel<GoodsInfo> { //定义一个方法,这个方法来表示分页的 List<GoodsInfo> getlistbypage(@Param("startindex")Integer startindex, @Param("endindex&q