目录
一.MyBatis介绍
MyBatis是⼀款优秀的持久层框架,⽤于简化JDBC的开发。
JDBC来操作数据库太复杂了,使用MyBatis 是因为它可以帮助我们更⽅便、更快速的操作数据库。
二.MyBatis操作数据库步骤
1.创建springboot工程, 并导入mybatis的起步依赖、mysql的驱动包
2.创建用户表, 并创建对应的实体类User
创建用户表
sql
-- 创建数据库
DROP DATABASE IF EXISTS mybatis_test;
CREATE DATABASE mybatis_test DEFAULT CHARACTER SET utf8mb4;
-- 使⽤数据数据
USE mybatis_test;
-- 创建表[用户表]
DROP TABLE IF EXISTS userinfo;
CREATE TABLE `userinfo` (
`id` INT ( 11 ) NOT NULL AUTO_INCREMENT,
`username` VARCHAR ( 127 ) NOT NULL,
`password` VARCHAR ( 127 ) NOT NULL,
`age` TINYINT ( 4 ) NOT NULL,
`gender` TINYINT ( 4 ) DEFAULT '0' COMMENT '1-男 2-⼥ 0-默认',
`phone` VARCHAR ( 15 ) DEFAULT NULL,
`delete_flag` TINYINT ( 4 ) DEFAULT 0 COMMENT '0-正常, 1-删除',
`create_time` DATETIME DEFAULT now(),
`update_time` DATETIME DEFAULT now(),
PRIMARY KEY ( `id` )
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4;
-- 添加用户信息
INSERT INTO mybatis_test.userinfo ( username, `password`, age, gender, phone )
VALUES ( 'admin', 'admin', 18, 1, '18612340001' );
INSERT INTO mybatis_test.userinfo ( username, `password`, age, gender, phone )
VALUES ( 'zhangsan', 'zhangsan', 18, 1, '18612340002' );
INSERT INTO mybatis_test.userinfo ( username, `password`, age, gender, phone )
VALUES ( 'lisi', 'lisi', 18, 1, '18612340003' );
INSERT INTO mybatis_test.userinfo ( username, `password`, age, gender, phone )
VALUES ( 'wangwu', 'wangwu', 18, 1, '18612340004' );
创建完成后查看数据库表的信息
3.建立数据库和Java对象的映射
java
package com.lele.demo.model;
import lombok.Data;
import java.util.Date;
@Data
public class UserInfo {
//和数据库中要一一对应
// `id` INT ( 11 ) NOT NULL AUTO_INCREMENT,
// `username` VARCHAR ( 127 ) NOT NULL,
// `password` VARCHAR ( 127 ) NOT NULL,
// `age` TINYINT ( 4 ) NOT NULL,
// `gender` TINYINT ( 4 ) DEFAULT '0' COMMENT '1-男 2-⼥ 0-默认',
// `phone` VARCHAR ( 15 ) DEFAULT NULL,
// `delete_flag` TINYINT ( 4 ) DEFAULT 0 COMMENT '0-正常, 1-删除',
// `create_time` DATETIME DEFAULT now(),
// `update_time` DATETIME DEFAULT now(),
private Integer id;
private String username;
private String password;
private Integer age;
private Integer gender;
private String phone;
private Integer delete_Flag;
private Date create_Time;
private Date update_Time;
}
4.创建对数据库的操作类
使用Mybatis对数据库的操作类,一般命名为xxxMapper
对数据库的操作就在这个类中完成
java
package com.lele.demo.mapper;
import com.lele.demo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
//MyBatis的注解
@Mapper
public interface UserInfoMapper {
@Select("select * from userinfo")
List<UserInfo> selectAll();
}
配置数据库连接字符串
Mybatis中要连接数据库,需要数据库相关参数配置
• MySQL驱动类
• 登录名
• 密码
• 数据库连接字符串
配置application.yml文件
java
#数据库连接配置
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=false
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
测试结果:
三.单元测试
idea上生成测试
上面通过浏览器上测试的方式比较复杂,这里改用单元测试的方式。
在idea自动生成测试类,在需要写单元测试的类中进行如下操作。
配置mybatis日志
java
mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
配置上mybatis日志后,运行结果上会有执行语句的注释,更方便观察,也更方便观察出错原因。
查询单条信息并打印
动态参数
把SQL中的常量改成动态信息
参数重命名