Mybatis-万能的Map&模糊查询

Map写法

假设,我们的实体类,或者数据库中的表,字段或者参数过多,我们应当考虑使用Map

Maaapper.xml 配置文件中

xml 复制代码
    <!--万能的map-->
    <insert id="addUser2" parameterType="map">
        insert into mybatis.user(id, name, pwd) values (#{userId}, #{userName}}, #{passWord});
    </insert>

接口中

java 复制代码
    // 万能的Map,用map传有个好处,不需要知道数据里面有什么数据 ,我们只需要查对应的字段
    int addUser2(Map<String,Object>  map);

测试方法中

java 复制代码
    @Test
    public void addUser2(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        Map<String,Object> map = new HashMap<String,Object>();
        map.put("userId",3);
        map.put("userName","cike_y");
        map.put("passWord","123456");
        int i = mapper.addUser2(map);
        if (i>0){
            System.out.println("成功插入"+i+"条数据");
        }
        sqlSession.commit();
        sqlSession.close();
    }
  • Map传递参数,直接在sql取出key即可!parameterType="map"
  • 对象传递参数,直接在sql中取出对象的属性即可!parameterType="Object"
  • 只有一个基本类型参数的情况下,可以直接在sql中取到! (可以不写参数类型)
  • 多个参数用Map,或者使用注解!

模糊查询

必要条件

  1. SQL语句执行的时候传递通配符 % %
plsql 复制代码
select * from mybatis.user where  name like "%"#{value}"%";
select * from mybatis.user where  name like '%${value}%';
  1. Java代码执行的时候,传递通配符 % %
java 复制代码
List<user> userList = mapper.getUserLike("%五%");

测试方法中

java 复制代码
    @Test
    public void getUserLike(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        List<user> userList = mapper.getUserLike("%五%");
        for (user user : userList){
            System.out.println(user);
        }
        sqlSession.close();
    }

接口中

java 复制代码
List<user> getUserLike(String value);

Mapper.xml配置文件中

xml 复制代码
    <select id="getUserLike"  resultType="com.cike.pojo.user">
        <!--select * from mybatis.user where  name like '%${value}%';-->
        select * from mybatis.user where  name like "%"#{value}"%";
    </select>
相关推荐
LOVE️YOU12 小时前
Python 中 Tuple 为什么有时可 Hash,有时不可 Hash?
开发语言·python·哈希算法
ym hyd 11113 小时前
试题库管理系统源码 Java+SpringBoot+Vue3 前后分离
java·vue.js·spring boot·毕设
李永奉13 小时前
C语言-指针函数与函数指针及回调函数的使用
c语言·开发语言
小oo呆13 小时前
【学习心得】迭代器和可迭代对象
开发语言·python
AC赳赳老秦13 小时前
采集行为合规自检:OpenClaw 自动校验 robots 协议与采集频率,规避违规采集风险
java·开发语言·c++·python·php·deepseek·openclaw
钱栈up13 小时前
mvn compile 卡死在 javac 阶段:一次类型不匹配的排查与修复
java·开发语言
迅猛龙办公室13 小时前
Python输出当前计算机的系统日期和时间
开发语言·前端·python
杨丰玮41813 小时前
C语言基础知识(一)————各类符号的含义与输入输出库(stdio)
c语言·开发语言
程序猿编码14 小时前
工业视觉多任务方案:可编程梯度信息视觉框架,训练评估 + C++ 部署完整实战
开发语言·c++·视觉·推理引擎
吠品15 小时前
CSS图片模糊过渡:一个transition加filter就够
java·数据库·notepad++