
聊聊Mybatis中sql语句不等于的表示

Mybatis sql语句不等于的表示
如果直接写
select * from user where id <> 217;
mybatis就会报语法错误,<>特殊字符需要转义
如下
select * from user where id <> 217;
使用Mybatis的时候,特殊字符需进行转义,如
<> <>
& &
' '
" "
Mybatis 特殊符号(大于,小于,不等于)及常用函数总结
1、使用场景
因为我们在日常代码Mybatis 动态拼接语句时候经常使用到 大于(>,>=)、小于(<,<=)、不等于(<> ,!=)符号。由于此符号包含了尖括号,Mybatis使用的 *.xml文件格式。于是
需要之内尖括号进行相关的转义或者使用 CDATA 区段。
2、实现方式
2.1、转义特殊符号方式
注释:严格地讲,在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。
符号 | 原符号 | 替换符号 |
---|---|---|
小于 | < | < |
小于等于 | <= | <= |
大于 | > | > |
大于等于 | >= | >= |
不等于 | <> | <> |
与 | & | & |
单引号 | ' | ' |
双引号 | " | " |
mapper文件写法:
select * form tablenme t where t.code <> 1
2.2、使用 CDATA 区段
所有 XML 文档中的文本均会被解析器解析。只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。
大于等于 <![CDATA[ >= ]]>
小于等于 <![CDATA[ <= ]]>
不等于<![CDATA[ <> ]]>
mapper文件写法:
select t.* form tablenme t where t.code <![CDATA[<>]]> 1
3、Mybatis if 判断等于一个字符串
当传入的type的值为note 的时候,if判断内的sql也不会执行。
<if test="type=='note'"> and status = 0 </if>
mybatis是使用的OGNL表达式来进行解析的,在OGNL的表达式中,'note'会被解析成字符,因为java是强类型的,char 和 一个String 会导致不等。所以if标签中的sql不会被解析。
需要解决这个问题,只需要把代码修改成:
<if test='type=="note"'> //注意是双引号,不是单引号!!! and status = 0 </if>
4、mysql二进制转成字符串
SELECT cast(fieldName as CHAR) FROM tablename
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Mybatis 动态sql if 判读条件等于一个数字的案例
在Mybatis中 mapper中 boolean updateRegisterCompanyFlag(@Param(value = "companyId") String companyId, @Param(value = "flag") String flag); 传入的flag类型为String,但在mapper.XML中进行判断是下意识地以为判断的值要加上引号 <if test=" '4' == flag "> , LAST_
-
详解Java的MyBatis框架中动态SQL的基本用法
有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息.使用Oracle的序列.mysql的函数生成Id.这时我们可以使用动态sql.下文均采用mysql语法和函数(例如字符串链接函数CONCAT). selectKey 标签 在insert语句中,在Oracle经常使用序列.在MySQL中使用函数来自动生成插入表的主键,而且需要方法能返回这个生成主键.使用myBatis的select
-
Mybatis中的动态SQL语句解析
这篇文章主要介绍了Mybatis中的动态SQL语句解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Mybatis中配置SQL有两种方式,一种是利用xml 方式进行配置,一种是利用注解进行配置. Mybatis使用注解配置SQL,但是由于配置功能受限,而且对于复杂的SQL而言可读性很差,所以很少使用. Mybatis常用xml配置的方式,使用xml的几个简单的元素,便能完成动态SQL的功能,大量的判断都可以在mybaties的映射xml里面配
-
MyBatis 执行动态 SQL语句详解
大家基本上都知道如何使用 MyBatis 执行任意 SQL,使用方法很简单,例如在一个 XXMapper.xml 中: <select id="executeSql" resultType="map"> ${_parameter} </select> 你可以如下调用: sqlSession.selectList("executeSql", "select * from sysuser where enabled
-
mybatis中sql语句CDATA标签的用法说明
sql语句CDATA标签的用法 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data). 在 XML 元素中,"<" 和 "&" 是非法的: "<" 会产生错误,因为解析器会把该字符解释为新元素的开始: "&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始: 在mapper文件中写sql语句时,遇到特殊字符时,如:"<&
-
聊聊Mybatis中sql语句不等于的表示
Mybatis sql语句不等于的表示 如果直接写 select * from user where id <> 217; mybatis就会报语法错误,<>特殊字符需要转义 如下 select * from user where id <> 217; 使用Mybatis的时候,特殊字符需进行转义,如 <> <> & & ' ' " " Mybatis 特殊符号(大于,小于,不等于)及常用函数
-
Oracle在Mybatis中SQL语句的配置方法
数据库中有下划线的字段在实体中应采用驼峰命名法,如P_NAME对应pName,实例如下: 1.XML文件中SQL语句配置(Geteway.xml文件) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-m
-
Mybatis中 SQL语句复用
mapper.xml 中共用 mapper.xml 间共用 项目中也许我们会遇到一段sql语句被多个查询.增加等语句用到的情况,如何去偷懒呢,复用sql无疑是较好的选择 这里只提供简单的示范: 如果只是单表查询,并且希望共用的sql只会出现在同一个mapper.xml文件中,那么我们可以直接在 <mapper namespace="XXXXX"></mapper> 中写下面的业务代码 <sql id="unitSql"> a.us
-
浅谈mybatis中SQL语句给boolean类型赋值问题
我就废话不多说了,大家还是直接看代码吧~ <select id="getBiTree" parameterType="String" resultMap="MenuVoListMap"> SELECT m.menu_id , m.parent_id , m.`name` , 1 opens FROM menu m WHERE m.is_valid = 1 AND (m.type = 0 or m.type = 1) and m.men
-
在IDEA中安装MyBatis Log Plugin插件,执行mybatis的sql语句(推荐)
查看代码执行mybatis的sql语句 File–>Settings–>Plugins 搜索 MyBatis Log Plugin Installed安装之后重启,点击上方的Tools就能看到 然后debug执行代码之后 点击启动MyBatis Log Plugin插件 就可以查看每一步执行的sql 到此这篇关于在IDEA中安装MyBatis Log Plugin插件,执行mybatis的sql语句(推荐)的文章就介绍到这了,更多相关idea 安装MyBatis Log Plugin插件内容请
-
解决mybatis执行SQL语句部分参数返回NULL问题
今天在写代码的时候发现一个问题:mybatis执行sql语句的时候返回bean的部分属性为null,在数据库中执行该sql语句能够正常返回,把相关代码反反复复翻了个遍,甚至都重启eclipse了,依旧没解决问题,后来网上搜了一下,还真有类似的问题. 闲话少说,直接说问题,该sql语句是自己写的,resultType直接用了该bean全名称,最终导致部分属性显示为null, 原来的写法: <select id="selectByArticle" parametertype=&quo
-
在mybatis执行SQL语句之前进行拦击处理实例
比较适用于在分页时候进行拦截.对分页的SQL语句通过封装处理,处理成不同的分页sql. 实用性比较强. import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.Properties; import org.apache.ibatis.e
-
SpringBoot项目的logback日志配置(包括打印mybatis的sql语句)
关于logback日志的详解见这位仁兄的博客:Spring Boot-日志配置(超详细) 我在这就开门见山直接介绍我们项目日志的配置使用吧!~ 1.基本介绍 默认情况下,Spring Boot项目就会用Logback来记录日志,并用INFO级别输出到控制台.如下图: 实际开发中我们不需要直接添加logback日志依赖. 你会发现 spring-boot-starter 其中包含了 spring-boot-starter-logging,该依赖内容就是 Spring Boot 默认的日志框架 lo
-
MyBatis控制台显示SQL语句的方法实现
一.单独使用MyBatis (1)在mybatis.xml配置文件中添加如下配置 <setting name="logImpl" value="STDOUT_LOGGING" /> (2)使用slf4j输出 因此要先添加slf4j的依赖 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifact
随机推荐
- jQuery实现从身份证号中获取出生日期和性别的方法分析
- js克隆对象、数组的常用方法介绍
- 实例详解JSON数据格式及json格式数据域字符串相互转换
- 深入java对象复制的分析
- Mybatis集成Spring的实例代码_动力节点Java 学院整理
- 在ASP.NET中使用Session常见问题集锦
- JS字符串的切分用法实例
- 前端程序员必须知道的高性能Javascript知识
- php实现36进制与10进制转换功能示例
- C#与js实现去除textbox文本框里面重复记录的方法
- 在Python中使用glob模块查找文件路径的方法
- Docker容器的Tengine实践
- Mysql主键相关的sql语句集锦
- mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
- js实现右键菜单功能
- Node.js实战 建立简单的Web服务器
- 基于Bootstrap的Metronic框架实现页面链接收藏夹功能
- PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
- jQuery Validate 相关参数及常用的自定义验证规则
- ospf的注意事项
其他
- python sapi生成wav
- vue离开组件刷新页面
- python计算两条直线的夹角
- json_encode自动排序
- vue实现单选题功能
- mysql提供了非标准的命令
- 使用Python实现多线程TCP套接字通信
- 易语言编译结果打乱码
- mybatis 指定mapper bean名字
- feign Page调用
- linux 搭建sftp
- window.open 传token
- python 输入域名求ip地址
- 求均值向量python
- javax.servlet.http无法解析为类型
- antd defaultExpandAll 无效
- springboot 事件驱动
- 输入框光标重影怎么回事
- vue怎么给tabledata动态辅助
- el-message加类名样式调整