zoukankan      html  css  js  c++  java
  • 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>
     
  • 相关阅读:
    又玩起了“数独”
    WebService应用:音乐站图片上传
    大家都来DIY自己的Blog啦
    CSS导圆角,不过这个代码没有怎么看懂,与一般的HTML是不同
    网站PR值
    CommunityServer2.0何去何从?
    网络最经典命令行
    炎热八月,小心"落雪"
    Topology activation failed. Each partition must have at least one index component from the previous topology in the new topology, in the same host.
    SharePoint 2013服务器场设计的一些链接
  • 原文地址:https://www.cnblogs.com/niujifei/p/15317599.html
Copyright © 2011-2022 走看看