MybatisPlus简单实战使用

201 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情

创建数据库以及表

对于Mybatis整合MP通常用三种用法,分别是

1 Mybatis+MP

2 Spring+Mybatis+MP

3 SpringBoot+Mybatis+MP

创建数据库

创建表插入数据

/*
 Navicat Premium Data Transfer

 Source Server         : 本地库
 Source Server Type    : MySQL
 Source Server Version : 80017
 Source Host           : localhost:3306
 Source Schema         : mp

 Target Server Type    : MySQL
 Target Server Version : 80017
 File Encoding         : 65001

 Date: 23/08/2022 22:19:37
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for tb_user
-- ----------------------------
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `user_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名',
  `password` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码',
  `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',
  `age` int(11) NULL DEFAULT NULL COMMENT '年龄',
  `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of tb_user
-- ----------------------------
INSERT INTO `tb_user` VALUES (1, 'zhangsan', '123456', '张三', 18, 'test1@qq.com');
INSERT INTO `tb_user` VALUES (2, 'lisi', '123456', '李四', 20, 'test2@qq.com');
INSERT INTO `tb_user` VALUES (3, 'wangwu', '123456', '王五', 22, 'test3@qq,com');
INSERT INTO `tb_user` VALUES (4, 'zhaoliu', '123456', '赵六', 24, 'test4@qq.com');

SET FOREIGN_KEY_CHECKS = 1;

也可以复制官网上的,官网给出了demo,我自行进行了修改

保证有数据即可

接下来我们就通过这个数据库和表进行MP的学习

创建项目

创建Maven项目即可

引入依赖

 < ? xml version = "1.0" encoding = "UTF-8" ? >
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" >
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>MybatisPlus01</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>MybatisPlus01</name>


    <dependencies>
        <! --MybatisPlus插件依赖-->
<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>3.1.1</version>
        </dependency>
        <! --mysql-->
<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>
        <! --连接池-->
<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.11</version>
        </dependency>
        <! --简化bean代码的工具包-->
<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
            <version>1.18.24</version>
        </dependency>
        <! --junit单元测试-->
<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <! --sl4f日志-->
<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>1.7.25</version>
        </dependency>
    </dependencies>

</project>

Mybatis+MP Mybatis实现findAll()方法

下面演示,通过纯Mybatis与MP整合

Mybatis实现查询User

首先创建子Module

子模块也是一个Maven项目

resource下创建日志文件 log4j.properties

log4j.rootLogger = DEBUG,A1  log4j.appender.A1 = org.apache.log4j.ConsoleAppender log4j.appender.A1.layout = org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern = [ % t] [ % c] - [ % p] % m % n

第一步,编写mybatis-confifig.xml文件:

 < ? xml version = "1.0" encoding = "UTF-8" ? >
<! DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd"  > 
<configuration>
    <environments default = "development" >
        <environment id = "development" >
            <transactionManager type = "JDBC" />
            <dataSource type = "POOLED" >
                <property name = "driver" value = "com.mysql.jdbc.Driver" />
                <property name = "url" value = "jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true&amp;allowMultiQueries=true&amp;useSSL=false" />
                <property name = "username" value = "root" />
                <property name = "password" value = "root" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource = "UserMapper.xml" />
    </mappers>
</configuration>

第二步,编写User实体对象

package com.wyh.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName( "tb_user" )
public class User {

    private Long id;
    private String userName;
    private String password;
    private String name;
    private Integer age;
    private String email;
}

第三步,编写UserMapper接口:

package com.wyh.mapper;

import com.wyh.entity.User;

import java.util.List;

/**
*  @description:用户接口
 *  @author:  魏一鹤
*  @createDate:  2022-08-23 22:57
**/
public interface UserMapper {
    List<User> findAll();
}

第四步,编写UserMapper.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.wyh.mapper.UserMapper" >


    <select id = "findAll" resultType = "com.wyh.entity.User" >
        select * from tb_user
    </select>
</mapper>
 

第五步,编写TestMybatis测试用例:

package com.wyh.test;

import com.wyh.entity.User;
import com.wyh.mapper.UserMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.InputStream;
import java.util.List;

/**
*  @description:  Mybatis查询测试
*  @author:  魏一鹤
*  @createDate:  2022-08-23 23:00
**/

public class TestMybatis {
    @Test
    public void testFindAll() throws Exception{
        String resource = "mybatis-config.xml" ;
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        List<User> userList = userMapper.findAll();
        for (User user : userList) {
            System.out.println(user );
        }

    }
}

测试结果 如下 正常查到全部的数据