MyBatis的CRUD中的不同参数绑定查询实现

 更新时间:2023年12月20日 11:23:13   作者:冰冰的伪善  
本文主要介绍了MyBatis的CRUD中的不同参数绑定查询实现,主要包括单个参数传递绑定,序号参数传递绑定,注解参数传递绑定,pojo(对象)参数传递绑定,map参数传递绑定这几种类型,具有一定的参考价值,感兴趣的可以了解一下

com.by.pojo下的User类

package com.by.pojo;

import java.io.Serializable;
import java.util.Date;

public class User implements Serializable {
    private Integer id;
    private String username;
    private Date birthday;
    private String sex;
    private String address;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", birthday=" + birthday +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

测试类

private SqlSession sqlSession;
    private InputStream inputStream;

    @Before
    public void init() throws IOException {
        //加载配置文件
        String resource = "mybatis-config.xml";
        inputStream = Resources.getResourceAsStream(resource);

        //创建SessionFactory
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //使用数据的会话实例
        sqlSession = sessionFactory.openSession();
    }
​
@After
    public void close() throws IOException {
        sqlSession.close();
        inputStream.close();
    }

​

单个参数传递绑定

在UserDao接口中:

User getUserById(Integer id);

在UserDao.xml中:

<!--    传递单个参数-->
    <select id="getUserById" parameterType="java.lang.Integer" resultType="com.by.pojo.User">
        select * from user where id=#{id};
    </select>

测试类:

@Test
    //传递单个参数有
    public void testgetUserById() throws IOException {
        //返回接口的代理类
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        User user = userDao.getUserById(43);
        System.out.println(user);
    }

序号参数传递绑定

在UserDao接口中:

//序号多个参数
    User getUser(Integer id, String username);

在UserDao.xml中:

<!--    序号传递多个参数-->
    <select id="getUser" resultType="com.by.pojo.User">
    select * from user where id=#{arg0} and username=#{arg1};
    select * from user where id=#{param1} and username=#{param2};
    </select>

测试类:

@Test
    //序号传递多个参数
    public void testgetUser() throws IOException {
        //返回接口的代理类
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        User user = userDao.getUser(43, "俞莲舟");
        System.out.println(user);
    }

注解参数传递绑定

在UserDao接口中:

//注解多个参数
    User getUser2(@Param("id") Integer id, @Param("username") String username);

在UserDao.xml中:

<!--    注解传递多个参数-->
    <select id="getUser2"  resultType="com.by.pojo.User">
        select * from user where id=#{id} and username=#{username};
    </select>

测试类:

@Test
    //注解传递多个参数
    public void testgetUser2() throws IOException {

        //返回接口的代理类
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        User user = userDao.getUser2(43, "俞莲舟");
        System.out.println(user);
    }

pojo(对象)参数传递绑定

在UserDao接口中:

//pojo参数
    User getUser3(User user);

在UserDao.xml中:

<!--    pojo传递多个参数-->
    <select id="getUser3" parameterType="com.by.pojo.User" resultType="com.by.pojo.User">
        select * from user where id=#{id} and username=#{username};
    </select>

测试类:

@Test
    //pojo(对象)传递多个参数
    public void testgetUser3() throws IOException {
        //返回接口的代理类
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        User userParam = new User();
        userParam.setId(43);
        userParam.setUsername("俞莲舟");
        User user = userDao.getUser3(userParam);
        System.out.println(user);
    }

map参数传递绑定

在UserDao接口中:

//map参数
    User getUser4(Map<String, Object> map);

在UserDao.xml中:

</select>
    <!--    map传递多个参数-->
    <select id="getUser4" parameterType="java.util.Map" resultType="com.by.pojo.User">
        select * from user where id=#{id} and username=#{username};
    </select>

测试类:

@Test
    //map传递多个参数
    public void testgetUser4() throws IOException {
        //返回接口的代理类
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        HashMap<String, Object> map = new HashMap<>();
        map.put("id", 43);
        map.put("username", "俞莲舟");
        User user = userDao.getUser4(map);
        System.out.println(user);
    }

到此这篇关于MyBatis的CRUD中的不同参数绑定查询实现的文章就介绍到这了,更多相关MyBatis CRUD参数绑定查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Spring Boot集成教程之异步调用Async

    Spring Boot集成教程之异步调用Async

    在项目中,当访问其他人的接口较慢或者做耗时任务时,不想程序一直卡在耗时任务上,想程序能够并行执行,我们可以使用多线程来并行的处理任务,也可以使用spring提供的异步处理方式@Async。需要的朋友们下面来一起看看吧。
    2018-03-03
  • 在Spring应用中进行单元测试的解析和代码演示

    在Spring应用中进行单元测试的解析和代码演示

    在Spring应用中进行单元测试通常涉及到Spring TestContext Framework,它提供了丰富的注解和工具来支持单元测试和集成测试,以下是如何在Spring应用中进行单元测试的详细解析和代码演示,需要的朋友可以参考下
    2024-06-06
  • 分享7款开源Java反编译工具

    分享7款开源Java反编译工具

    今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程。尤其是像.NET、Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码
    2014-09-09
  • 详解JavaWeb如何实现文件上传和下载功能

    详解JavaWeb如何实现文件上传和下载功能

    这篇文章主要介绍了如何利用JavaWeb实现文件的上传和下载功能,文中的示例代码讲解详细,对我们的学习或工作有一定的帮助,感兴趣的小伙伴可以学习一下
    2021-12-12
  • Java使用迭代器Iterator遍历集合

    Java使用迭代器Iterator遍历集合

    Iterator对象称为迭代器(设计模式的一种),主要用于遍历 Collection 集合中的元素。本文就来和大家详细聊聊Java如何使用迭代器Iterator实现遍历集合,感兴趣的可以跟随小编一起学习一下
    2022-12-12
  • 利用IDEA社区版创建SpringBoot项目的详细图文教程

    利用IDEA社区版创建SpringBoot项目的详细图文教程

    大家应该都知道Idea社区版本,默认是不能创建SpringBoot项目的,下面这篇文章主要给大家介绍了关于利用IDEA社区版创建SpringBoot项目的详细图文教程,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • mybatis plus时间判断问题

    mybatis plus时间判断问题

    在MyBatisPlus中,时间判断可以通过XML转义的方式实现,例如使用>、<、<>、>=、<=进行比较,这种方法涉及到SQL符号的转义,确保查询语句的安全性和准确性,特别是在处理大于、小于和等于等逻辑时,正确的转义能够防止SQL注入等安全问题
    2024-09-09
  • SpringBoot起步依赖和自动配置基本介绍

    SpringBoot起步依赖和自动配置基本介绍

    这篇文章主要介绍了SpringBoot起步依赖和自动配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • 解决idea2020 maven无法自动导包的问题

    解决idea2020 maven无法自动导包的问题

    这篇文章主要介绍了解决idea2020 maven无法自动导包的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • JAVA调用SAP WEBSERVICE服务实现流程图解

    JAVA调用SAP WEBSERVICE服务实现流程图解

    这篇文章主要介绍了JAVA调用SAP WEBSERVICE服务实现流程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10

最新评论