栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis-Plus

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis-Plus

1、了解Mybatis-Plus 1.1 Mybatis-Plus介绍        

         MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

官网:https://mybatis.plus/ 或 https://mp.baomidou.com/

愿景:我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

1.2 特性 无侵入 :只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小 :启动即会自动注入基本 CURD ,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作 :内置通用 Mapper 、通用 Service ,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 支持 Lambda 形式调用 :通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 支持多种数据库 :支持 MySQL 、 MariaDB 、 Oracle 、 DB2 、 H2 、 HSQL 、 SQLite 、 Postgre 、 SQLServer2005 、 SQLServer 等多种数据库 支持主键自动生成 :支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题 支持 XML 热加载 : Mapper 对应的 XML 支持热加载,对于简单的 CRUD 操作,甚至可以无 XML 启动 支持 ActiveRecord 模式 :支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作 支持自定义全局通用操作 :支持全局通用方法注入( Write once, use anywhere ) 支持关键词自动转义 :支持数据库关键词( order 、 key...... )自动转义,还可自定义关键词 内置代码生成器 :采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用 内置分页插件 :基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List查询 内置性能分析插件 :可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询 内置全局拦截插件 :提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作 内置 Sql 注入剥离器 :支持 Sql 注入剥离,有效预防 Sql 注入攻击 1.3 框架结构

2、快速开始

        对于Mybatis整合MP有常常有三种用法,分别是Mybatis+MP、Spring+Mybatis+MP、Spring Boot+Mybatis+MP。

2.1、创建数据库以及表
-- 创建数据库
CREATE DATAbase mp;

-- 创建数据表
CREATE TABLE tb_user (
	id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
	user_name VARCHAr(20) NOT NULL COMMENT '用户名',
	PASSWORD VARCHAr(20) NOT NULL COMMENT '密码',
	NAME VARCHAr(30) DEFAULT NULL COMMENT '姓名',
	age INT(11) DEFAULT NULL COMMENT '年龄',
	email VARCHAr(30) DEFAULT NULL COMMENT '邮箱',
	PRIMARY KEY (id)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

-- 添加数据
INSERT INTO tb_user VALUES (NULL, 'zhangsan', '123456', '张三', 18, 'test1@itcast.cn'),(NULL, 'lisi', '123456', '李四', 20, 'test2@itcast.cn'),(NULL, 'wangwu', '123456', '王五', 25, 'test3@itcast.cn'),(NULL, 'zhaoliu', '123456', '赵六', 26, 'test4@itcast.cn'),(NULL, 'sunqi', '123456', '孙七', 27, 'test5@itcast.cn');

-- 查看数据表
SELECT * FROM tb_user;
2.2 创建工程 2.2.1 导入依赖


    4.0.0

    org.example
    mybatis-plus-案例01
    pom
    1.0-SNAPSHOT
    
        itcast-mybatis-plus-simple
        itcast-mybatis-plus-spring
    

    

        
        
            com.baomidou
            mybatis-plus
            3.1.1
        

        
        
            mysql
            mysql-connector-java
            5.1.47
        

        
        
            com.alibaba
            druid
            1.1.16
        

        
        
            org.projectlombok
            lombok
            true
            1.18.4
        

        
        
            junit
            junit
            4.12
        

        
        
            org.slf4j
            slf4j-log4j12
            1.6.4
        
    

        
    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                 1.8
                    1.8 
            
        
    
2.3 Mybatis + MP

        下面演示,通过纯Mybatis与Mybatis-Plus整合。

2.3.1、创建子Module


    
        mybatis-plus-案例01
        org.example
        1.0-SNAPSHOT
    
    4.0.0

    itcast-mybatis-plus-simple


2.3.2 导入日志文件  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
2.3.3 Mybatis实现查询User

第一步,编写MybatisConfig.xml文件







    
    
        
        
            
            
            
            
                
                
                
                
                
            
        
    

    
    
        
        
    

第二步,编写User实体对象

        第一种方法:使用get和set方法

package com.itheima.domain;

import com.baomidou.mybatisplus.annotation.TableName;


@TableName("tb_user")
public class User {
    private long id;
    private String username;
    private String password;
    private String name;
    private Integer age;
    private String email;

    public User() {
    }

    public User(int id, String user_name, String password, String name, int age, String email) {
        this.id = id;
        this.username = user_name;
        this.password = password;
        this.name = name;
        this.age = age;
        this.email = email;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", user_name='" + username + ''' +
                ", password='" + password + ''' +
                ", name='" + name + ''' +
                ", age=" + age +
                ", email='" + email + ''' +
                '}';
    }
}

        第二种方法:使用lombok进行了简化bean操作

package cn.itcast.mp.simple.pojo;

import lombok.AllArgsConstructor;
import lombok.Data; 
import lombok.NoArgsConstructor;

 @Data
 @NoArgsConstructor
 @AllArgsConstructor
 public class User {

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

第三步,编写UserMapper接口

package com.itheima.mapper;

import com.baomidou.mybatisplus.core.mapper.baseMapper;
import com.itheima.domain.User;

import java.util.List;


public interface UserMapper{

    List findAll();
}

第四步,编写映射配置文件 UserMapper.xml文件