您的位置:首页 > 移动开发

spring boot配置mybatis代码自动生成(mybatis通用mapper相关基础代码自动生成)

2017-09-30 11:33 1656 查看
一、建立一个spring boot项目,在pom.xml文件中进入mybatis自动生成代码相关的jar包:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xmlns="http://maven.apache.org/POM/4.0.0"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>tk.mybatis</groupId>

    <artifactId>mybatis-spring-boot</artifactId>

    <version>1.0.0-SNAPSHOT</version>

    <parent>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-parent</artifactId>

        <version>1.5.6.RELEASE</version>

    </parent>

    <properties>

        <java.version>1.8</java.version>

        <mybatis.spring.version>1.2.4</mybatis.spring.version>

    </properties>

    <dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-jdbc</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-aop</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-freemarker</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-devtools</artifactId>

            <optional>true</optional>

        </dependency>

        <dependency>

            <groupId>mysql</groupId>

            <artifactId>mysql-connector-java</artifactId>

        </dependency>

        <dependency>

            <groupId>com.fasterxml.jackson.core</groupId>

            <artifactId>jackson-core</artifactId>

        </dependency>

        <dependency>

            <groupId>com.fasterxml.jackson.core</groupId>

            <artifactId>jackson-databind</artifactId>

        </dependency>

        <dependency>

            <groupId>com.fasterxml.jackson.datatype</groupId>

            <artifactId>jackson-datatype-joda</artifactId>

        </dependency>

        <dependency>

            <groupId>com.fasterxml.jackson.module</groupId>

            <artifactId>jackson-module-parameter-names</artifactId>

        </dependency>

        <dependency>

            <groupId>com.alibaba</groupId>

            <artifactId>druid</artifactId>

            <version>1.0.11</version>

        </dependency>

        <!--mybatis-->

        <dependency>

            <groupId>org.mybatis.spring.boot</groupId>

            <artifactId>mybatis-spring-boot-starter</artifactId>

            <version>RELEASE</version>

        </dependency>

        <!--mapper-->

        <dependency>

            <groupId>tk.mybatis</groupId>

            <artifactId>mapper-spring-boot-starter</artifactId>

            <version>RELEASE</version>

        </dependency>

        <!--pagehelper-->

        <dependency>

            <groupId>com.github.pagehelper</groupId>

            <artifactId>pagehelper-spring-boot-starter</artifactId>

            <version>RELEASE</version>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-configuration-processor</artifactId>

            <optional>true</optional>

        </dependency>

        <dependency>

            <groupId>com.alibaba</groupId>

            <artifactId>druid-spring-boot-starter</artifactId>

            <version>1.1.0</version>

        </dependency>

<dependency>

           <groupId>org.mybatis.generator</groupId>

            <artifactId>mybatis-generator-core</artifactId>

           <version>1.3.2</version>

        </dependency>

    </dependencies>

    <build>

        <plugins>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

                <dependencies>

                    <dependency>

                        <groupId>org.springframework</groupId>

                        <artifactId>springloaded</artifactId>

                        <version>1.2.5.RELEASE</version>

                    </dependency>

                </dependencies>

            </plugin>

            <plugin>

                <groupId>org.mybatis.generator</groupId>

                <artifactId>mybatis-generator-maven-plugin</artifactId>

                <version>1.3.2</version>

                <configuration>

                    <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>

                    <overwrite>true</overwrite>

                    <verbose>true</verbose>

                </configuration>

                <dependencies>

                    <dependency>

                        <groupId>mysql</groupId>

                        <artifactId>mysql-connector-java</artifactId>

                        <version>${mysql.version}</version>

                    </dependency>

                    <dependency>

                        <groupId>tk.mybatis</groupId>

                        <artifactId>mapper</artifactId>

                        <version>3.4.0</version>

                    </dependency>

                </dependencies>

            </plugin>

        </plugins>

    </build>

</project>

二、修改项目配置文件application.properties:

spring.mvc.view.prefix=/templates/

spring.mvc.view.suffix=.ftl

spring.freemarker.cache=false

spring.freemarker.request-context-attribute=request

# mybatis \u914D\u7F6E

mybatis.type-aliases-package=com.springboot.wlwglpt.bean

mybatis.mapper-locations=classpath:mapper/*.xml

# \u901A\u7528 Mapper \u914D\u7F6E

mapper.mappers=MyMapper

mapper.not-empty=false

mapper.identity=MYSQL

# \u5206\u9875\u63D2\u4EF6\u914D\u7F6E

pagehelper.helperDialect=mysql

pagehelper.reasonable=true

pagehelper.supportMethodsArguments=true

pagehelper.params=count=countSql

#数据库配置

druid.driver-class=com.mysql.jdbc.Driver

druid.url=jdbc:mysql://localhost:3306/wlw

druid.username=root

druid.password=root

注意: <configurationFile>标签中配置的是“generatorConfig.xml”文件位置。

三、在resource文件夹下建立子文件夹“generator”,在该子文件夹下建立mybatis代码自动生成配置文件generatorConfig.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE generatorConfiguration

        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>

    <properties resource="application.properties"/>

    <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">

        <property name="beginningDelimiter" value="`"/>

        <property name="endingDelimiter" value="`"/>

        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">

            <property name="mappers" value="com.springboot.MyMapper"/>

        </plugin>

        <jdbcConnection driverClass="${druid.driver-class}"

                        connectionURL="${druid.url}"

                        userId="${druid.username}"

                        password="${druid.password}">

        </jdbcConnection>

        <javaModelGenerator targetPackage="com.springboot.wlwglpt.bean" targetProject="src/main/java"/>

        <sqlMapGenerator targetPackage="com.springboot.wlwglpt.mapper" targetProject="src/main/java"/>

        <javaClientGenerator targetPackage="com.springboot.wlwglpt.mapper" targetProject="src/main/java"

                             type="XMLMAPPER"/>

<!-- 生成所有的表 -->

        <table tableName="%">

            <!-- 需要插入时返回主键值,请将此属性打开,column值为主键的列明  --> 

            <generatedKey column="id" sqlStatement="Mysql" identity="true"/>

        </table>

        

        <!-- 生成指定的表:多个表写多条记录-->

        <!-- <table tableName="state_link">

            <generatedKey column="id" sqlStatement="Mysql" identity="true"/>

        </table>

        <table tableName="sys_menu">

        </table> -->

    </context>

</generatorConfiguration>

四、在src/main目录下建立java文件夹,建立子文件夹“com”->"springboot",其下建立“MyMapper.java”文件:

package com.springboot;

import tk.mybatis.mapper.common.Mapper;

import tk.mybatis.mapper.common.MySqlMapper;

/**

 * 继承自己的MyMapper

 * @author Chen,Shunhua

 */

public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {

    //TODO

    //FIXME 特别注意,该接口不能被扫描到,否则会出错

}

五、可以在com文件夹下建立代码自动生成类MybatisGeneratorUtil:

import org.mybatis.generator.api.MyBatisGenerator;

import org.mybatis.generator.config.Configuration;

import org.mybatis.generator.config.xml.ConfigurationParser;

import org.mybatis.generator.exception.InvalidConfigurationException;

import org.mybatis.generator.exception.XMLParserException;

import org.mybatis.generator.internal.DefaultShellCallback;

 

import java.io.File;

import java.io.IOException;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

/**

 * mybatis代码自动生成启动类

 * 不需要生成所有表对应代码,请到generatorConfig.xml文件中的<table>标签中进行配置

 * 参照网址:http://blog.csdn.net/a_piaoyouareminemine/article/details/50114721

 * @param args

 */

public class MybatisGeneratorUtil {
public static void main(String[] args) {
        try {
            System.out.println("start generator ...");
            List<String> warnings = new ArrayList<String>();
            boolean overwrite = true;
            File configFile = new File(MybatisGeneratorUtil.class.getResource("/generator/generatorConfig.xml").getFile());
            ConfigurationParser cp = new ConfigurationParser(warnings);
 
            Configuration config = cp.parseConfiguration(configFile);
            DefaultShellCallback callback = new DefaultShellCallback(overwrite);
            MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
            myBatisGenerator.generate(null);
            System.out.println("end generator!");
        } catch (IOException e) {
            e.printStackTrace();
        } catch (XMLParserException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (InvalidConfigurationException e) {
            e.printStackTrace();
        }
    }

}

六、生成代码方法:

(1)选中pom.xml文件,选择“run as”->"Maven build",输入:mybatis-generator:generate命令执行;

(2)右击MybatisGeneratorUtil.java,选择“run as”->"java application"生成文件。

七、配置文件说明:

(1)、默认是mysql数据库,数据库信息配置在application.properties中进行修改;

(2)、JavaBean、mapper相关文件的包名在generatorConfig.xml中配置;

(3)、mapper.xml文件中javaBean的路径在application.properties中的mybatis.type-aliases-package中进行配置;

(4)、MyMapper的文件位置在generatorConfig.xml文件中的<plugin>标签中进行配置;

(5)、需保证自己项目中的MyMapper.java文件的位置跟这个项目一致;不一致请按照第4点进行修改;

八、项目目录结构
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: