Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项
Mybatis映射文件SQL语句模糊查询
1. “%”#{value}"%" 在参数中不需要添加 %_ 推荐使用
2. ‘%${value}%’ 在参数中不需要添加 %_
3. #{abc} 在参数中添加 %_
#和$的区别和注意事项
${}直接拼接 ,不会转换类型
如果是简单类型,必须写${value}
如果是pojo类型,${属性名}(注意:需要转换类型)
#{}相当于占位符,可以自动的转换类型 可以防止SQL注入
如果是简单类型,可以随便写${随便写}
如果是pojo类型,${属性名}(注意:可以自动转换类型)
一、# “%”#{value}"%"
1.UserMapper.xml
<select id="findByUsername" parameterType="java.lang.String" resultType="com.william.domain.User">select * from user where username like "%"#{value}"%"</select>
2.TestMybatis
/*** 模糊查询* 通过用户名字模糊查询*/@Testpublic void findByUsername(){InputStream inputStream = Resources.class.getClassLoader().getResourceAsStream("Mybatis-configuration.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();List<User> selectList = sqlSession.selectList("com.william.mapper.UserMapper.findByUsername","a");for (Object o : selectList) {System.out.println(o);}sqlSession.close();}
3.测试结果
执行的SQL语句
Preparing: select * from user where username like "%"?"%"
Parameters: a(String)
二、$ ‘%${value}%’
1.UserMapper.xml
<!--模糊查询--><select id="findByUsername" parameterType="java.lang.String" resultType="com.william.domain.User">select * from user where username like '%${value}%'</select>
2.TestMybatis
/*** 模糊查询* 通过用户名字模糊查询*/@Testpublic void findByUsername(){InputStream inputStream = Resources.class.getClassLoader().getResourceAsStream("Mybatis-configuration.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();List<User> selectList = sqlSession.selectList("com.william.mapper.UserMapper.findByUsername","a");for (Object o : selectList) {System.out.println(o);}sqlSession.close();}
3.测试结果
执行的SQL语句
Preparing: select * from user where username like '%a%'
Parameters:
三、在测试类参数中添加
1.UserMapper.xml
<select id="findByUsername" parameterType="java.lang.String" resultType="com.william.domain.User">select * from user where username like #{abc}</select>
2.TestMybatis
/*** 模糊查询* 通过用户名字模糊查询*/@Testpublic void findByUsername(){InputStream inputStream = Resources.class.getClassLoader().getResourceAsStream("Mybatis-configuration.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();List<User> selectList = sqlSession.selectList("com.william.mapper.UserMapper.findByUsername","%a%");for (Object o : selectList) {System.out.println(o);}sqlSession.close();}
3.测试结果
执行的SQL语句
Preparing: select * from user where username like ? Parameters: %a%(String)
Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项相关推荐
- 六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性
文章目录 六.MyBatis特殊的SQL 6.1 模糊查询 6.2 动态设置表名 6.3 校验名称唯一性 本人其他相关文章链接 六.MyBatis特殊的SQL 6.1 模糊查询 方式1:select ...
- sql语句模糊查询以及时间区间筛选
最近做了个接口参数是是查询数据库的项目,恶补了一下sql语句 模糊查询(最简单写法%任意%) select * from log where seatname like'%192.168.15.121 ...
- SQL语句模糊查询 JavaWeb 项目 dao层 【常用来做搜索框】
目的:搜索框,通过输入一些关键词,查询含有关键词的书名 通过一条查询语句能够实现用户所有的条件进行查询 刚开始的SQL语句如下: String sql = "SELECT * FROM bo ...
- 如何用SQL语句模糊查询数据库中的表名
有时候,数据库中的表名太多,而你又不是清楚地记得表名,那么你可以用下面SQL语句,模糊地查询你想要的表名: select table_name,tablespace_name,status,temp ...
- java sql语句模糊查询
Dao层使用like对于关键字的模糊查询 今天在做开发的时候需要使用like 对关键字进行模糊查询,可是总是写不好,多次尝试发现有许多坑,在此记录下: //错误,后面参数实际传入mysql服务中会变为 ...
- sql语句--模糊查询
模糊查询 1.like 表示模糊查询,这个没什么难的,已经见识过了. 2.配合like关键字,% 表示任意多个字符,表示这个玩意第一次知道,走着-- select * from students wh ...
- Mybatis的动态sql语句的查询
if <select id="findActiveBlogWithTitleLike"resultType="Blog">SELECT * FROM ...
- mybatis的动态sql及模糊查询
1.动态sql 使用类似于jstl表达式来实现 2.模糊查找 用一个对象来封装条件 步骤: 1)新建一个条件实体 package com.hy.mybatis.entity;public class ...
- 如何使用SQL进行模糊查询
SQL语句--模糊查询 执行数据库查询时,有完整查询和模糊查询之分. 一般模糊语句格式如下: SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件; 其中,关于条件,SQL提供了四种匹 ...
最新文章
- 从0学人脸识别,我花3小时复现了Eigenfaces For Recognition
- 零起点入门教程:用宜搭简单布局一个首页
- java 入门 博客园_javaweb入门
- 在.NET Core 中实现健康检查
- eclipse导出doc文档
- 关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
- 转行人工智能,不得不温故的数学基础知识
- 使用git上传项目到github
- java多线程thread使用_Java多线程——thread及runnable的基本使用及交替执行
- 最新app源码下载:200款优秀Android项目源码
- 进度计划中的时间相关术语
- (简单有效)vivo手机怎么不root激活Xposed框架
- 利用51单片机定时器模拟输出PWM波
- matlab数细胞实验图片,献给初学者:手把手教你做细胞计数实验
- Python获取屏幕坐标,自动发送信息
- [转] 彼得林奇:最珍贵的成长股投资精髓
- 找不到服务器或应用项目,版本找不到服务器应用程序、源文件或项目的解决办法...
- Linux 常用命令 Updating
- 用什么软件可以给照片加文字描述?
- 工业机械设备设计与艺术设计