万隆的笔记 万隆的笔记
博文索引
笔试面试
  • 在线学站

    • 菜鸟教程 (opens new window)
    • 入门教程 (opens new window)
    • Coursera (opens new window)
  • 在线文档

    • w3school (opens new window)
    • Bootstrap (opens new window)
    • Vue (opens new window)
    • 阿里开发者藏经阁 (opens new window)
  • 在线工具

    • tool 工具集 (opens new window)
    • bejson 工具集 (opens new window)
    • 文档转换 (opens new window)
  • 更多在线资源
  • Changlog
  • Aboutme
GitHub (opens new window)
博文索引
笔试面试
  • 在线学站

    • 菜鸟教程 (opens new window)
    • 入门教程 (opens new window)
    • Coursera (opens new window)
  • 在线文档

    • w3school (opens new window)
    • Bootstrap (opens new window)
    • Vue (opens new window)
    • 阿里开发者藏经阁 (opens new window)
  • 在线工具

    • tool 工具集 (opens new window)
    • bejson 工具集 (opens new window)
    • 文档转换 (opens new window)
  • 更多在线资源
  • Changlog
  • Aboutme
GitHub (opens new window)
  • MyBatis

    • MyBatis 简介
    • MyBatis简单应用
    • MyBatis常⽤配置
    • MyBatis 单表 CRUD 操作
      • INSERT
      • DELETE
      • 查询单个对象
      • UPDATE
      • 使用模糊查询
    • MyBatis动态 SQL
    • MyBatis复杂映射
    • MyBatis注解开发
    • MyBatis缓存
    • MyBatis插件
    • ⾃定义持久层框架
    • MyBatis架构原理
    • MyBatis源码剖析
    • MyBatis设计模式
  • Spring-MyBatis

  • MyBatis-Plus

  • MyBatis
  • MyBatis
2022-02-01
目录

MyBatis 单表 CRUD 操作

# MyBatis 单表 CRUD 操作

本章主要内容是带领大家学习 MyBatis 的单表 CRUD 的相关操作方法

# INSERT

继续以 tb_user 表为例,修改映射文件,增加如下配置:

<insert id="insert">
    INSERT INTO tb_user (
      id,
      username,
      password,
      phone,
      email,
      created,
      updated
    )
    VALUES
      (
        #{id},
        #{username},
        #{password},
        #{phone},
        #{email},
        #{created},
        #{updated}
      )
</insert>

单元测试代码如下:

@Test
public void testInsert() {
    TbUser tbUser = new TbUser();
    tbUser.setEmail("admin@163.com");
    tbUser.setPassword("admin");
    tbUser.setPhone("15888888888");
    tbUser.setUsername("wenwl");
    tbUser.setCreated(new Date());
    tbUser.setUpdated(new Date());
    tbUserService.insert(tbUser);
}

# DELETE

继续以 tb_user 表为例,修改映射文件,增加如下配置:

<delete id="delete">
    DELETE FROM tb_user WHERE id = #{id}
</delete>

单元测试代码如下:

@Test
public void testDelete(){

    TbUser tbUser = new TbUser();
    tbUser.setId(39L);
    tbUserService.delete(tbUser);

}

# 查询单个对象

继续以 tb_user 表为例,修改映射文件,增加如下配置:

<select id="getById" resultType="TbUser">
    SELECT
      a.id,
      a.username,
      a.password,
      a.phone,
      a.email,
      a.created,
      a.updated
    FROM
      tb_user AS a
    WHERE
      a.id = #{id}
</select>

单元测试代码如下:

@Test
public void testGetById() {

    TbUser tbUser = tbUserService.getById(37L);
    System.out.println(tbUser);

}

# UPDATE

继续以 tb_user 表为例,修改映射文件,增加如下配置:

<update id="update">
    UPDATE
      tb_user
    SET
      username = #{username},
      password = #{password},
      phone = #{phone},
      email = #{email},
      created = #{created},
      updated = #{updated}
      WHERE id = #{id}
</update>

单元测试代码如下:

@Test
public void testUpdate() {
    TbUser tbUser = tbUserService.getById(37L);
    tbUser.setPassword(DigestUtils.md5DigestAsHex("admin".getBytes()));

    tbUserService.update(tbUser);
}

# 使用模糊查询

继续以 tb_user 表为例,修改映射文件,增加如下配置:

<select id="selectByName" resultType="TbUser">
    SELECT
      a.id,
      a.username,
      a.password,
      a.phone,
      a.email,
      a.created,
      a.updated
    FROM
      tb_user AS a
    WHERE
      a.username LIKE CONCAT ('%', #{username}, '%')
</select>

在进行模糊查询时,需要进行字符串的拼接。SQL 中的字符串的拼接使用的是函数 concat(arg1, arg2, …) 。注意不能使用 Java 中的字符串连接符 +。

单元测试代码如下:

@Test
public void testSelectByName() {
    List<TbUser> tbUsers = tbUserService.selectByName("niu");
    for (TbUser tbUser : tbUsers) {
        System.out.println(tbUser.getUsername());
    }
}

上次更新: 5/30/2023, 10:53:02 PM
MyBatis动态 SQL

MyBatis动态 SQL→

最近更新
01
2025
01-15
02
Elasticsearch面试题
07-17
03
Elasticsearch进阶
07-16
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式