目录
前言
一、配置MyBatis开发环境
1.1 创建数据库和表
1.2 添加框架支持
1.3 创建目录结构
1.4 配置数据库连接
1.5 配置MyBatis中的XML文件路径
二、添加业务代码
2.1 查询数据库操作
2.1.1 添加实体类
2.1.2 添加mapper接口
2.1.3 在xml中实现mapper接口
2.1.4 实现service和controller
2.2 修改数据
2.2.1 添加mapper接口
2.2.2 实现mapper接口
2.3 删除数据
2.2.1 添加mapper接口
2.2.2 实现mapper接口
2.4 新增数据
2.2.1 添加mappe接口
2.2.2 实现mapper接口
前言
MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis是基于JDBC实现的,但是比JDBC的操作更加方便,MyBatis可以通过接口和XML来操作数据库。
简言之,MyBatis是更简单完成程序和数据库交互的工具,也就是说,使用MyBatis可以更简单地操作数据库。
一、配置MyBatis开发环境
1.1 创建数据库和表
既然要使用MyBatis操作数据库,那么前提条件是得有数据库,数据库中要有内容~
-- 创建数据库
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';
-- 添加一条测试数据
INSERT INTO `mycnblog`.`userinfo` (`id`, `username`, `password`, `photo`, `createtime`, `updatetime`, `state`) VALUES
(0, 'banana', 'banana456', '', '2023-2-25 17:10:48', '2023-2-25 17:10:48', 1);
1.2 添加框架支持
在创建Spring Boot框架时,添加MyBatis框架和数据库驱动:
1.3 创建目录结构
1.4 配置数据库连接
创建好项目之后,在配置文件中添加数据库的连接配置:
1.5 配置MyBatis中的XML文件路径
在配置文件中添加MyBatis的XML文件路径:
二、添加业务代码
2.1 查询数据库操作
2.1.1 添加实体类
该实体类是对mycnblog数据库中userinfo表的描述,并且需要实现每个字段的get和set方法。
2.1.2 添加mapper接口
2.1.3 在xml中实现mapper接口
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>
注意:<mapper>标签中的namespace属性需要填写要实现的接口所在位置(包名+接口名)。
实现UserMapper接口中的getUserByID方法:
<select>是查询标签,用来执行数据库的查询操作,标签中的id属性需要填写要实现的方法名;
resultType属性表示该方法的返回值类型。
使用 #{} 的方式来接收参数。
2.1.4 实现service和controller
实现Service:
实现Controller:
2.2 修改数据
2.2.1 添加mapper接口
返回值类型为int,表示本次操作影响数据库的行数。
2.2.2 实现mapper接口
2.3 删除数据
2.2.1 添加mapper接口
2.2.2 实现mapper接口
2.4 新增数据
2.2.1 添加mappe接口
2.2.2 实现mapper接口
useGeneratedKeys:属性值为true表示MyBatis会取出由数据库内部生成的自增主键,默认为false。
keyProperty:表示useGeneratedKeys生成的自增主键赋值给UserInfo对象的哪个属性。
keyColumn:数据库中自增主键名。
区别:addUser方法在插入用户信息后,无法获取到用户id,而addUser2则可以获取到。