MyBatis学习笔记-04-模糊查询


模糊查询的几种方式.

  • java代码执行的时候,传递通配符%%

    @Test
    public void getUserByLike(){
    
        try(SqlSession sqlSession = MybatisUtils.getSqlSession();) {
            UserMapper userDao = sqlSession.getMapper(UserMapper.class);
            //java中传递 通配符
            List<User> users = userDao.getUserByLike("%liu%");
            System.out.println(users);
            users.stream().forEach(System.out::println);
        }
    }
    <select id="getUserByLike" parameterType="String"  resultType="pojo.User">
        select * from mybatis.user where name like #{name};
    </select>
  • 在Sql中拼接通配符

    <select id="getUserByLike" parameterType="String"  resultType="pojo.User">
        //sql中 拼接
        select * from mybatis.user where name like "%"#{name}"%";
    </select>
  • 使用concat连接

    <select id="getUserByLike" parameterType="String"  resultType="pojo.User">
        select * from mybatis.user where name like concat('%',#{name},'%');
    </select>

补充.

${}#{}区别.

id = 1

#{id} ==> “1” 可以防止SQL注入

${id} ==> 1 不能防止SQL注入 一般用于传入数据库对象,例如传入表名,字段名。。。

这个博客总结的很好:https://blog.csdn.net/u013552450/article/details/72528498/


文章作者: liuminkai
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 liuminkai !
评论
 上一篇
sql注入 sql注入
Sql注入.1、SQL注入原理. 攻击者在页面提交恶意代码 服务器未对提交参数进行过滤或过滤不足 攻击者利用拼接sql语句方式获取数据库敏感信息 2、简单sql注入演示.服务器 执行的SQL语句 : select * from user
2020-07-23 liuminkai
下一篇 
MyBatis学习笔记-03-万能Map MyBatis学习笔记-03-万能Map
万能Map. 假设,我们的实体类 或者 数据库中的表,字段或者参数过多,可以考虑使用Map 很像构造器 (带参,但是参数数量,类型,可以变化) 给字段起别名 其实可以在实体类中 生成所有带参的构造器,但是事先写好,使用Map按需求写就行
2020-07-22
  目录