【JavaEE】 MyBatis -- 查询操作

14 篇文章 0 订阅
4 篇文章 0 订阅

1. MyBatis 初始

MyBatis 是更简单完成程序和数据库交互的⼯具,也就是更简单的操作和读取数据库⼯具。(相较于jdbc繁琐的重复操作)

MyBatis 在整个框架中的定位,框架交互流程图 :
在这里插入图片描述
MyBatis 也是⼀个 ORM 框架,ORM(Object Relational Mapping),即对象关系映射。在⾯向对象编程语⾔中,将关系型数据库中的数据与对象建⽴起映射关系,进⽽⾃动的完成数据与对象的互相转换:

  1. 将输⼊数据(即传⼊对象)+SQL 映射成原⽣ SQL
  2. 将结果集映射为返回对象,即输出对象

ORM 把数据库映射为对象:

  • 数据库表(table)–> 类(class)
  • 记录(record,⾏数据)–> 对象(object)
  • 字段(field) --> 对象的属性(attribute)

⼀般的 ORM 框架,会将数据库模型的每张表都映射为⼀个 Java 类。

2. MyBatis 使用

2.1 先使用SQL语句创建出对应的数据库和表

在这里插入图片描述

2.2 添加MyBatis框架支持

如果是对之前的 Spring 项⽬进⾏升级,使用EditStarters插件即可:
在这里插入图片描述
在这里插入图片描述
添加了 MyBatis 之后,还需要添加 MySQL 驱动呢;
原因:MyBatis类似一个数据库平台,而数据库种类有很多(mysql,SQL server,DB2…),因此我们需要具体使用哪种数据库就需要添加对应数据库驱动支持。

如果是新项⽬添加MyBatis,在创建项目时选中对应即可:
在这里插入图片描述

4.3 连接字符串和MyBatis的xml文件配置

4.3.1 配置连接字符串

在这里插入图片描述

# 配置数据库连接
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mycnblog?characterEncoding=utf8
    username: root
    password: 1963
    driver-class-name: com.mysql.cj.jdbc.Driver

注意:如果使⽤ MySQL 是 5.x 之前的使⽤的“com.mysql.jdbc.Driver”
如果是⼤于 5.x 使⽤的是“com.mysql.cj.jdbc.Driver”

4.3.2 配置 MyBatis 中的 XML 路径

MyBatis 的 XML 中保存是查询数据库的具体操作 SQL,配置如下:
在这里插入图片描述
MyBatis 的 XML 文件路径如下:
在这里插入图片描述

# 配置mybatis xml保存路径
mybatis:
  mapper-locations: classpath:mybatis/**Mapper.xml

4.4 添加业务代码

按照后端开发的⼯程思路,也就是下⾯的流程来实现 MyBatis 查询所有⽤户的功能:
在这里插入图片描述

4.4.1 添加实体类

先添加⽤户的实体类:
在这里插入图片描述

4.4.2 添加 mapper 接口

在这里插入图片描述

4.4.3 添加 UserMapper.xml

数据持久成的实现,mybatis 的固定 xml 格式:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
  
</mapper>

UserMapper.xml 查询所有⽤户的具体实现 SQL:
在这里插入图片描述

对标签说明:

  • 标签:需要指定 namespace 属性,表示命名空间,值为 mapper 接⼝的全限定名,包括全包名.类名。
    在这里插入图片描述
  • 查询标签:是⽤来执⾏数据库的查询操作的:
    id:是和 Interface(接⼝)中定义的⽅法名称⼀样的,表示对接⼝的具体实现⽅法。
    resultType:是返回的数据类型,也就是开头我们定义的实体类。

4.4.4 添加 Service

服务层实现代码如下:
在这里插入图片描述

4.4.5 添加 Controller

控制器层的实现代码如下:
在这里插入图片描述
以上代码写完,整个 MyBatis 的查询功能就实现完了,接下来使⽤ postman 或者浏览器发送get请求来测试⼀下:
在这里插入图片描述
返回数据成功,使用MyBatis实现查询数据库表所有用户成功 !

  • 按照上面的步骤,就可以实现使用mybatis的查询以及返回数据的操作
  • 增、删、改操作也是类似的,实现不同的SQL语句就行了
  • over ~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mybatis-plus报空指针异常可能是因为在普通类调用Mapper接口时,使用了mybatis-plus的功能,但在泛型类中找不到id属性,导致查找到的值为空。这会引发空指针异常(NullPointerException)。为了解决这个问题,可以通过深入学习MyBatis并了解其核心对象、配置文件和映射文件的使用来修复。确保在泛型类中定义了正确的id属性,并正确配置映射文件中的语句映射。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringBoot:在普通类调用 Mapper 接口使用 MybatisPlus 报错:空指针异常(NullPointerException)](https://blog.csdn.net/weixin_43642521/article/details/124491271)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [MyBatis-plus使用出现空指针异常或者表不纯在](https://blog.csdn.net/gtq1061414470/article/details/121019792)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [SSM框架的学习与应用JavaEE(第二天)Mybatis的深入学习](https://download.csdn.net/download/m0_53659738/88241458)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值