南通网站建设招聘,网络运营师,品牌推广案例,博客网站制作目录
一、认识MyBatis
1、MyBatis是什么#xff1f;
2、为什么要学习MyBatis?
二、配置MyBatis环境
1、建库与建表
2、创建新项目
3、xml文件配置
#xff08;1#xff09;配置数据库连接
#xff08;2#xff09;配置 MyBatis 中的 XML 路径
三、测试#x…目录
一、认识MyBatis
1、MyBatis是什么
2、为什么要学习MyBatis?
二、配置MyBatis环境
1、建库与建表
2、创建新项目
3、xml文件配置
1配置数据库连接
2配置 MyBatis 中的 XML 路径
三、测试第一个MyBatis查询
1、用户实体类User和数据库属性对应
2、添加mapper接口
3、添加UserMapper.xml
4、自行测试
5、添加 Service
6、添加Controller 一、认识MyBatis
1、MyBatis是什么 MyBatis是一个持久层框架持久支持数据存在硬盘上MyBatis 去除了⼏乎所有的 JDBC 代码以及设置参数和获取结果集的⼯作可以通过简单的 XML 或注解来完成MyBatis 是更简单完成程序和数据库交互的⼯具也就是更简单的操作和读取数据库⼯具。之前的Spring是让Java代码更简单。 问题1MyBatis和Spring的关系 MyBatis和Spring没有任何关系如果非要有关系就是Spring集成了MyBatis框架。就相当于我们之前的举例Spring是高铁那么MyBatis就是高铁的APP订餐系统高铁只是集成了这个订餐框架更加方便我们的出行没有高铁订餐系统也可以在其他平台使用所以两者之间并没有什么关系MyBatis可以脱离Spring使用。 2、为什么要学习MyBatis? 对于后端开发来说程序是由以下两个重要的部分组成的后端程序数据库。⽽它两要建立连接就要依靠数据库连接⼯具我们学习的 JDBC还有MyBatis都是那已经有了 JDBC 了为什么还要学习 MyBatis这是因为 JDBC 的操作太繁琐了。 之前的JDBC代码流程非常繁琐 1. 创建数据库连接池 DataSource 2. 通过 DataSource 获取数据库连接 Connection 3. 编写要执⾏带 ? 占位符的 SQL 语句√ 4. 通过 Connection 及 SQL 创建操作命令对象 Statement 5. 替换占位符指定要替换的数据库字段类型占位符索引及要替换的值√ 6. 使⽤ Statement 执⾏ SQL 语句 7. 查询操作返回结果集 ResultSet更新操作返回更新的数量 8. 处理结果集√ 9. 释放资源。 现在MyBatis其中sql语句传参处理结果集这几步需要自己实现可以写在Java代码中也可以写在MyBatis配置文件中可以帮助我们更⽅便、更快速的操作数据库。不过MyBatis底层还是依赖数据库连接的。 问题2MyBatis与数据库的关系 MyBatis与数据库也没有关系MyBatis是让数据库的连接操作更简单但是并不是数据库。MyBatis是程序和数据库的桥梁。MyBatis提供了一个接口访问数据库接口只是方法的定义具体的自己要实现主要通过xml文件实现注解也可以实现。 二、配置MyBatis环境
1、建库与建表
-- 创建数据库
drop database if exists myBatis_db;
create database myBatis_db DEFAULT CHARACTER SET utf8mb4;-- 使⽤数据数据
use myBatis_db;-- 创建表[⽤户表]
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-- 插入数据
INSERT INTO myBatis_db.userinfo (id, username, password, photo,
createtime, updatetime, state) VALUES
(1, root, root, , 2023-7-23 17:10:48, 2023-7-23 17:10:48, 1)
;
-- 查询表
select * from userInfo;
2、创建新项目
注意 注意可以新创建项目引入这些包但是如果已经是一个老项目了我没有安装SQL的包可以通过安装插件实现。 右键generate 3、xml文件配置
1配置数据库连接
# 数据库连接配置
spring:datasource:url: jdbc:mysql://localhost:3306/myBatis_db?characterEncodingutf8useSSLfalseusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver
2配置 MyBatis 中的 XML 路径
# 配置 mybatis xml 的⽂件路径在 resources/mapper 创建所有表的 xml ⽂件
mybatis:
mapper-locations: classpath:mapper/**Mapper.xml#Spring打印SQL日志configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
同时在resource文件下建立一个新文件夹mapper。 三、测试第一个MyBatis查询 按照下⾯的流程来实现 MyBatis 查询所有⽤户的功能。
1、用户实体类User和数据库属性对应
Data
public class User {private Integer Id;private String username;private String password;private String photo;private Date createTime;private Date updateTime;
}2、添加mapper接口
数据持久层的接⼝定义。
1是Inteferce接口
2接口上方加Mapper注解
3实现接口中的方法。
Mapper
public interface UserMapper {//定义接口查询数据库内容public abstract ListUser queryAll();}
3、添加UserMapper.xml
数据持久成的实现mybatis 的固定 xml 格式。同时写UserMapper.xml 查询所有⽤户的具体实现 SQL。
1mapper标签需要指定 namespace 属性表示命名空间值为 mapper 接⼝的全限定名包括全包名.类名。namespace下的是UserMapper表示实现哪个接口。 2模板文件自定义sql语句queryAll表示实现的是接口中的哪个方法。sql语句为查询就写select写id和resultTypeid是接口中的方法名表示对接⼝的具体实现⽅法resultType是返回结果的类型表示返回的是一个User对象。select查询标签是⽤来执⾏数据库的查询操作的。 ?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacedemo1.mapper.UserMapper
!--表示实现的是demo1下的UserMapper接口--select idqueryAll resultTypedemo1.model.Userselect * from userinfo/select
!--id是方法名,resultType是返回的结果返回的是一个User对象--
/mapper
4、自行测试
1将光标定在接口定义UserMapper的{ }里面右键generate选择test勾选queryAll方法。加上SpringBootTest注解
2通过Autowired将UserMapper注入进来
3查询方法上加Test注解。
Slf4j
SpringBootTest
class UserMapperTest {Autowiredprivate UserMapper userMapper;Testvoid queryAll() {ListUser users userMapper.queryAll();log.info(users.toString());}
}
点击测试方法上面的运行按钮得到查询结果。 测试通过之后我们就可以将其应用到具体项目中了继续下面的步骤。
5、添加 Service
服务层实现代码如下
Service
public class UserService {Resourceprivate UserMapper userMapper;public ListUser queryAll(){return userMapper.queryAll();}
}
6、添加Controller
RestController
RequestMapping(/web)
public class UserController {Resourceprivate UserService userService;RequestMapping(/queryAll)public ListUser queryAll(){return userService.queryAll();}
}
url测试通过。 希望自己能够更加淡定从容~说不定有一条生活也会给你一个很大的惊喜呢