IDEA mybatis 插件mybatis-generator 使用

Eclipse中可以可以使用mybatis插件自动生成实体类、以及mybatis 的xml文件,在idea中同样适用。

1、在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>
    <properties resource="generator.properties"></properties>
     <classPathEntry location="${jdbc.driverLocation}"/>
    <context id="default" targetRuntime="MyBatis3">
   
        <commentGenerator>
            <property name="suppressDate" value="true" />
        </commentGenerator>
     
        <jdbcConnection driverClass="${jdbc.driverClass}" connectionURL="${jdbc.connectionURL}" userId="${jdbc.userId}" password="${jdbc.password}">
        </jdbcConnection>
      
        <javaModelGenerator targetPackage="hf.generateEntity" targetProject="src/main/java">
             <property name="constructorBased" value="true"/>
              
            <property name="immutable" value="true"/>
            
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
      
        <sqlMapGenerator targetPackage="hf.generateSqlXml" targetProject="src/main/java">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
     
            <javaClientGenerator targetPackage="hf.generateEntity" targetProject="src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value=""/>
           
            <property name="exampleMethodVisibility" value=""/>
           
            <property name="methodNameCalculator" value=""/>
            <property name="rootInterface" value=""/>
        </javaClientGenerator>
        <!-- tableName 为表名. schema 为数据库名称-->
        <table tableName="audition_author" schema="bookbar">
                   
            <generatedKey column="author_id" sqlStatement="MySql" identity="true" />
        </table>
    </context>
</generatorConfiguration>

上面的xml看着可能有些乱,不过复制粘贴到自己的编辑器中就好些,下面逐一解释。

驱动文件制定配置项,配置驱动文件所在的位置:
例如:
主标签,下面可以包含其他标签,targetRuntime=“MyBatis3”,默认是mybatis3,可以填选值为MyBatis3,MyBatis3Simple(默认的),Ibatis2Java2,Ibatis2Java5
代码上的注释规则
属性:properties
name为suppressAllComments value 为false时打开注释,true时为关闭注释。
name为suppressDate false打开时间标志,为true时关闭。

  <property name="suppressDate" value="true" />

db连接相关配置

<jdbcConnection driverClass="COM.ibm.db2.jdbc.app.DB2Driver"
    connectionURL="jdbc:db2:MBGTEST"
    userId="db2admin"
    password="db2admin">
</jdbcConnection>

上述示例中采用的是在配置文件中配置
mybatis专门用来处理numeric和decimal 类型的策略。

<javaTypeResolver>
  <property name="forceBigDecimals" value="true" />
</javaTypeResolver>

实体类生成配置

<javaModelGenerator targetPackage="domain"
            targetProject="app">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="false" />
        </javaModelGenerator>
<sqlMapGenerator>

在mybatis2中是必须的,在mybatis3中,只有xml方式时需要。

<pre name="code" class="html"><sqlMapGenerator targetPackage="test.model"
     targetProject="\MyProject\src">
  <property name="enableSubPackages" value="true" />
</sqlMapGenerator></span>

targetProject是生成实体所在的文件夹位置,一个是是否允许有子程序包。

<javaClientGenerator type="XMLMAPPER"
            targetPackage="dao.mapper" targetProject="app">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

客户端代码,生成实体类
targetPackage:生成实体类的包位置,targetProject:源代码位置。

type=“ANNOTATEDMAPPER” 生成java Model和基于注解的Mapper对象。

type=“MIXEDMAPPER” 生成基于注解的java Model 和相应的Mapper对象。

type=“XMLMAPPER” ,生成SQL Map xml文件和独立的Mapper接口。

数据库相关配置
tableName:数据库表名称,schema 为数据库名称。
是否在插入的时候生成主键,column 为主键名称,sqlStatement MySql,则为生成mysql的主键方式,identity是否是自增主键。
ignoreColumn忽略的字段

<table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer" >
      <ignoreColumn column="FRED" />
      ..
    </table>

columnRenamingRule按规则将数据库中的字段重命名为实体类的属性.

<table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer" >
  <columnRenamingRule searchString="^CUST_" replaceString="" />
  ..
</table>

columnOverride将数据库中的字段重命名为实体类的属性.

column:数据库中字段名.

property: pojo属性名

javaType:pojo类型

jdbcType:数据库字段类型.

<table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer" >
      <property name="useActualColumnNames" value="true"/>
      <generatedKey column="ID" sqlStatement="DB2" identity="true" />
      <columnOverride column="DATE_FIELD" property="startDate" />
      <ignoreColumn column="FRED" />
      <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
    </table>

2 在maven项目的pom中添加如下插件

<span style="font-family:SimSun;font-size:18px;">  <build>
    <finalName>xxx</finalName>
    <plugins>
      <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.2</version>
        <configuration>
          <verbose>true</verbose>
          <overwrite>true</overwrite>
        </configuration>
      </plugin>
    </plugins>
  </build>

3 采用读取配置文件读取相关配置
配置文件generator.properties 配置如下.(ps:我用的是mysql的数据库)

#jdbc.driverLocation=D:\\maven\\com\\oracle\\ojdbc14\\10.2.0.4.0\\ojdbc14-10.2.0.4.0.jar
jdbc.driverLocation=D:\\.m2\\repository\\mysql\\mysql-connector-java\\5.1.9\\mysql-connector-java-5.1.9.jar
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.connectionURL=jdbc:mysql://12.233.221.***:3306/dbName?useUnicode=true&characterEncoding=UTF-8
jdbc.userId=root
jdbc.password=root

4 添加插件的运行命令

IDEA mybatis 插件mybatis-generator 使用_第1张图片
在Runner中最好添加参数
VM Options: -Dmaven.multiModuleProjectDirectory=E:\project_github\j2ee-demo\mybatis-generator
然后执行run或者debug都可以,如果一次没有成功,一定是generatorConfig.xml的配置文件中某些配置配置错了,根据错误提示改动,或者先注释掉某些配置,执行成功后再看这些配置的作用。
生成如下所示:
IDEA mybatis 插件mybatis-generator 使用_第2张图片
ps:intellij插件iBATIS/MyBatis mini-plugin 可以让我们从dao层直接直接点击到对应的xml,很方便快捷.
总结:
天下武功,无坚不破,唯快不破。多想想天天让自己重复做的事情,哪些是每天必须用鼠标点啊点的,使用怎样更快捷的方式来完成呢?你可能费了点时间来查找一些快捷键,或者一种更快的方式,但是点点滴滴的快起来,你的剑会更加锋利。出招吧!O(∩_∩)O~

你可能感兴趣的:(JAVA从入门到精通的进阶之路,1024程序员节,ide,java)