• 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>
     
  • 相关阅读:
    MySQL常见问题(包括忘记root密码)
    MySQL运维面试基础题目
    系统根目录可用空间低于20%,清理mysql binary logs日志空间
    服务检测是否正常运行的shell脚本
    CentOS下安装 MySQL5.5
    问题处理--ceph集群告警: pgs inconsistent修复方案
    十、Spring中常用注解-分层整理
    七、SXSSFWorkbook生成大excle,避免内存溢出
    一、FreeMarker实现对js和css压缩
    九、web.xml理解
  • 原文地址:https://www.cnblogs.com/niujifei/p/15317599.html
Copyright © 2020-2023  润新知