MyBatisPlus 之 集成MP

一、搭建环境

  1、创建测试表

-- 创建库
CREATE DATABASE mybatis_plus;
-- 使用库
USE mybatis_plus;
-- 创建表
CREATE TABLE tbl_employee(
     id INT(11) PRIMARY KEY AUTO_INCREMENT,
     last_name VARCHAR(50),
     email VARCHAR(50),
     gender CHAR(1),
     age INT
);

-- 插入数据
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Tom','tom@qq.com',1,22);
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Jerry','jerry@qq.com',0,25);
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Black','black@qq.com',1,30);
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('White','white@qq.com',0,35);

  2、创建 JavaBean 类

public class Employee {
    private Integer id;
    private String lastName;
    private String email;
    private Integer gender;
    private Integer age;
    private Double salary;
}

    注意:定义 JavaBean 中成员变量时所使用的类型建议使用包装类。(基本数据类型会有默认值,包装类型默认为 null)

  3、加入 Maven 依赖信息

        <!--mp依赖
            MybatisPlus 会自动维护Mybatis以及Mybatis-spring相关的依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>2.3</version>
        </dependency>

    完整的Maven 依赖信息:

    <dependencies>
        <!--单元测试依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!--mp依赖
            MybatisPlus 会自动维护Mybatis以及Mybatis-spring相关的依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>2.3</version>
        </dependency>
        <!--log4j-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!--c3p0-->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!--spring-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.13.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>4.3.24.RELEASE</version>
        </dependency>
    </dependencies>

  4、搭建MyBatis与Spring的环境

    mybatis-config.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>


    <databaseIdProvider type="DB_VENDOR">
        <!--  为不同的数据库厂商起别名      -->
        <property name="MySQL" value="mysql"/>
        <property name="SQL Server" value="sqlserver"/>
        <property name="DB2" value="db2"/>
        <property name="Oracle" value="oracle" />
    </databaseIdProvider>

    <mappers>
        <package name="com.njf.mp.mapper"/>
    </mappers>
</configuration>

    applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:mybatis-sprin="http://mybatis.org/schema/mybatis-spring"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd">

    <!--  Spring 希望管理所有的业务逻辑组件,等  -->
    <context:component-scan base-package="com.njf.mp" use-default-filters="true">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>


    <!--引入数据库的配置文件-->
    <context:property-placeholder location="classpath:dbconfig.properties" />

    <!--  Spring 控制业务逻辑,数据源、事务控制,aop  -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

    <!--spring 事务管理器-->
    <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!--开启基于注解的事务管理-->
    <tx:annotation-driven transaction-manager="dataSourceTransactionManager"/>

    <!--
        整合 mybatis
        目的:
            1、spring 管理所有组件,mapper 的实现类
                service ===》Dao @Autowired 自动注入的 mapper
            2、spring 用来管理事务,声明式事务
    -->

    <!--
        创建出 SqlSessionFactory 对象
        MyBatis:org.mybatis.spring.SqlSessionFactoryBean

        调整 SqlSessionFactory 为 MyBatis-Plus 的 SqlSessionFactory
        MyBatisPlus:com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean
    -->
    <bean id="sessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="typeAliasesPackage" value="com.njf.mp.bean"/>
        <!-- configLocation 指定全局配置文件的位置-->
        <property name="configLocation" value="classpath:mybatis-config.xml" />
        <!-- 指定mapper 文件的位置   -->
        <property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"/>
    </bean>

    <!--
        扫描所有的mapper接口的实现,让这些 mapper 能够自动注入
        base-package:指定mapper接口的包名
    -->
    <!--<mybatis-sprin:scan base-package="com.njf.mp.mapper"></mybatis-sprin:scan>-->

    <!--老版格式-->
    <!-- 配置mybatis 扫描mapper接口的路径-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.njf.mp.mapper"/>
    </bean>
</beans>

    dbconfig.properties

jdbc.driver=com.mysql.jdbc.Driver
#jdbc.url=jdbc:mysql://localhost:3306/mybatis?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
jdbc.url=jdbc:mysql://localhost:3306/mybatis_plus?3useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root

    log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <param name="Encoding" value="UTF-8"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d{MM-dd  HH:mm:ss,SSS} %m  (%F:%L) 
"/>
        </layout>
    </appender>
    <logger name="java.sql">
        <level value="debug"/>
    </logger>
    <logger name="org.apache.ibatis">
        <level value="info"/>
    </logger>
    <root>
        <level value="debug"/>
        <appender-ref ref="STDOUT"/>
    </root>
</log4j:configuration>

二、集成 MyBatis-Plus

  1、MyBatis-Plus 的继承非常简单,对于 Spring 仅仅需要把 MyBatis 自带的 MyBatisSqlSessionFactoryBean 替换为 MP 自带的即可。

  2、修改配置文件内容

    <!--
        创建出 SqlSessionFactory 对象
        MyBatis:org.mybatis.spring.SqlSessionFactoryBean

        调整 SqlSessionFactory 为 MyBatis-Plus 的 SqlSessionFactory
        MyBatisPlus:com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean
    -->
    <bean id="sessionFactoryBean" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="typeAliasesPackage" value="com.njf.mp.bean"/>
        <property name="typeAliases">
            <array>
                <value>com.njf.mp.bean.Employee</value>
            </array>
        </property>
        <!-- configLocation 指定全局配置文件的位置-->
        <property name="configLocation" value="classpath:mybatis-config.xml" />
        <!-- 指定mapper 文件的位置   -->
        <!--<property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"/>-->

        <!--  注入全局MP策略配置  -->
        <property name="globalConfig" ref="globalConfig"/>
    </bean>
 
原文地址:https://www.cnblogs.com/niujifei/p/15317599.html