首页 > 其他分享 >mybatis模糊查询

mybatis模糊查询

时间:2023-11-13 20:35:47浏览次数:22  
标签:SqlSessionUtil sname String StudentDao 模糊 List 查询 sqlSession mybatis

模糊查询在我们开发中是一项必不可缺少的重要内容。对于我们mybatis实现模糊查询有三种方式,以下具体的实现步聚:

1. 添加模糊查询的接口方法getStudentBySname

  1. List<Student> getStudentBySname1(String sname);
  2. List<Student> getStudentBySname2(String sname);
  3. List<Student> getStudentBySname3(String sname);

2.配置接口方法对应的sql文件

1) 配置占位符方式#{}

  1. <select id="getStudentBySname" parameterType="String" resultType="com.etime.pojo.Student">
  2. select * from student where sname like #{sname};
  3. </select>

2) 配置拼接字符串方式${}

  1. <select id="getStudentBySname2" parameterType="String" resultType="com.etime.pojo.Student">
  2. select * from student where sname like '%${value}%';
  3. </select>

我们在上面将原来的#{}占位符,改成了${value}。注意如果用模糊查询的这种写法,那么${value} 的写法就是固定的,不能写成其它名字。

3) 配置mysql函数方式concat

  1. <select id="getStudentBySname3" parameterType="String" resultType="com.etime.pojo.Student">
  2. select * from student where sname like concat('%',#{sname},'%');
  3. </select>

3. 模糊查询测试

  1. @Test
  2. public void t01() {
  3. SqlSession sqlSession = SqlSessionUtil.getSqlSession();
  4. StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
  5. String name = "安";
  6. String sname = "%" + name + "%";//最常用
  7. List<Student> list = studentDao.getStudentBySname1(sname);
  8. list.forEach(System.out::println);
  9. SqlSessionUtil.closeSqlSession(sqlSession);
  10. }
  11. @Test
  12. public void t02() {
  13. SqlSession sqlSession = SqlSessionUtil.getSqlSession();
  14. StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
  15. String sname = "安";
  16. List<Student> list = studentDao.getStudentBySname2(sname);
  17. list.forEach(System.out::println);
  18. SqlSessionUtil.closeSqlSession(sqlSession);
  19. }
  20. @Test
  21. public void t03() {
  22. SqlSession sqlSession = SqlSessionUtil.getSqlSession();
  23. StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
  24. String sname = "安";
  25. List<Student> list = studentDao.getStudentBySname3(sname);
  26. list.forEach(System.out::println);
  27. SqlSessionUtil.closeSqlSession(sqlSession);
  28. }

 查询结果:

标签:SqlSessionUtil,sname,String,StudentDao,模糊,List,查询,sqlSession,mybatis
From: https://www.cnblogs.com/echosada/p/17830082.html

相关文章

  • openGauss学习笔记-122 openGauss 数据库管理-设置密态等值查询-密态支持函数/存储过
    openGauss学习笔记-122openGauss数据库管理-设置密态等值查询-密态支持函数/存储过程密态支持函数/存储过程当前版本只支持sql和PL/pgSQL两种语言。由于密态支持存储过程中创建和执行函数/存储过程对用户是无感知的,因此语法和非密态无区别。密态等值查询支持函数存储过程新增系......
  • 如何在 Python 中执行 MySQL 结果限制和分页查询
    PythonMySQL限制结果限制结果数量示例1:获取您自己的Python服务器选择"customers"表中的前5条记录:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="您的用户名",password="您的密码",database="我的数据库"......
  • 如何在 Python 中执行 MySQL 结果限制和分页查询
    PythonMySQL限制结果限制结果数量示例1:获取您自己的Python服务器选择"customers"表中的前5条记录:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="您的用户名",password="您的密码",database="我的数据库"......
  • mybatis返回自增主键值
    对于自增主键在某些业务中保存一个对象后,需要使用到这个主键完成后续的业务逻辑,就需要获取该主键值。1、在接口中定义新增方法intaddStudent(Studentstudent);2、在mapper中配置新增配置方式一:<insertid="addStudent"parameterType="Student"useGeneratedKe......
  • Mysql数据库查询之模糊查询
    1,模糊查询有"明"这个字的数据。 2,模糊查询结尾是"明"的数据。 3,模糊查询开头是"明"的数据。 4,模糊查询以"明"为结尾的,长度为三个字的数据,如"李小明" 5,查询前三个字符为XX网,后面任意匹配。 6,可以用POSITION关键字进行模糊查询,等同于:"like'%明%'" ......
  • 分组查询
    分组函数分组函数:一波数据最后输出一个处理结果分组函数特点与说明举例(未分组:默认所以数据一组)分组函数的注意事项1.其他函数在运算Null的时候,直接返回null2.null不是一个值,他代表什么也没有注意点1在数据库的表中不可能存在每一个列的值都为Null的记录注意点2注......
  • mysql 国密加密字段排序和模糊搜索
    双写加密字段和明文分别存到两个字段中,查询只对明文进行操作. (备注:这种只是应对检查或者设计的方式,对于程序没有实际意义)使用函数利用mysql已有加解密的函数,在排序和模糊搜索之前解密数据,再进行排序或者模糊搜索.(备注:查询速度受到很大影响,不能使......
  • MySQL timestamp查询
    MySQL是一个常用的关系型数据库管理系统,广泛应用于各个行业的数据存储和处理中。在MySQL中,timestamp是一种常用的数据类型,用于表示日期和时间。本文将介绍如何使用MySQL中的timestamp进行查询操作,并给出相应的代码示例。1.timestamp的概述timestamp是MySQL中的一种日期和时间类......
  • MySQL 人脸向量,欧几里得距离相似查询
    前言    如标题,就是通过提取的人脸特征向量,写一个欧几里得SQL语句,查询数据库里相似度排前TOP_K个的数据记录。做法虽然另类,业务层市面上有现成的面部检索API,技术层现在有向量数据库。        用MySQL关系型存储128维人脸向量,先是进行欧式距离计算就要......
  • 传递参数或查询字符串给_Layout.cshtml中的顶部导航在ASP.NET中的实现方式
    在ASP.NET中,你可以通过多种方式将参数或查询字符串传递给_Layout.cshtml中的顶部导航。以下是两种常见的方法:1.使用ViewBag:ViewBag是ASP.NETMVC框架中的一个特性,它允许你在视图和控制器之间传递数据。你可以在控制器中设置ViewBag的值,然后在_Layout.cshtml中使用这些值。示例代码......