专栏首页菩提树下的杨过利用mybatis-generator自动生成代码

利用mybatis-generator自动生成代码

mybatis-generator有三种用法:命令行、eclipse插件、maven插件。个人觉得maven插件最方便,可以在eclipse/intellij idea等ide上可以通用。

下面是从官网上的截图:(不过官网www.mybatis.org 最近一段时间,好象已经挂了)

一、在pom.xml中添加plugin

 1 <plugin>
 2     <groupId>org.mybatis.generator</groupId>
 3     <artifactId>mybatis-generator-maven-plugin</artifactId>
 4     <version>1.3.2</version>
 5     <configuration>
 6         <configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>
 7         <verbose>true</verbose>
 8         <overwrite>true</overwrite>
 9     </configuration>
10     <executions>
11         <execution>
12             <id>Generate MyBatis Artifacts</id>
13             <goals>
14                 <goal>generate</goal>
15             </goals>
16         </execution>
17     </executions>
18     <dependencies>
19         <dependency>
20             <groupId>org.mybatis.generator</groupId>
21             <artifactId>mybatis-generator-core</artifactId>
22             <version>1.3.2</version>
23         </dependency>
24     </dependencies>
25 </plugin>

其中generatorConfig.xml的位置,大家根据实际情况自行调整

二、generatorConfig.xml配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE generatorConfiguration
 3         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
 4         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
 5 
 6 <generatorConfiguration>
 7     <classPathEntry
 8             location="C:/Oracle/Middleware/wlserver_10.3/server/lib/ojdbc6.jar"/>
 9     <context id="my" targetRuntime="MyBatis3">
10         <commentGenerator>
11             <property name="suppressDate" value="false"/>
12             <property name="suppressAllComments" value="true"/>
13         </commentGenerator>
14 
15         <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
16                         connectionURL="jdbc:oracle:thin:@172.20.16.***:1521:CARGO" userId="***"
17                         password="***"/>
18 
19         <javaModelGenerator targetPackage="ctas.test.entity"
20                             targetProject="D:/yangjm/Code/CTAS/JAVAEE/CTAS2CCSP/src/main/java">
21             <property name="enableSubPackages" value="true"/>
22             <property name="trimStrings" value="true"/>
23         </javaModelGenerator>
24 
25         <sqlMapGenerator targetPackage="ctas.test.entity.xml"
26                          targetProject="D:/yangjm/Code/CTAS/JAVAEE/CTAS2CCSP/src/main/java">
27             <property name="enableSubPackages" value="true"/>
28         </sqlMapGenerator>
29 
30         <javaClientGenerator targetPackage="ctas.test.mapper"
31                              targetProject="D:/yangjm/Code/CTAS/JAVAEE/CTAS2CCSP/src/main/java" type="XMLMAPPER">
32             <property name="enableSubPackages" value="true"/>
33         </javaClientGenerator>
34 
35         <!--<table tableName="T_FEE_AGTBILL" domainObjectName="FeeAgentBill"
36                enableCountByExample="false" enableUpdateByExample="false"
37                enableDeleteByExample="false" enableSelectByExample="false"
38                selectByExampleQueryId="false"/>-->
39 
40         <table tableName="CTAS_FEE_BASE" domainObjectName="FeeBase"
41                enableCountByExample="false" enableUpdateByExample="false"
42                enableDeleteByExample="false" enableSelectByExample="false"
43                selectByExampleQueryId="false">
44             <!--<columnRenamingRule searchString="^D_"
45                                 replaceString=""/>-->
46         </table>
47 
48     </context>
49 </generatorConfiguration>

几个要点: a) 因为生成过程中需要连接db,所以第3行指定了驱动jar包的位置

b) 15-17行为连接字符串

c) 19-33行指定生成“entity实体类、mybatis映射xml文件、mapper接口”的具体位置

d) 40-46行为具体要生成的表,如果有多个表,复制这一段,改下表名即可

三、使用方式

mvn mybatis-generator:generate

如果是在intellij 环境,直接鼠标点击即可

最后给出目录结构图:

最后给一些小技巧:

a) 建表时,字段名称建议用"_"分隔多个单词,比如:AWB_NO、REC_ID...,这样生成的entity,属性名称就会变成漂亮的驼峰命名,即:awbNo、recId

b)oracle中,数值形的字段,如果指定精度,比如Number(12,2),默认生成entity属性是BigDecimal型 ,如果不指定精度,比如:Number(9),指默认生成的是Long型

c)oracle中的nvarchar/nvarchar2,mybatis-generator会识别成Object型,建议不要用nvarchar2,改用varchar2

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • NIO复习(3):selector

    selector的工作原理,简单来看,就是上面这张图,Channel必须先向Selector注册(注:register的时候,可以选择关注哪些事件,比如:有新连...

    菩提树下的杨过
  • 委托示例(利用委托对不同类型的对象数组排序)

    using System; using System.Collections.Generic; using System.Text; namespac...

    菩提树下的杨过
  • javascript:查找“跳号”号码

    业务背景: 航空货运系统中,“货运代理商”会定期从“航空公司”领取一定数量的纸质运单(每张纸上有一个单号),这些单号都是连续的(即:每次可以理解为领取一个“号段...

    菩提树下的杨过
  • 【学习】8句话让你彻底明白什么是大数据营销

    这个时代搞营销就像是在做一道未知口味的超级大蛋糕,而营销手段就好比不同的口味的配料,随着个人的喜好不同,配出的味道也将会不一样,但这个蛋糕终归是要拿到桌面上去品...

    小莹莹
  • 深度好文丨黎斌:《易经》“数相”与“大数据”

    导读:人类已迈进“大数据”时代,当前学术界对“大数据”的研究较多,但从易学角度进行研究的却很少。该文从易学视角,以独特的《易经》数相思维,论述和研究了“大数据...

    灯塔大数据
  • 商询科技李劼:用MR拯救“垃圾大数据”,重构知识图谱是制胜关键 | 镁客请讲

    镁客网
  • 高校大数据人才及培养解决方案

    数联寻英发布首份《大数据人才报告》,报告显示,目前全国的大数据人才仅46万,未来3-5年内大数据人才的缺口将高达150万。但作为人才培养基地的高校领域,大多依赖...

    挖掘大数据
  • 当AI黑科技撞上大数据日:清华大学第四届大数据日成功举办

    春风送暖,万物芳华,清华大学迎来了她107岁生日;值此之际,清华-青岛数据科学研究院(以下简称“数据院”)在2018年4月26日C楼前广场举办了主题为——“AI...

    数据派THU
  • The 4 V’s of Big Data

    当今的普遍共识是大数据是有特定的属性的。在大多数大数据圈中,它们被称为四个V:体积,种类,速度和准确性(volume, variety, velocity, v...

    用户5475193
  • JVM Garbage Collection

    每一个虚拟机线程都有自己的PC寄存器,保存Java虚拟机正在执行的字节码指令的地址,如果该方法是 native 的,那 PC 寄存器的值是 undefined

    itliusir

扫码关注云+社区

领取腾讯云代金券