初学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();
    }
相关推荐
whn197712 小时前
如何避免以root用户执行达梦
数据库
brave_zhao13 小时前
openEuler下安装tar包解压工具
linux·服务器·数据库
接着奏乐接着舞14 小时前
大模型开发 agent 知识库
java
xuhaoyu_cpp_java14 小时前
SpringBoot学习(四)
java·经验分享·spring boot·笔记·学习
fu159357456814 小时前
【边缘计算实战】P1:从零搭建边云任务卸载仿真实验台(Python 可复现)
数据库·python·边缘计算
plainGeekDev14 小时前
kapt 替换为 KSP
android·java·kotlin
隔壁阿布都14 小时前
MySQL 间隙锁死锁问题处理
数据库·mysql
蜡台15 小时前
通过Gradle脚本声明更改Java变量
android·java·开发语言·python·kotlin·gradle·groovy
qiuziqiqi15 小时前
Shopify推送订单及异常状态错误码说明
数据库
程序员天天困15 小时前
后端视角看 EventBus:发布订阅总线的原理、场景与用法
java·后端