java代码自动生成_【猿蜕变】19、一文掌握代码自动生成

看过之前的蜕变系列文章,相信你对SpringMVC 、Spring、 Mybatis的整合有了一定的心得,学会了搭建属于自己的开发框架,也了解了如何使用整合后的框架进行开发。今天,我们为了解决你在开发中的体力劳动以及编写sql出错的概率,让你从入门到放弃,教你使用一个工具——mybatis generator。

e55c2a24a47f5c54214eae5d2dae7037.png

ebe0fda024a385546ff84d568228d927.png

cbaa93584528b85c814e6e352e1fef84.png

252c93c4742cd0d17a1f1a4a4aaa5b22.png

4138d64d0a684ec8d820f406c26f9885.png

28130810bfc7617f49c7c737844cc305.png

我们之前使用mybatis时,需要人工编写dao层,bean,mapper配置文件,在一些简单的场景下,这些操作有一些套路化的问题,比如单表操作的基于字段的新增、修改、删除、查找等简单工作会显得比较繁琐,这类代码也比较固定。mybatis提供了帮助开发者解决这些繁琐的问题,提供了一个工具——mybatisgenerator用于生成相关的mapper文件、并且生成增删改查相关的sql语句的功能。

af53d51fbd5faa63fd3ba285329600be.png

不过对于核心业务的工作流程,我们还是要很小心的把流程控制在sql层面,这个帮助就不是很大了,核心的业务用它上层一个bug,数据出问题,真心伤不起。生产的代码也算不上规范,也有一些冗余吧,后续工厂君会根据某些代码规范搞一套代码生成器来帮助大家。

在没有自己定义的代码生成器前,不过这玩意儿有一个比较好的作用就是,能够生成一些代码,和公共的可以利用的sql,而这些字段如果手动编写,容易出错,选择使用它来做半自动化开发,还是阔以的……

mybatis-generator的使用方式有很多种,由于我们使用maven进行应用开发,这里我们就以maven为例进行介绍。

3dc071cb9d922e1ce656a7c152f6f81a.png

第一步

首先要在maven项目中添加依赖,当然你得确保在你的maven中已经添加了mybatis相关的其他依赖jar包:  

<dependency>            <groupId>org.mybatis.generatorgroupId>           <artifactId>mybatis-generator-maven-pluginartifactId>           <version>1.3.5version>        dependency>

第二步

添加generator的插件:

<plugin>               <groupId>org.mybatis.generatorgroupId>               <artifactId>mybatis-generator-maven-pluginartifactId>               <version>1.3.5version>                <executions>                    <execution>                        <id>Generate MyBatisArtifactsid>                        <goals>                           <goal>generategoal>                        goals>                    execution>                executions>                <dependencies>                    <dependency>                       <groupId>mysqlgroupId>                       <artifactId>mysql-connector-javaartifactId>                       <version>5.1.46version>                    dependency>                dependencies>                <configuration>                                       <configurationFile>src/main/resources/generatorConfig.xmlconfigurationFile>                   <overwrite>trueoverwrite>                configuration>            plugin>

第三步

     在resources目录中创建一个generatorConfig.xml逆向工程的配置文件:

<?xml version="1.0"encoding="UTF-8"?>/span>       PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration1.0//EN"       "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration>      <context id="test" 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/route"userId="root"                       password="123456">       jdbcConnection>       <javaTypeResolver>                      <property name="forceBigDecimals" value="false"/>       javaTypeResolver>              <javaModelGenerator targetPackage="com.pz.domain"                           targetProject="\src\main\java">           <property name="enableSubPackages" value="true"/>           <property name="trimStrings" value="true" />       javaModelGenerator>              <sqlMapGenerator targetPackage="com.pz.dao"                         targetProject="\src\main\java">           <property name="enableSubPackages" value="true"/>       sqlMapGenerator>              <javaClientGenerator type="XMLMAPPER"                            targetPackage="com.pz.dao"                             targetProject="\src\main\java">           <property name="enableSubPackages" value="true"/>       javaClientGenerator>               <table tableName="travel_route"domainObjectName="TravelRoute"              enableCountByExample="true"              enableUpdateByExample="true"              enableDeleteByExample="true"              enableSelectByExample="true"               selectByExampleQueryId="true">        table>     context>generatorConfiguration>

第四步

添加完毕之后,在idea的maven中执行下面命令mybatis-generator:generate,即可:如果成功了,在你指定的目录中可以看到dao、bean、mapper全部生成了。

注意噢:mybatis generator 只会根据单表来生成文件,并不会生成表之间的关系,假如Mapper文件已经存在时,如果进行重新生成mapper文件时,内容不被覆盖而是进行内容追加,结果导致mybatis解析失败。
    解决方法:删除原来已经生成的mapper文件之后再进行生成。Mybatis自动生成的bean及dao文件不是内容而是直接覆盖没有此问题。

Example类的用法

我们使用mybatis generator生成的文件中有一个TravelRouteExample类,该类的作用就是帮我们实现多条件的查询,比如,根据id查询线路我们可以像下面这样编写代码:

public TravelRoute findUserById(int id) {         TravelRoute.Criteria criteria =example.createCriteria();         criteria.andIdEqualTo(id);         List< TravelRoute > routes = travelRouteDao.selectByExample(example);         if (routes!= null){            return routes.get(0);        }else{            return null;        } }
2f9523aa927b57397ea27ec8fcf427af.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值