发表于: 2017-12-05 22:57:40

1 766


今天完成的事情:

准备并讲解了小课堂


大家好,我是IT修真院深圳分院第4期学员,一枚正直善良的JAVA程序员。

今天给大家分享一下,修真院官网JAVA任务2中,深度思考部分的知识点——mybatis generator代码生成


一、背景介绍

修真院有一套代码生成系统,使使用这套系统的人免受各种繁琐的的文件配置。但是遗憾的是,从修真院出去之后就没有代码生成了,如果公司中使用的持久层框架是mybatis,这样我们就可以使用mybatis generator,在短时间内生成实体类、mapper文件、dao接口文件,将这些毫无技术含量的工作交给mybatis generator来做,以提高自己的工作效率


二、知识剖析

生成的三种方式

1.使用命令行生成

2.使用maven插件进行生成

3.使用图形化工具生成

前两种方式使用的文件都是一样的,第二种则需要配置pom.xml


Mybatis Generator所用文件

1.数据库驱动一个

2.mybatis-generator配置文件generatorConfig.xml

3.mybatis-generator的官方jar包


mybatis-generator的运行过程

连接数据库——》从数据库的表中获取字段——》依据字段生成mapper文件、dao、实体类


三、常见问题

数据库命名规范和JAVA命名规范不一样的怎么办?


四、解决方案

1.如不加设置,mybatis-generator会把数据库中的下划线规则自动转化为JAVA中的驼峰规则并生成实体类

2.可以通过generatorConfig.xml设置

五、代码实战

在maven中配置:

pom.xml文件

要注意的是mybatis-generator的jar包已经在插件部分导入了

<plugin>
   <groupId>org.mybatis.generator</groupId>
   <artifactId>mybatis-generator-maven-plugin</artifactId>
   <version>1.3.2</version>
   <configuration>
       <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
       <verbose>true</verbose>
       <overwrite>true</overwrite>
   </configuration>
   <executions>
       <execution>
           <id>Generate MyBatis Artifacts</id>
           <goals>
               <goal>generate</goal>
           </goals>
       </execution>
   </executions>
   <dependencies>
       <dependency>
           <groupId>org.mybatis.generator</groupId>
           <artifactId>mybatis-generator-core</artifactId>
           <version>1.3.2</version>
       </dependency>
   </dependencies>
</plugin>


generatorConfig.xml

所要生成的dao接口文件、mapper文件、实体类的目录、包名,皆在此文件中配置,而数据库驱动、数据库账号密码也在此配置

<?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="C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\5.1.44\mysql-connector-java-5.1.44.jar"/>
   <context id="DB2Tables"    targetRuntime="MyBatis3">
       <commentGenerator>
           <property name="suppressDate" value="true"/>
           <property name="suppressAllComments" value="true"/>
       </commentGenerator>
       <!--数据库链接地址账号密码-->
       <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/jnshu?useSSL=true" userId="root" password="123456">
       </jdbcConnection>
       <javaTypeResolver>
           <property name="forceBigDecimals" value="false"/>
       </javaTypeResolver>
       <!--生成Model类存放位置-->
       <javaModelGenerator targetPackage="cn.summerwaves.model" targetProject="src\main\java">
           <property name="enableSubPackages" value="true"/>
           <property name="trimStrings" value="true"/>
       </javaModelGenerator>
       <!--生成映射文件存放位置-->
       <sqlMapGenerator targetPackage="cn.summerwaves.dao" targetProject="src\main\java">
           <property name="enableSubPackages" value="true"/>
       </sqlMapGenerator>
       <!--生成Dao类存放位置-->
       <javaClientGenerator type="XMLMAPPER" targetPackage="cn.summerwaves.dao" targetProject="src\main\java">
           <property name="enableSubPackages" value="true"/>
       </javaClientGenerator>
       <!--生成对应表及类名-->
       <table tableName="user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false"
              enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
           <columnOverride column="username" property="name" />

       </table>

   </context>
</generatorConfiguration>


然后


即可生成





六、扩展思考


七、参考文献

1.官方文档:http://mbg.cndocs.ml/configreference/xmlconfig.html

1.CSDN博客:http://blog.csdn.net/isea533/article/details/42102297


八、更多讨论

提问1:如果我有一个方法要传两个参数,那这种自动生成还能实现么?

答:除去代码生成自动生成的6个方法,其他的sql语句和接口都是要自己写的

提问2:最后一个图形化工具是通过运行代码里的主程序启动的?

答:没错,这并不是一个独立的程序,而是一个java项目,通过main方法执行

详见视频:



undefined_腾讯视频

PPT链接:PPT

视频链接:视频

感谢大家观看

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~


技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~

我的邀请码:13299900,或者你可以直接点击此链接:http://www.jnshu.com/login/1/13299900



明天计划的事情: 

公司代码生成继续学习


遇到的问题:

没有问题


收获:

学会使用mybatis generator生成代码


进度:

复盘代码生成学习中



返回列表 返回列表
评论

    分享到