用IDEA基于maven项目使用mybatis-generator-plugin生成mapper和pojo

来源:互联网 发布:阳江编程招聘 编辑:程序博客网 时间:2024/06/05 17:58

原文地址


虽然MyBatis很方便,但是想要手写全部的mapper还是很累人的,好在MyBatis官方推出了自动化工具,可以根据数据库和定义好的配置直接生成DAO层及以下的全部代码,非常方便.
首先wom我们自己建一个maven项目,我这里就不详细写
mybatis-generator使用配置

打开pom.xml文件,添加3个依赖和mybatis-generator插件,分别是1.mybatis3.xjar包 2.逆向工程核心包 3.数据库连接包 4.log4j.jar用于输出日志

<build>        <plugins>            <plugin>                <!--                用maven mybatis插件                如果不在plugin里面添加依赖包得引用的话,会找不到相关得jar包,                在plugin外部得jar包,他不会去找到并执行,                所以要把plugin运行依赖得jar配置都放在里面                -->                <groupId>org.mybatis.generator</groupId>                <artifactId>mybatis-generator-maven-plugin</artifactId>                <version>1.3.5</version>                <dependencies>                    <dependency>                        <groupId>log4j</groupId>                        <artifactId>log4j</artifactId>                        <version>1.2.17</version>                    </dependency>                    <dependency>                        <groupId>org.mybatis</groupId>                        <artifactId>mybatis</artifactId>                        <version>3.2.6</version>                    </dependency>                    <dependency>                        <groupId>mysql</groupId>                        <artifactId>mysql-connector-java</artifactId>                        <version>5.1.30</version>                    </dependency>                </dependencies>            </plugin>        </plugins>    </build>

在src/main/resources包下创建逆向工程配置文件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>    <context id="testTables" targetRuntime="MyBatis3">        <commentGenerator>            <!-- 是否去除自动生成的注释 true:是 : false:否 -->            <property name="suppressAllComments" value="true" />        </commentGenerator>        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->        <jdbcConnection driverClass="com.mysql.jdbc.Driver"                        connectionURL="jdbc:mysql://localhost:3306/mybatis"                        userId="root"                        password="123qwe">        </jdbcConnection>        <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"            connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"            userId="yycg"            password="yycg">        </jdbcConnection> -->        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和            NUMERIC 类型解析为java.math.BigDecimal -->        <javaTypeResolver>            <property name="forceBigDecimals" value="false" />        </javaTypeResolver>        <!-- targetProject:生成PO类的位置 -->        <javaModelGenerator targetPackage="po"                            targetProject="src">            <!-- enableSubPackages:是否让schema作为包的后缀 -->            <property name="enableSubPackages" value="false" />            <!-- 从数据库返回的值被清理前后的空格 -->            <property name="trimStrings" value="true" />        </javaModelGenerator>        <!-- targetProject:mapper映射文件生成的位置 -->        <sqlMapGenerator targetPackage="mapper"                         targetProject="src">            <!-- enableSubPackages:是否让schema作为包的后缀 -->            <property name="enableSubPackages" value="false" />        </sqlMapGenerator>        <!-- targetPackage:mapper接口生成的位置 -->        <javaClientGenerator type="XMLMAPPER"                             targetPackage="mapper"                             targetProject="src">            <!-- enableSubPackages:是否让schema作为包的后缀 -->            <property name="enableSubPackages" value="false" />        </javaClientGenerator>        <!-- 指定数据库表 -->        <table tableName="items"></table>        <table tableName="orders"></table>        <table tableName="orderdetail"></table>        <!-- <table schema="" tableName="sys_user"></table>        <table schema="" tableName="sys_role"></table>        <table schema="" tableName="sys_permission"></table>        <table schema="" tableName="sys_user_role"></table>        <table schema="" tableName="sys_role_permission"></table> -->    <table tableName="t_warningSetting" domainObjectName="WarningSetting" enableCountByExample="false" enableUpdateByExample="false"               enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>        <!-- 有些表的字段需要指定java类型         <table schema="" tableName="">            <columnOverride column="" javaType="" />        </table> -->    </context></generatorConfiguration>

需要修改的地方:

javaModelGenerator,生成PO类的位置 
sqlMapGenerator,mapper映射文件生成的位置 
javaClientGenerator,mapper接口生成的位置 
table,其tableName属性对应数据库中相应表

点击IDEA右边的maven projects标签,按下图进行操作 
这里写图片描述

运行插件后最后的工程目录结构如下: 
这里写图片描述

mybatis-generator的应用

mybatis-generator往往是单独的建立一个普通工程如A,通过运行逆向工程生成相应的mapper和po后然后再将这两个包拷贝到我们使用到ssm框架创建的web项目,而不是直接在web项目中使用逆向工程。

通过运行上述的程序,我们便通过数据库中的表快速的生成了相应的po类和mapper,而不用我们程序员自己再编写相应的po类和mapper,为我们带来了很大的方便,所以这个一定要学会,在后续开发中只要使用到mybatis的地方我们都会通过mybatis的逆向工程自动为我们生成mapper和po类。


原文地址


阅读全文
0 0