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

发布时间:2023年12月21日

目录

一.MyBatis介绍

二.MyBatis操作数据库步骤

三.单元测试

idea上生成测试

?配置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

测试结果:

三.单元测试

idea上生成测试

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

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

?配置mybatis日志

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

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

查询单条信息并打印

动态参数

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

参数重命名

文章来源:https://blog.csdn.net/weixin_67793092/article/details/135100664
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。