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);

相关文章
|
1月前
|
SQL Java 数据库连接
深入 MyBatis-Plus 插件:解锁高级数据库功能
Mybatis-Plus 提供了丰富的插件机制,这些插件可以帮助开发者更方便地扩展 Mybatis 的功能,提升开发效率、优化性能和实现一些常用的功能。
236 26
深入 MyBatis-Plus 插件:解锁高级数据库功能
|
1月前
|
SQL 安全 Java
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的 SQL 语句,从而提高开发效率并减少 SQL 注入的风险。
33 1
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
|
1月前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
2月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
258 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
2月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
77 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
4月前
|
SQL 关系型数据库 MySQL
解决:Mybatis-plus向数据库插入数据的时候 报You have an error in your SQL syntax
该博客文章讨论了在使用Mybatis-Plus向数据库插入数据时遇到的一个常见问题:SQL语法错误。作者发现错误是由于数据库字段中使用了MySQL的关键字,导致SQL语句执行失败。解决方法是将这些关键字替换为其他字段名称,以避免语法错误。文章通过截图展示了具体的操作步骤。
|
4月前
|
XML SQL JavaScript
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
这篇文章介绍了如何在Vue页面中结合SpringBoot、MyBatis、ElementUI和ECharts,实现从数据库获取数据并展示为图表的过程,包括前端和后端的代码实现以及遇到的问题和解决方法。
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
|
4月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
399 0
|
5月前
|
Oracle 关系型数据库 Java
实时计算 Flink版操作报错合集之cdc postgres数据库,当表行记录修改后报错,该如何修改
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
5月前
|
SQL 监控 关系型数据库
实时计算 Flink版操作报错合集之在设置监控PostgreSQL数据库时,将wal_level设置为logical,出现一些表更新和删除操作报错,怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。