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>
相关推荐
MY_TEUCK9 分钟前
【Java 后端】SpringBoot 登录认证与会话跟踪实战(JWT + Filter/Interceptor)
java·开发语言·spring boot
今天长肉了吗19 分钟前
银行风控项目踩坑实录:指标跑了6小时,风险评分全挂了
java
QQ24221997920 分钟前
基于python+微信小程序的家教管理系统_mh3j9
开发语言·python·微信小程序
随读手机1 小时前
多式联运信息交互平台完整方案(2026版)
java·ai·eclipse·云计算·区块链
沐知全栈开发1 小时前
JavaScript 条件语句
开发语言
RSTJ_16251 小时前
PYTHON+AI LLM DAY THREETY-SEVEN
开发语言·人工智能·python
清水白石0081 小时前
《Python性能深潜:从对象分配开销到“小对象风暴”的破解之道(含实战与最佳实践)》
开发语言·python
Je1lyfish1 小时前
CMU15-445 (2025 Fall/2026 Spring) Project#3 - QueryExecution
linux·c语言·开发语言·数据结构·数据库·c++·算法
许彰午1 小时前
03-二叉树——从递归遍历到非递归实现
java·算法
nj01282 小时前
Spring 循环依赖详解:三级缓存、早期引用、AOP 代理与懒加载
java·spring·缓存