Mybatis逆向工程之三种实现方法

1.逆向工程之原始方法

(1)下载两个jar包:mysql-connector-java(6.x版本及以上的和5.x版本有所区别,主要是驱动和时区;详情参见:https://blog.csdn.net/csugonghang/article/details/79435033)、mybatis-generator-core

(2)创建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>
    <!-- 数据库驱动,如果配置文件和上面两个jar在同一级目录,则可以直接如下填写,否则为了防止报错直接写绝对路径即可-->
    <classPathEntry
        location="mysql-connector-java-5.1.38.jar" />
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"

            connectionURL="jdbc:mysql://localhost/liuzj"
            userId="root" password="">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!-- 生成模型的包名和位置 -->
        <javaModelGenerator
            targetPackage="com.liuzj.mybatis.entity"
            targetProject="E:\self-code\mybatistest\src\main\java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- 生成映射文件的包名和位置 -->
        <sqlMapGenerator
            targetPackage="mapper"
            targetProject="E:\self-code\mybatistest\src\main\resources">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成的Mapper接口的路径 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.liuzj.mybatis.mapper"
                             targetProject="E:\self-code\mybatistest\src\main\java">
            <property name="enableSubPackages" value="true"/>
            <property name="rootClass" value="com.springboot.mybatis.demo.mapper.common.BaseMapper"/>
        </javaClientGenerator>

        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名 -->
        <table tableName="person" domainObjectName="Person"
            enableCountByExample="false" enableUpdateByExample="false"
            enableDeleteByExample="false" enableSelectByExample="false"
            selectByExampleQueryId="false"></table>
    </context>

</generatorConfiguration>  

(3)将上面三个东西一起放到项目的特定位置,此样例是将三个东西一起放到了和项目src同级目录,如果是其他目录也可以,但是需要改动generatorConfig配置文件的相关配置

(4)执行 java -jar mybatis-generator-core-5.1.38.jar -configfile generatorConfig.xml -overwrite



2.逆向工程之Maven集成

(1)在pom文件中引入插件:mybatis-generator-maven-plugin;具体样例如下:

<build>
        <plugins>
            <!-- mybatis-generator反向工程 -->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
                    <!-- 在控制台打印执行日志 -->
                    <verbose>true</verbose>
                    <!-- 重复生成时会覆盖之前的文件-->
                    <overwrite>true</overwrite>
                    <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                </configuration>
                <!-- 此插件运行所要依赖的jar -->
                <dependencies>

                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.38</version>
                    </dependency>

                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.5</version>
                    </dependency>

                    <dependency>
                        <groupId>org.mybatis</groupId>
                        <artifactId>mybatis</artifactId>
                        <version>3.4.2</version>
                    </dependency>

                </dependencies>
            </plugin>
        </plugins>
    </build>

(2)创建generatorConfig配置文件并放到上面 configurationFile 配置的路径下;详细配置如下:

<?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>
    <!-- 数据库驱动 -->
    <!--<classPathEntry-->
        <!--location="mysql-connector-java-5.1.38.jar" />-->
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"

            connectionURL="jdbc:mysql://localhost/liuzj"
            userId="root" password="">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!-- 生成模型的包名和位置 -->
        <javaModelGenerator
            targetPackage="com.liuzj.mybatis.entity"
            targetProject="E:\self-code\mybatistest\src\main\java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- 生成映射文件的包名和位置 -->
        <sqlMapGenerator
            targetPackage="mapper"
            targetProject="E:\self-code\mybatistest\src\main\resources">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成的Mapper接口的路径 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.liuzj.mybatis.mapper"
                             targetProject="E:\self-code\mybatistest\src\main\java">
            <property name="enableSubPackages" value="true"/>
            <property name="rootClass" value="com.springboot.mybatis.demo.mapper.common.BaseMapper"/>
        </javaClientGenerator>

        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名 -->
        <table tableName="person" domainObjectName="Person"
            enableCountByExample="false" enableUpdateByExample="false"
            enableDeleteByExample="false" enableSelectByExample="false"
            selectByExampleQueryId="false"></table>
    </context>

</generatorConfiguration>  

注意此时驱动包无需再指定了

(3)找到对应Maven任务,点击执行即可:



3.逆向工程之Gradle集成

(1)在build.gradle配置文件中添加如下信息:

buildscript {
    repositories {
        mavenLocal()
        maven{ url ‘http://maven.aliyun.com/nexus/content/groups/public/‘}
        jcenter()
    }  // maven插件
    dependencies {
        classpath "compile group: ‘org.mybatis.generator‘, name: ‘mybatis-generator-maven-plugin‘, version: ‘1.3.0‘"
    }
}

// MyBatis代码自动生成工具
apply plugin: "com.arenagod.gradle.MybatisGenerator"

configurations {
    mybatisGenerator
}
// 配置文件位置
mybatisGenerator {
    verbose = true
    configFile = ‘src/main/resources/generatorConfig.xml‘
}

(2)在 mybatisGenerator 配置中的位置创建generatorConfig配置文件,其详细配置和第一种方式一样、

(3)找到对应的gradle任务,点击执行即可



总结:以上方式虽然已经很简洁了,但是能不能将其集成到Spring中去呢?以一个Bean的形式省去繁琐的配置,希望广大园友留言

原文地址:https://www.cnblogs.com/lzj123/p/9952964.html

时间: 2024-12-18 03:19:31

Mybatis逆向工程之三种实现方法的相关文章

(转)NGUI研究院之三种方式监听NGUI的事件方法

NGUI事件的种类很多,比如点击.双击.拖动.滑动等等,他们处理事件的原理几乎万全一样,本文只用按钮来举例. 1.直接监听事件 把下面脚本直接绑定在按钮上,当按钮点击时就可以监听到,这种方法不太好很不灵活. 1 2 3 4 void OnClick() { Debug.Log("Button is Click!!!"); }   2.使用SendMessage 选择按钮后,在Unity导航菜单栏中选择Component->Interaction->Button Messag

图像处理之三种常见双立方插值算法

http://blog.csdn.net/jia20003/article/details/40020775 图像处理之三种常见双立方插值算法 双立方插值计算涉及到16个像素点,其中(i', j')表示待计算像素点在源图像中的包含 小数部分的像素坐标,dx表示X方向的小数坐标,dy表示Y方向的小数坐标.具体 可以看下图: 根据上述图示与双立方插值的数学表达式可以看出,双立方插值本质上图像16个像素点 权重卷积之和作为新的像素值. 其中R(x)表示插值表达式,可以根据需要选择的表达式不同.常见有基

十 mybatis逆向工程

1       逆向工程 1.1     什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml.po..) 企业实际开发中,常用的逆向工程方式: 由于数据库的表生成java代码. 1.2     下载逆向工程 1.3     使用方法(会用) 1.3.1     运行逆向工程 建议使用java程序方式,不依赖开发工具. 1.3.2     生成代码配置文件 1

(转)详解LVS负载均衡之三种工作模型原理和10种调度算法

前言:最近在为我们的产品在做高可用,一边搭环境,一边了解相关知识,搜到这篇博客,质量不错,表述清晰,于是转载过来学习. 标签:详解LVS负载均衡之三种工作模型原理和10种调度算法 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://linuxnx.blog.51cto.com/6676498/1195379 LVS负载均衡原理和算法详解    Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大

Mybatis中配置Mapper的方法

Mybatis中配置Mapper的方法 在这篇文章中我主要想讲一下Mybatis配置文件中mappers元素的配置.关于基础部分的内容可以参考http://blog.csdn.net/elim168/article/details/40622491. 我们知道在Mybatis中定义Mapper信息有两种方式,一种是利用xml写一个对应的包含Mapper信息的配置文件:另一种就是定义一个Mapper接口,然后定义一些相应的操作方法,再辅以相应的操作注解. 现假设我有这样一个实体类: Java代码 

(转载)Android之三种网络请求解析数据(最佳案例)

[置顶] Android之三种网络请求解析数据(最佳案例) 2016-07-25 18:02 4725人阅读 评论(0) 收藏 举报  分类: Gson.Gson解析(1)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 小武:相信大家都用过网络请求解析数据,只是方法不一样而已,但是,逻辑都是差不多的: 一:AsyncTask解析数据 AsyncTask主要用来更新UI线程,比较耗时的操作可以在AsyncTask中使用. AsyncTask是个抽象类,使用时需要继承这个

Spring+SpringMVC+MyBatis深入学习及搭建(十)——MyBatis逆向工程

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6973266.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(九)--MyBatis和Spring整合 使用官方网站的mapper自动生成工具mybatis-generator-core-1.3.2来生成po类和mapper映射文件. 1.什么是逆向工程 mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程可以针对单表自动生成mybatis执行所需要

mybatis逆向工程出现的问题

在IDEA中,进行mybatis逆向工程生成代码时,出现了一些令人苦恼的问题,老是连接出现问题,然而Navicat却是可以正常连接MySql8.0.11的,经过不断的尝试,终于解决了问题. 0.其实一开始安装好Navicat创建数据库连接,点击连接测试测试时,就出现了问题:1251- Client does not support authentication protocol. 网上百度了下: 原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql

回顾一下MyBatis逆向工程——自动生成代码

前言 最近做的项目(SSM+Shiro)的数据库表已经创建完成,一共有15张表,如果我们一个个去写pojo/bean的代码以及各种sql语句的话未免太过麻烦而且很容易出错,这个时候我们就需要MyBatis逆向工程去为我们生成这些基本的东西.先来简单的了解一下什么是逆向工程 一 什么是逆向工程 官网解释浓缩版:MyBatis逆向工程需要用到的就是MyBatis官方提供的MyBatis Generator(MBG).MBG是MyBatis和iBATIS的代码生成器,它将为所有版本的MyBatis以及