初学Mybatis之 Map 传参与模糊查询

实体类或数据库中的表,字段或参数过多,考虑使用Map

接口里定义方法

java 复制代码
int addUser(Map<String,Object> map);

mapper.xml:

parameterType 参数类型设置为 map

sql 语句的 values 不一定要与数据库中的表字段相同

XML 复制代码
    <insert id="addUser" parameterType="map">
        insert into mybatis.user(id,name,pwd) values(#{userId},#{userName},#{userPwd});
    </insert>

测试类:

先 new 一个 HashMap

再调用 put 方法添加数据

java 复制代码
    @Test
    public void addUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        Map<String, Object> map = new HashMap<String, Object>();

        map.put("userId",5);
        map.put("userName","张三5");
        map.put("userPwd","123");
        
        mapper.addUser(map);
        
        sqlSession.commit();

        sqlSession.close();
    }

Map 传递参数,直接在 sql 中取出 key 即可,parameterType="map"

对象传递参数,直接在 sql 中取对象的属性即可,parameterType="Object"

只有一个基本类型参数的情况下,可以直接在 sql 中取到

多个参数用 Map,或者注解

模糊查询:

写个接口

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

mapper.xml:

XML 复制代码
    <select id="getUserLike" resultType="com.demo.pojo.User">
        select * from mybatis.user where name like #{value}
    </select>

测试类:

模糊查询加通配符%

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();
    }
相关推荐
会编程的吕洞宾32 分钟前
LangChain4j Tool Calling 实战:让大模型自动查数据库发邮件,一句话搞定复杂任务
数据库·人工智能
evans在进步1 小时前
LeetCode 2 两数相加:链表模拟加法,Java 图解进位过程
java·leetcode·链表
知行合一。。。1 小时前
DeepAgents--01--Agent和OpenClaw的相关概念
android·数据库
2401_858286111 小时前
OS82.【Linux】设计线程池
java·linux·运维·服务器·开发语言·算法·线程池
数据知道2 小时前
IDOR 不安全的直接对象引用:API 越权实战检测
java·开发语言·网络·安全·网络安全
堕落年代2 小时前
Ollama CPU 推理大提示词优化实测报告(细致化数据版)
java·后端·spring
c238562 小时前
# Mini OJ — 项目详解文档
开发语言·数据库·c++
KobeSacre2 小时前
ForkJoinPool 源码
java
DFT计算杂谈2 小时前
C4T交错磁体中的超导交织序向列涨落与自旋流环涨落的选择机制
大数据·数据库·人工智能
2601_965798472 小时前
My Honest Review of Rank Math SEO Pro for Beginner Sites
数据库·人工智能·php