Mybatis特殊字符处理的详解

前言:

Mybatis特殊字符处理,Mybatis中xml文件特殊字符的处理,这里提供了解决办法及实例,大家可以参考下:

一、问题描述:

查询时,需要获取时间区间内的数据,如下:

<if test="startTime != null" >
  and l.CREATE_TIME >= #{startTime}
</if>
<if test="endTime != null" >
   and l.CREATE_TIME < #{endTime}
</if>

但是,Mybatis中xml 文件中,查询是不能使用小于号(<)的,因为这属于开始标签,是特殊字符

二、解决方案 

在查询中,使用CDATA包括起来,就能避免特殊字符了。这方法适用所有的特殊字符。

<![CDATA[ 

]]>

示例如下:

<if test="startTime != null" >
  <![CDATA[
    and l.CREATE_TIME >= #{startTime}
  ]]>
</if>
<if test="endTime != null" >
  <![CDATA[
  and l.CREATE_TIME < #{endTime}
  ]]>
</if>

MyBatis返回主键,MyBatis Insert操作返回主键:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • Spring MVC+mybatis实现注册登录功能

    本文实例为大家分享了Spring MVC mybatis实现注册登录功能的具体代码,供大家参考,具体内容如下 前期准备: 如下图所示,准备好所需要的包 新建工程,导入所需要的包,在web.xml中配置好所需要的,如下 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee&q

  • mybatis如何通过接口查找对应的mapper.xml及方法执行详解

    本文主要介绍的是关于mybatis通过接口查找对应mapper.xml及方法执行的相关内容,下面话不多说,来看看详细的介绍: 在使用mybatis的时候,有一种方式是 BookMapper bookMapper = SqlSession().getMapper(BookMapper.class) 获取接口,然后调用接口的方法.只要方法名和对应的mapper.xml中的id名字相同,就可以执行sql. 那么接口是如何与mapper.xml对应的呢? 首先看下,在getMapper()方法是如何操作

  • Spring MVC+MyBatis+MySQL实现分页功能实例

    前言 最近因为工作的原因,在使用SSM框架实现一个商品信息展示的功能,商品的数据较多,不免用到分页,查了一番MyBatis分页的做法,终于是实现了,在这里记录下来分享给大家,下面来一起看看详细的介绍: 方法如下:  首先写一个分页的工具类,定义当前页数,总页数,每页显示多少等属性. /** * 分页 工具类 */ public class Page implements Serializable { private static final long serialVersionUID = -22

  • mybatis 插件: 打印 sql 及其执行时间实现方法

    Plugins 摘一段来自MyBatis官方文档的文字. MyBatis允许你在某一点拦截已映射语句执行的调用.默认情况下,MyBatis允许使用插件来拦截方法调用: Executor(update.query.flushStatements.commint.rollback.getTransaction.close.isClosed) ParameterHandler(getParameterObject.setParameters) ResultSetHandler(handleResult

  • Mybatis choose when用法实例代码

    mybatis choose when的用法实现代码如下所示: mapper.xml: <select id="query" resultType="map" parameterType="map"> select <choose> <when test="cityId == '00' "> a.city_id as CITYID, </when> <otherwise&g

  • MyBatis接口的简单实现原理分析

    用过MyBatis3的人可能会觉得为什么MyBatis的Mapper接口没有实现类,但是可以直接用? 那是因为MyBatis使用Java动态代理实现的接口. 这里仅仅举个简单例子来说明原理,不是完全针对MyBatis的,这种思想我们也可以应用在其他地方. 定义一个接口 public interface MethodInterface { String helloWorld(); } 实现动态代理接口 public class MethodProxy<T> implements Invocati

  • Mybatis特殊字符处理的详解

    前言: Mybatis特殊字符处理,Mybatis中xml文件特殊字符的处理,这里提供了解决办法及实例,大家可以参考下: 一.问题描述: 查询时,需要获取时间区间内的数据,如下: <if test="startTime != null" > and l.CREATE_TIME >= #{startTime} </if> <if test="endTime != null" > and l.CREATE_TIME < #

  • MyBatis的foreach语句详解

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有 item,index,collection,open,separator,close.item表示集合中每一个元素进行迭代时的别名,index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符,close表示以什么结束,在使用foreach的时候最关键的也是最容易出错的就是collectio

  • mybatis分页插件pageHelper详解及简单实例

    mybatis分页插件pageHelper详解及简单实例 工作的框架spring springmvc mybatis3 首先使用分页插件必须先引入maven依赖,在pom.xml中添加如下 <!-- 分页助手 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>3.7.5

  • Mybatis映射文件实例详解

     一.输入映射 parameterType 指定输入参数的Java类型,可以使用别名或者类的全限定名.它可以接收简单类型.POJO.HashMap. 1.传递简单类型 根据用户ID查询用户信息: <select id="findUserById" parameterType="int" resultType="com.itheima.mybatis.po.User"> SELECT * FROM USER WHERE id =#{id

  • Mybatis中 XML配置详解

    Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" > <configuration> <

  • springmvc与mybatis集成配置实例详解

    简单之美,springmvc,mybatis就是一个很好的简单集成方案,能够满足一般的项目需求.闲暇时间把项目配置文件共享出来,供大家参看: 1.首先我们来看下依赖的pom: <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.ve

  • SpringBoot整合MyBatis逆向工程及 MyBatis通用Mapper实例详解

    一.添加所需依赖,当前完整的pom文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&q

  • mybatis的动态sql详解(精)

    MyBatis 的一个强大的特性之一通常是它的动态 SQL 能力.如果你有使用 JDBC 或其他 相似框架的经验,你就明白条件地串联 SQL 字符串在一起是多么的痛苦,确保不能忘了空 格或在列表的最后省略逗号.动态 SQL 可以彻底处理这种痛苦. 通常使用动态SQL不可能是独立的一部分,MyBatis当然使用一种强大的动态SQL语言来改进这种情形,这种语言可以被用在任意映射的SQL语句中. 动态SQL元素和使用 JSTL或其他相似的基于XML的文本处理器相似.在MyBatis之前的版本中,有很多

  • MyBatis查询缓存实例详解

    查询缓存的使用,主要是为了提高查询访问速度.将用户对同一数据的重复查询过程简化,不再每次均从数据库查询获取结果数据,从而提高访问速度. MyBatis的查询缓存机制,根据缓存区的作用域(生命周期)可划分为两种:一级缓存与二级缓存 一.一级查询缓存 MyBatis一级缓存是基于org.apache.ibatis.cache.impl.PerpetualCache类的HashMap本地缓存,其作用域是Sqlsession.在同一个Sqlsession中两次执行相同的sql语句,第一次执行完毕后,会将

  • SpringBoot 使用Mybatis分页插件实现详解

    这篇文章主要介绍了SpringBoot 使用Mybatis分页插件实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.导入分页插件包和jpa包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </depende

随机推荐