Mybatis 简单启动过程入门详解

 更新时间:2025年03月19日 09:22:34   作者:鸽鸽程序猿  
MyBatis是一个持久层框架,简化JDBC操作,SpringBoot集成MyBatis,通过创建项目、准备数据、配置文件、实体类和接口,可以实现数据库操作,使用@Mapper和@Select注解简化接口实现,测试类使用@SpringBootTest和@Test注解启动,本文介绍Mybatis启动过程,感兴趣的朋友一起看看吧

一、Mybatis简介

Mybatis是一个操作数据库驱动的持久层框架,用来简化JDBC操作的,SpringBoot集成了这个框架。

MyBatis本是 Apache的⼀个开源项⽬iBatis,2010年这个项⽬由apache迁移到了google code,并且改名为MyBatis。2013年11⽉迁移到Github.

二、MyBatis⼊⻔

2.1 创建项目

在前面跟我们前面创建的SpringBoot项目一样,只有在选择依赖的时候要多选择SQL下的Mybatis Framework和MySQL Driver

2.2 准备数据

直接使用下面准备的数据库数据即可:

  • 创建一个mybatis_test的数据库
  • 该库中含有user_info和article_info两张表
  • user_info表中有主键id,username等等信息
  • article_info表中有主键id,title等等信息
-- 创建数据库
DROP DATABASE IF EXISTS mybatis_test;
CREATE DATABASE mybatis_test DEFAULT CHARACTER SET utf8mb4;
-- 使用数据数据
USE mybatis_test;
-- 创建表[用户表]
DROP TABLE IF EXISTS user_info;
CREATE TABLE `user_info` (
        `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() ON UPDATE now(),
        PRIMARY KEY ( `id` ) 
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4; 
-- 添加用户信息
INSERT INTO mybatis_test.user_info( username, `password`, age, gender, phone )
VALUES ( 'admin', 'admin', 18, 1, '18612340001' );
INSERT INTO mybatis_test.user_info( username, `password`, age, gender, phone )
VALUES ( 'zhangsan', 'zhangsan', 18, 1, '18612340002' );
INSERT INTO mybatis_test.user_info( username, `password`, age, gender, phone )
VALUES ( 'lisi', 'lisi', 18, 1, '18612340003' );
INSERT INTO mybatis_test.user_info( username, `password`, age, gender, phone )
VALUES ( 'wangwu', 'wangwu', 18, 1, '18612340004' );
-- 创建文章表
DROP TABLE IF EXISTS article_info;
CREATE TABLE article_info (
        id INT PRIMARY KEY auto_increment,
        title VARCHAR ( 100 ) NOT NULL,
        content TEXT NOT NULL,
        uid INT NOT NULL,
        delete_flag TINYINT ( 4 ) DEFAULT 0 COMMENT '0-正常, 1-删除',
        create_time DATETIME DEFAULT now(),
        update_time DATETIME DEFAULT now() 
) DEFAULT charset 'utf8mb4';
-- 插入测试数据
INSERT INTO article_info ( title, content, uid ) VALUES ( 'Java', 'Java正文', 1 );

2.3 配置文件

直接复制下面的代码即可,注意要将password改写成你电脑上的MySQL数据库登录密码。

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=false
    username: root
    password: 1234
    driver-class-name: com.mysql.cj.jdbc.Driver

2.4 实体类

在idea中创建一个类来接收数据库中user-info表的数据,类中的成员与user-info表中的字段一一对应:

package com.example.springmybatisdemo.model;
import lombok.Data;
import java.util.Date;
@Data
public class UserInfo {
    private Integer id;
    private String username;
    private String password;
    private Integer age;
    private Integer gender;
    private String phone;
    private Integer deleteFlag;
    private Date createTime;
    private Date updateTime;
}

创建接口来操作数据库,使用@Mapper注解来将该接口交给Spring管理,@Select(" ")来实现查询语句,括号中的参数写SQL的查询语句。

  • @Mapper注解是Mybatis提供的控制反转注解。
  • @Select注解直接将这个接口的方法给实现了。所以我们在后面可以直接注入这个接口。我们前面学习的SpringBoot的IoC注解是没有这个功能的,如果是接口需要自己实现。
  • 当我们的接口是使用@Mapper注解管理,其中有些方法有没有使用Mybatis可以实现的注解,那么就会在使用时抛出异常。
package com.example.springmybatisdemo.mapper;
import com.example.springmybatisdemo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserMapper {
    @Select("select * from user_info")
    List<UserInfo> selectAll() ;
}

测试类,使用@SpringBootTest注解来启动测试类,@Test启动测试方法。

  • @SpringBootTest这个注解就是在运行这个测试类的时候加载Spring环境
  • @Test注解可以让被修饰的方法启动起来,就不需要使用main方法。
package com.example.springmybatisdemo;
import com.example.springmybatisdemo.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class UserInfoMapperTest {
    @Autowired
    private UserMapper userMapper;
    @Test
    void selectAll() {
        System.out.println(userMapper.selectAll());
    }
}

2.5 执行结果

执行结果如下图,确实将我们插入到user-info表中的数据拿到了:

到此这篇关于Mybatis 简单启动的文章就介绍到这了,更多相关Mybatis 启动内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++ 归并排序(merge sort)案例详解

    C++ 归并排序(merge sort)案例详解

    这篇文章主要介绍了C++ 归并排序(merge sort)案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • java基础javeSE程序逻辑控制语法

    java基础javeSE程序逻辑控制语法

    主要讲解Java中程序的逻辑控制语句包括 Java中的输入输出方式 顺序结构循环结构等,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • SpringBean依赖和三级缓存的案例讲解

    SpringBean依赖和三级缓存的案例讲解

    这篇文章主要介绍了SpringBean依赖和三级缓存的案例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • SpringBoot策略模式的实践使用

    SpringBoot策略模式的实践使用

    这篇文章主要介绍了SpringBoot 策略模式的实践使用,帮助大家更好的理解和学习使用SpringBoot,感兴趣的朋友可以了解下
    2021-04-04
  • 浅析对Spring aware接口理解

    浅析对Spring aware接口理解

    通过aware接口可以获取Spring容器相关信息,但这样会与Spring容器耦合,这篇文章主要介绍了Spring aware接口理解,需要的朋友可以参考下
    2022-08-08
  • Java Web实战之使用三层架构与Servlet构建登录注册模块

    Java Web实战之使用三层架构与Servlet构建登录注册模块

    这篇文章介绍了如何使用三层架构(View, Service, DAO)和JDBCTemplate技术在JavaWeb环境下实现登录和注册功能,详细说明了构建项目的步骤,包括创建数据库表、实体类、DAO层、Service层、Servlet处理及页面设计,需要的朋友可以参考下
    2024-10-10
  • Java中BorderLayout布局管理器的两种排列方式

    Java中BorderLayout布局管理器的两种排列方式

    这篇文章主要介绍了Java中BorderLayout布局管理器的两种排列方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Spring Cloud Ribbon的使用原理解析

    Spring Cloud Ribbon的使用原理解析

    现在Java非常流行微服务,也就是所谓的面向服务开发,将一个项目拆分成了多个项目,其优点有很多,其中一个优点就是:将服务拆分成一个一个微服务后,我们很容易的来针对性的进行集群部署,这篇文章主要介绍了Spring Cloud Ribbon的使用详解,需要的朋友可以参考下
    2022-07-07
  • 使用maven整合Spring+SpringMVC+Mybatis框架详细步骤(图文)

    使用maven整合Spring+SpringMVC+Mybatis框架详细步骤(图文)

    这篇文章主要介绍了使用maven整合Spring+SpringMVC+Mybatis框架详细步骤(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Java INPUTSTREAM如何实现重复使用

    Java INPUTSTREAM如何实现重复使用

    这篇文章主要介绍了Java INPUTSTREAM如何实现重复使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10

最新评论