本文主要是介绍【MyBatis】MyBatis查询数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1、MyBatis 是什么?
- 2、为什么要学习 MyBatis?
- 3、怎么学MyBatis?
- 4、创建MyBatis项目
- 4.1 创建数据库和表
- 4.2 添加MyBatis相关依赖
- 4.2.1 新项目添加mybatis依赖
- 4.2.2 老项目添加mybatis依赖
- 4.3 配置数据库连接字符串和MyBatis(保存的XML的目录)
- 4.3.1 配置数据库的连接信息
- 4.3.2 配置MyBatis的XML保存路径
- 5、使用MyBatis的操作模式操作数据库
- 5. 1 定义接口(普通的接口)
- 5. 2 创建XML实现上面的接口
- 5. 3 添加实体类
- 5. 4 添加 Service
- 5. 5 添加 Controller
- 5.6 添加日志文件
- 6、增、删、改操作
- 6.1 增加用户操作
- MyBatis添加用户并返回自增ID
- 6.2 修改用户操作
- 6.3 删除用户操作
- 7、查询操作
- 7.1 单表查询
- 7.1.1 参数占位符 #{} 和 ${}的区别⭐⭐⭐⭐
- 7.1.2 ${}使用场景(优点)
- 7.1.3 SQL 注入问题
- 7.1.4 like 查询
- 7.2 多表查询
- 7.2.1 返回类型:resultType
- 7.2.2 返回字典映射:resultMap
- 7.2.3 一对一查询
- 7.2.4 一对多查询
- 8、动态 SQL
- 8.1 if 标签
- 8.2 trim 标签
- 8.3 where 标签
- 8.4 set 标签
- 8.5 foreach 标签
引言:
经过前⾯文章的学习,咱们
Spring 系列
的基本操作已经实现的差不多了,接下来,让我们来一起学习更重要的知识——将前端传递的数据存储起来,或者查询数据库⾥⾯的数据。
1、MyBatis 是什么?
MyBatis 是⼀款优秀的ORM(对象关系映射)持久层框架,它⽀持⾃定义 SQL、存储过程以及⾼级映射
。MyBatis 去除了几乎所有的 JDBC代码以及设置参数和获取结果集的⼯作。MyBatis 可以通过简单的 XML 或注解
来配置和 映射原始类型、接⼝和 Java POJO(Plain Old Java Objects,普通⽼式 Java 对象)为数据库中的记录。MyBatis官网
简单来说:
MyBatis 是更简单完成程序和数据库交互的⼯具,也就是更简单的操作和读取数据库⼯具。
2、为什么要学习 MyBatis?
对于后端开发来说,程序是由以下两个重要的部分组成的:
- 后端程序
- 数据库
⽽这两个重要的组成部分要通讯,就要依靠数据库连接⼯具,那数据库连接⼯具有哪些❓ 比如之前我们学习的 JDBC
,还有今天我们将要介绍的 MyBatis
,那么已经有了 JDBC 了,为什么还要学习 MyBatis呢❓
这是因为 JDBC 的操作太繁琐了,我们先来回顾⼀下 JDBC 的操作流程:
- 创建数据库连接池 DataSource
- 通过 DataSource 获取数据库连接 Connection
- 编写要执行带 ? 占位符的 SQL 语句
- 通过 Connection 及 SQL 创建操作命令对象 Statement
- 替换占位符:指定要替换的数据库字段类型,占位符索引及要替换的值
- 使⽤ Statement 执行SQL 语句
- 查询操作:返回结果集 ResultSet,更新操作:返回更新的数量
- 处理结果集
- 释放资源
从上述操作流程可以看出,对于 JDBC 来说,整个操作⾮常的繁琐,我们不但要拼接每⼀个参数,⽽且还要按照模板代码的⽅式,⼀步步的操作数据库,并且在每次操作完,还要⼿动关闭连接等,⽽所有的这些操作步骤都需要在每个⽅法中重复书写。
于是我们就想,那有没有⼀种方法,可以更简单、更方便的操作数据库呢?
答案是肯定的,这就是我们要学习 MyBatis
的真正原因,它可以帮助我们更方便、更快速的操作数据库。
3、怎么学MyBatis?
MyBatis 学习只分为两部分:
- 配置 MyBatis 开发环境;
- 使用 MyBatis 模式和语法操作数据库。
4、创建MyBatis项目
开始搭建 MyBatis 之前,我们先来看⼀下 MyBatis 在整个框架中的定位,框架交互流程图:
MyBatis 也是⼀个 ORM 框架,ORM(Object Relational Mapping),即对象关系映射
。在⾯向对
象编程语⾔中,将关系型数据库中的数据与对象建⽴起映射关系,进⽽⾃动的完成数据与对象的
互相转换:
- 将输⼊数据(即传⼊对象)+SQL 映射成原⽣ SQL
- 将结果集映射为返回对象,即输出对象
ORM 把数据库映射为对象:
- 数据库表(table)–> 类(class)
- 记录(record,⾏数据)–> 对象(object)
- 字段(field)–> 对象的属性(attribute)
⼀般的 ORM 框架,会将数据库模型的每张表都映射为⼀个 Java 类。
也就是说使⽤ MyBatis 可以像操作对象⼀样来操作数据库中的表,可以实现对象和数据库表之间 的转换,接下来我们来看 MyBatis 的使⽤吧。
4.1 创建数据库和表
接下来我们要实现的功能是:使⽤ MyBatis 的⽅式来读取⽤户表中的所有⽤户,我们使⽤个⼈博
客的数据库和数据包,具体 SQL 如下:
-- 创建数据库
drop database if exists mycnblog;
create database mycnblog DEFAULT CHARACTER SET utf8mb4;-- 使用数据数据
use mycnblog;-- 创建表[用户表]
drop table if exists userinfo;
create table userinfo(id int primary key auto_increment,username varchar(100) not null,password varchar(32) not null,photo varchar(500) default '',createtime datetime default now(),updatetime datetime default now(),`state` int default 1
) default charset 'utf8mb4';-- 创建文章表
drop table if exists articleinfo;
create table articleinfo(id int primary key auto_increment,title varchar(100) not null,content text not null,createtime datetime default now(),updatetime datetime default now(),uid int not null,rcount int not null default 1,`state` int default 1
)default charset 'utf8mb4';-- 创建视频表
drop table if exists videoinfo;
create table videoinfo(vid int primary key,`title` varchar(250),`url` varchar(1000),createtime datetime default now(),updatetime datetime default now(),uid int
)default charset 'utf8mb4';-- 添加一个用户信息
INSERT INTO `mycnblog`.`userinfo` (`id`, `username`, `password`, `photo`, `createtime`, `updatetime`, `state`) VALUES
(1, 'admin', 'admin', '', '2021-12-06 17:10:48', '2021-12-06 17:10:48', 1);-- 文章添加测试数据
insert into articleinfo(title,content,uid)values('Java','Java正文',1);-- 添加视频
insert into videoinfo(vid,title,url,uid) values(1,'java title','http://www.baidu.com',1);
4.2 添加MyBatis相关依赖
4.2.1 新项目添加mybatis依赖
4.2.2 老项目添加mybatis依赖
首先请参考➡️ 准备工作—添加 lombok 到项目中
然后再进行下面的配置:
添加好依赖以后千万不要立即启动项目❗❗千万不要❗❗❗
4.3 配置数据库连接字符串和MyBatis(保存的XML的目录)
4.3.1 配置数据库的连接信息
注意事项: 如果使⽤
MySQL 是 5.x 之前
的使⽤的是“com.mysql.jdbc.Driver”,如果是⼤于 5.x
使⽤的是“com.mysql.cj.jdbc.Driver”;mysql Driver默认是8.0
,如果是8.0以上
,则driver-class-name使用的是“com.mysql.cj.jdbc.Driver”,如果是8.0之前
的,则使用的是“com.mysql.jdbc.Driver”;如果你创建的是新项目,并且spring boot版本号在2.6.9之前
的,那么就只有“com.mysql.cj.jdbc.Driver”这一种写法。
4.3.2 配置MyBatis的XML保存路径
5、使用MyBatis的操作模式操作数据库
MyBatis模式如图所示:
5. 1 定义接口(普通的接口)
package com.example.demo.mapper;import com.example.demo.
这篇关于【MyBatis】MyBatis查询数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!