<select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User">
select * from t_user where user_name like CONCAT('%',#{search_name})
</select> //oracle里面只能连接两个字符串。
<!-- 或者 -->
<select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User">
select * from t_user where user_name like '%'||#{search_name}||'%'
</select>
<select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User">
select * from t_user where user_name like CONCAT('%',#{search_name},'%')
</select>
<select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User">
select * from t_user where user_name like '%'+#{search_name}+'%'
</select>
<select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User">
select * from t_user where user_name like CONCAT('%',#{search_name},'%')
</select>
<select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User">
select * from t_user where user_name like '%'||#{search_name}||'%'
</select>
select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User"> select * from t_user where user_name like CONCAT('%',#{search_name},'%')select>select id="sear
通用
mapper
用
oracle
序列作为主键
最近使用通用
mapper
开发项目,公司用的
oracle
数据库,持久层用的是通用
mapper
,公司要求用数据库的序列,按照官方的配置,可能是自己的原因,总是配置不对,自己看了一下源码,发现用key注解就可以实现,具体配置如下:
@Column(name = "id")
@KeySql(sql = "select SEQ_ID.nextval from dual", order= ORDER.DEFAULT)
private I
in范围结合循环:and name in ('XXX','YYY')
and name in
<foreach collection ="list" item ="item" open="(" close=")" >
#{item}
</foreach>
字段 is not...
orcale数据库前提下,mybatics框架,需要
模糊查询
拼接%的场景如下
那需要对传递的变量进行
模糊查询
,则有如下两种写法
1.调用
mapper
接口的时,把变量用%拼接
2.在sql
中
处理,使用concat函数进行拼接
由于公司的java项目,最近有
mysql
往
Oracle
迁移的工作,另外一些同事兼容
Oracle
、Sqlserver双数据库的系统,在新功能开发时也遇到了关于
模糊查询
的坑,这里总结一下。
1、
mybatis
中
拼接like语句最规范的写法:
S.SSV_VALUE like CONCAT('%',CONCAT(#{filters.param},'%'))
之所以要用两个CONCAT,是因为O...
1.Like
模糊查询
有字符串拼接
所有用 str1||str2 拼接的字符串都要改成CONCAT(str1,str2)
'%'||#{zbmc}||'%'改成CONCAT('%',#{zbmc},'%')
a.fpdm||'-'||a.fphm 改成CONCAT(a.fpdm,'-',a.fphm)
Oracle
中
concat与||区别(以及与
mysql
中
concat函数区别)
2. 分页查...
mysql
的 like 模糊语句
中
的通配符:% 和 _ 。
% :表示任意个或多个字符。可匹配任意类型和长度的字符。
_ :表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:(可以代表一个
中
文字符)
现在有个需求,查询某个字段
中
含有 _ 的所有数据。
第1步,SQL语句编写
如果使用下面的 SQL语句,
select * from mytable where content like '%_%'
由于 _ 匹配任意字符串,所以上面的SQL 等于 select * from m
根据动力节点的视频学习后(动力节点
MyBatis
教程实战精讲(适用于SSM框架初学者课程循序渐进,深入浅出)_哔哩哔哩_bilibili),一点基本总结.
MyBatis
是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
MyBatis
消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。
MyBatis
可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库
中
的记录。
```xml
<select id="getUserListByName" resultType="User">
SELECT * FROM user WHERE name like '%${name}%'
</select>
2. 使用#{}占位符方式传入参数:
```xml
<select id="getUserListByName" resultType="User">
SELECT * FROM user WHERE name like CONCAT('%',#{name},'%')
</select>
其
中
,第二种写法更加安全可靠,建议使用。