MyBatis中的mapper.xml配置教程

 更新时间:2024年01月02日 14:35:53   作者:象鼻山大王  
这篇文章主要介绍了MyBatis中的mapper.xml配置,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

 1、配置获取添加对象的ID

<!--    配置我们的添加方法,获取到新增加了一个monster对象的id
        useGeneratedKeys="true" 意思是需要获取新加对象的主键值
        keyProperty="monster_id" 表示将获取到的id值赋值给Monster对象的monster_id属性
-->
    <insert id="addMonster" parameterType="Monster"
    useGeneratedKeys="true" keyProperty="monster_id">
        INSERT INTO mybatis_monster_ (monster_id,age,birthday,email,gender,name,salary)
        VALUES (#{monster_id},#{age},#{birthday},#{email},#{gender},#{name},#{salary})
    </insert>
  @Test
    public void testAdd() {
        Monster monster = new Monster();
        for(int i=10;i<20;i++) {
            monster.setAge(100+i);
            monster.setBirthday(new Date());
            monster.setEmail("123@qq.com");
            monster.setGender(1);
            monster.setSalary(8928.00);
            monster.setName("银角"+i);
            monsterMapper.addMonster(monster);
            System.out.println("获取添加的对象id" + monster.getMonster_id());
        }
    }

2.parameterType(输入参数类型)的再说明

(1)传入简单类型,比如按照id查Person   (单条件查询)

(2)传入POJQ类型,查询时需要有多个筛选条件(将多个条件封装到pojo中,将pojo作为参数传入)

比如 请查询monster_id =1或者 name='白骨精'的妖怪.

注意:当有多个条件时,传入的参数就是Pojo类型的Java对象,比如这里的Monster对象,

2.1如何模糊查询

        当我们传入的是String时,可以使用 ${}接收参数

首先,在MonsterMapper中,写这个方法, 查询名字当中含有“狐狸精”的妖怪

public Monster findByName(String name);

然后,映射文件中写这个语句,注意${name}

<select id="findByName" resultType="com.bin.mybatis.entity.Monster" parameterType="String">
       SELECT * FROM mybatis_monster_
       WHERE name like '%${name}%'
   </select>

3、实现参数是HashMap

        我们可以使用HashMap来实现多条件的查询

 
//    查询id>10而且salary大于40的所有妖怪
    public List<Monster> findMonsterByIdAndSalary(Map<String,Object> map);
    <select id="findMonsterByIdAndSalary" resultType="com.bin.mybatis.entity.Monster" parameterType="Map">
        SELECT * FROM mybatis_monster_
        WHERE monster_id>#{monster_id} AND salary>#{salary}
    </select>
  @Test
    public void findMonsterByIdAndSalary(){
        Map<String, Object> map = new HashMap<String,Object>();
        map.put("monster_id", 6);
        map.put("salary", 1234);
        List<Monster> monsterList = monsterMapper.findMonsterByIdAndSalary(map);
        for (Monster monster : monsterList) {
            System.out.println(monster);
        }
    }

4、返回参数是map

 //    查询id>10而且salary大于40的所有妖怪
    //  第二种写法:参数和返回类型都是Map
    public Map<String,Object> findMonsterByIdAndSalary2(Map<String,Object> map);
  <select id="findMonsterByIdAndSalary2" resultType="Map" parameterType="Map">
        SELECT * FROM mybatis_monster_
        WHERE monster_id>#{monster_id} AND salary>#{salary}
    </select>
 
    @Test
    public void findMonsterByIdAndSalary(){
        Map<String, Object> map = new HashMap<String,Object>();
        map.put("monster_id", 6);
        map.put("salary", 1234);
        List<Monster> monsterList = monsterMapper.findMonsterByIdAndSalary(map);
        for (Monster monster : monsterList) {
            System.out.println(monster);
        }
    }

到此这篇关于MyBatis中的mapper.xml配置的文章就介绍到这了,更多相关MyBatis mapper.xml配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • spring cloud gateway请求跨域问题解决方案

    spring cloud gateway请求跨域问题解决方案

    这篇文章主要介绍了spring cloud gateway请求跨域问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 关于idea更新到2020.2.3无法创建web项目原因 library is not specified

    关于idea更新到2020.2.3无法创建web项目原因 library is not specified

    这篇文章主要介绍了关于idea更新到2020.2.3无法创建web项目原因 library is not specified,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Java阻塞延迟队列DelayQueue原理及使用详解

    Java阻塞延迟队列DelayQueue原理及使用详解

    这篇文章主要介绍了Java阻塞延迟队列DelayQueue原理及使用详解,阻塞队列是一个支持两个附加操作的队列,这两个附加的操作是:在队列为空时,从队列中获取元素的消费者线程会一直等待直到队列变为非空,需要的朋友可以参考下
    2023-12-12
  • Jetbrains系列产品重置试用思路详解

    Jetbrains系列产品重置试用思路详解

    这篇文章主要介绍了Jetbrains系列产品重置试用思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • springMVC实现文件上传和下载

    springMVC实现文件上传和下载

    这篇文章主要为大家详细介绍了springMVC实现文件上传和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • MyBatis-Plus使用动态表名分表查询的实现

    MyBatis-Plus使用动态表名分表查询的实现

    本文主要介绍了MyBatis-Plus使用动态表名分表查询,主要是动态修改表名的几种常见场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-11-11
  • RocketMQ的两种消费模式详解

    RocketMQ的两种消费模式详解

    这篇文章主要介绍了RocketMQ的两种消费模式详解,RocketMQ主要提供了两种消费模式,集群消费以及广播消费,我们只需要在定义消费者的时候通过setMessageModel(MessageModel.XXX),需要的朋友可以参考下
    2023-10-10
  • Java线程通讯的实现方法总结

    Java线程通讯的实现方法总结

    线程通讯指的是多个线程之间通过共享内存或消息传递等方式来协调和同步它们的执行,线程通讯的实现方式主要有以下两种:共享内存和消息传递,本文详细介绍了Java线程是如何通讯的,感兴趣的同学可以参考阅读
    2023-05-05
  • Java如何使用正则表达式从字符串中提取数字

    Java如何使用正则表达式从字符串中提取数字

    这篇文章主要介绍了Java如何使用正则表达式从字符串中提取数字问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 深入分析Spring Cloud 负载均衡器架构选型

    深入分析Spring Cloud 负载均衡器架构选型

    文章详细介绍了OpenFeign的初始化和执行流程,包括FeignClient注解、FeignClientsRegistrar类、FeignClientFactoryBean工厂类、Targeter接口及其实现等,感兴趣的朋友一起看看吧
    2024-12-12

最新评论