MyBatis—操作数据库(二)

简介: MyBatis—操作数据库(二)

编写代码


  1. 添加注解@SpringBootTest
  2. 在对应的单元测试方法中编写代码

Assertions—断言


如果断言失败, 后续代码将不会执行

方法 说明
Assertions.assertEquals() 判断两个对象或两个原始类型是否相等
Assertions.assertNotEquals() 判断两个对象或两个原始类型是否不等
Assertions.assertSame() 判断两个对象的引用是否指向同一个对象
Assertions.assertNotSame() 判断两个对象的引用是否指向不同的对象
Assertions.assertTrue() 判断给定的布尔值是否为 true
Assertions.assertFalse() 判断给定的布尔值是否为 false
Assertions.assertNull() 判断给定的对象引用是否为 null
Assertions.assertNotNull() 判断给定的对象引用是否不为 null

🔎MyBatis—新增


使用show create table userinfo查看哪些字段为非空(NOT NULL)

  • username → NOT NULL
  • password → NOT NULL
  • createtime → NOT NULL(但含有默认值)
  • updatetime → NOT NULL(但含有默认值)

新增用户信息(不返回用户 Id)


新增用户信息 → 此处使用的数据表为 userinfo(用户) 表

新增操作默认返回值为 Int 类型

新增操作的标签为<insert></insert>

使用<insert></insert>标签时需搭配 id 属性

在 Interface 中定义方法


/**
* 新增用户信息
* @author bibubibu
* @date 2023/7/2
*/
int add(Userinfo userinfo);

在 xml 中实现方法


<insert id="add">
    insert into userinfo(username, password) values(#{username}, #{password})
</insert>

注意🍂

对于values(#{username}, #{password})

username 对应的是实体类中的属性(不是字段名)

password 对应的是实体类中的属性(不是字段名)

单元测试验证效果


非第一次添加单元测试时, 可能会出现 Error

点击 OK 即可


测试查看效果

针对当前代码, 无法得到添加对象成功后对象的 id🍂

userinfo 表中的 id 是自增的

对于当前运行结果, 表示已添加成功, 但无法得到添加对象的 id

新增用户信息(返回用户 Id)


返回用户 Id, 需在<insert></insert>标签添加useGeneratedKeyskeyProperty

  • useGeneratedKeys, 是否使用生成的主键
  • keyProperty, 将生成的主键赋值给哪个属性

在 Interface 中定义方法


/**
* 新增用户信息(返回用户 Id)
* @author bibubibu
* @date 2023/7/2
*/
int addAndRetId(UserInfo userInfo);

在 xml 中实现方法


<insert id="addAndRetId" useGeneratedKeys="true" keyProperty="id">
    insert into userinfo(username, password) values(#{username}, #{password})
</insert>

注意🍂

keyProperty="id"对应的是类中的属性, 而非数据库中的字段

  • Property, 属性
  • Column, 字段

单元测试验证效果


🔎MyBatis—修改


修改用户信息


修改用户信息 → 此处使用的数据表为 userinfo(用户) 表

修改操作默认返回值为 Int 类型

修改操作的标签为<update></update>

使用<update></update>标签时需搭配 id 属性

在 Interface 中定义方法


/**
* 修改用户信息
* @author bibubibu
* @date 2023/7/3
*/
int updateUserInfo(UserInfo userInfo);

在 xml 中实现方法


<update id="updateUserInfo">
    update userinfo set username = #{username}, password = #{password} where id = #{id}
</update>

单元测试验证效果


🔎MyBatis—配置打印执行的 SQL


# 设置 Mybatis 的 xml 保存路径
mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml
  configuration: # 配置打印 MyBatis 执行的 SQL
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 设置日志级别
logging:
  level:
    com:
      example:
        demo: debug

效果测试🍭

🔎MyBatis—删除


删除用户信息


删除用户信息 → 此处使用的数据表为 userinfo(用户) 表

删除操作默认返回值为 Int 类型

删除操作的标签为<delete></delete>

使用<delete></delete>标签时需搭配 id 属性

在 Interface 中定义方法


/**
* 删除用户信息
* @author bibubibu
* @date 2023/7/3
*/
int delUserInfo(@Param("id") Integer id);

相关文章
|
JavaScript 关系型数据库 MySQL
❤Nodejs 第六章(操作本地数据库前置知识优化)
【4月更文挑战第6天】本文介绍了Node.js操作本地数据库的前置配置和优化,包括处理接口跨域的CORS中间件,以及解析请求数据的body-parser、cookie-parser和multer。还讲解了与MySQL数据库交互的两种方式:`createPool`(适用于高并发,通过连接池管理连接)和`createConnection`(适用于低负载)。
21 0
|
2月前
|
SQL 数据库连接 数据库
你不知道ADo.Net中操作数据库的步骤【超详细整理】
你不知道ADo.Net中操作数据库的步骤【超详细整理】
16 0
|
1天前
|
XML Java 数据库连接
Springboot整合mybatisPlus操作数据库
MyBatis-Plus是MyBatis的增强工具,简化开发、提高效率。它提供官网文档,便于集成到SpringBoot项目中。集成步骤包括添加mybatis-plus-boot-starter和数据库驱动依赖,配置数据源,扫描Mapper类包。Mapper接口继承BaseMapper即可使用基本的CRUD操作。示例代码展示了Service层的增删改查实现。MyBatisPlus还支持逻辑删除、自动填充等功能,同时可与Mybatis XML配合使用,通过调整配置指定XML映射文件位置。
|
1天前
|
关系型数据库 MySQL Go
数据库的事务操作
数据库的事务操作
|
1天前
|
关系型数据库 MySQL Go
数据库的事务操作 | 青训营
数据库的事务操作 | 青训营
|
6天前
|
算法 数据库
Mybatis-Plus实现常规增删改操作
Mybatis-Plus实现常规增删改操作
|
9天前
|
SQL Java 数据库连接
Javaweb之Mybatis的基础操作之新增和更新操作的详细解析
Javaweb之Mybatis的基础操作之新增和更新操作的详细解析
10 0
|
22天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
1月前
|
数据库
MybatisPlus属性字段为数据库关键字
MybatisPlus属性字段为数据库关键字
14 0
|
2月前
|
缓存 NoSQL 数据库
[Redis]——数据一致性,先操作数据库,还是先更新缓存?
[Redis]——数据一致性,先操作数据库,还是先更新缓存?