0


使用MyBatis操作数据库及单元测试

一.MyBatis介绍

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

JDBC来操作数据库太复杂了,使用MyBatis 是因为它可以帮助我们更⽅便、更快速的操作数据库。

二.MyBatis操作数据库步骤

*1.创建springboot工程,***并导入mybatis的起步依赖、mysql的驱动包 **

2.创建用户表, 并创建对应的实体类User

创建用户表

-- 创建数据库
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对象的映射

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

对数据库的操作就在这个类中完成

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文件

 #数据库连接配置
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

配置application.properties:

#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding
#连接数据库的⽤⼾名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=root

测试结果:

三.单元测试

idea上生成测试

上面通过浏览器上测试的方式比较复杂,这里改用单元测试的方式。

在idea自动生成测试类,在需要写单元测试的类中进行如下操作。

** 配置mybatis日志**

mybatis:
    configuration:
      log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

配置上mybatis日志后,运行结果上会有执行语句的注释,更方便观察,也更方便观察出错原因。

查询单条信息并打印

动态参数

把SQL中的常量改成动态信息

参数重命名

标签: 数据库 mybatis

本文转载自: https://blog.csdn.net/weixin_67793092/article/details/135100664
版权归原作者 Roylelele 所有, 如有侵权,请联系我们删除。

“使用MyBatis操作数据库及单元测试”的评论:

还没有评论