web应用技术—MyBatis入门

MyBatis 是一款优秀的 持久层 框架,用于简化JDBC的开发。

JDBC------>可以说是用来操作数据库的一套规范、一个接口;

如果直接用底层JDBC程序操控执行数据库,会非常麻烦;

因此,设计出了MyBatis 框架来简化JDBC的开发------>其免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。

01 快速入门

  • 使用MyBatis查询用户数据

在java中编写SQL语句------>发送给数据库;数据库------>返回结果

三步操作如下:

1、创建Springboot工程,引入MyBatis Framework、MySQL Driver 两个依赖;

  • Mybatis 的起步依赖
XML 复制代码
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>3.0.5</version>
</dependency>
  • MySQL 的驱动包------>MySQL Driver
XML 复制代码
<dependency>
	<groupId>com.mysql</groupId>
	<artifactId>mysql-connector-j</artifactId>
	<scope>runtime</scope>
</dependency>
  • Springboot 单元测试的依赖
XML 复制代码
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-test</artifactId>
	<scope>test</scope>
</dependency>

2、数据库表User、实体类User

---数据库表User...略

---实体类User

示例中,是Emp类;

3、配置MyBatis(数据库连接信息)四要素

配置在 application.properties文件中

XML 复制代码
#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/2026shangke
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=123

4、编写SQL语句(注解/XML)

5、单元测试


三步操作:

02 配置SQL提示

配置操作如下:

未识别表名原因:idea 和 数据库没有建立连接,不识别表信息

解决方式:在idea中配置MySQL数据库连接

03 JDBC介绍

JDBC (Java Database Connectivity ),中文译为Java 数据库连接。

就是使用Java语言操作关系型数据库的一套API。(一套规范,一套接口)

原始的JDBC程序是如何来操作的?

1、注册驱动;(要使用的是那个驱动类)

2、获取连接对象;与数据库建立连接

3、获取执行SQL的对象Statement,执行SQL,返回结果;

4、封装结果数据;解析

5、释放资源;


(重)问题------>mybatis 中如何解决:

1、硬编码 ,修改需要重新编译;------>直接将数据库连接信息(四要素)写在的是application.properties文件中,后续修改不用操作此文件,直接操作配置文件就行。

2、解析时字段多,代码繁琐;------>在mybatis中,没有解析结果,会自动将查询到的结果封装到集合中,查询回来的每一个结果都会封装为一个user对象,而所有的user对象又会封装到一个类似的集合当中,整个过程自动化进行。

3、频繁的获取连接、释放连接,资源浪费,性能降低;------>数据库连接池


04 数据库连接池

优势:

  • 资源重用
  • 提升系统响应速度
  • 避免数据库连接遗漏

------当切换Druid数据库连接池:

1、引入Druid依赖,在pom.xml中;

2、 需要在application.properties创建四要素;


1、数据库连接池

  • 是一个容器,负责分配、管理数据库连接(Connection)
  • 优势:资源复用、提升系统响应速度
  • 接口:DataSource
  • 产品:Druid、Hikari

05 lombok

相关推荐
2601_9621066416 小时前
【Java Set综合实战】商品管理系统 + 图书收藏系统|Product、Book自定义类全套代码
java
RuoyiOffice17 小时前
SpringBoot+Vue3 凭证生命周期设计:审核、过账、冲销与反过账怎样保持账目一致
java·spring boot·事务·springboot3·财务系统·会计凭证·ruoyi office
2601_9621066417 小时前
HashMap入门|工号-姓名键值存储、两种遍历方式、根据key/value查
java
杨凯凡17 小时前
Spring Framework 7 API 版本管理实战:请求头路由、兼容迁移与废弃策略
java·rest api·springframework·spring boot 4·api版本管理
T_Wizard18 小时前
同一个问题写了 4 遍:官方 SDK / HTTP / Spring AI / LangChain4j,到底该选哪个
java·ai编程
hai_android18 小时前
AudioTrack 深度解析:从原理到实战
android·java·kotlin
斯维赤18 小时前
限流、熔断、降级,你真的分得清吗?
java·后端·架构
Zan19 小时前
SQLite + SQLx 实战:为什么已经发布的数据库迁移文件,绝对不能再修改?
数据库·后端·面试
这个DBA有点耶20 小时前
数据同步的三个工程底线:DDL同步、断点续传、一致性校验——开源CDC的边界与KFS的路径
数据库·dba·代码规范
SelectDB21 小时前
列式存储为什么适合分析类负载?原理、限制与日志场景应用
数据库