前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis代码自动生成

mybatis代码自动生成

作者头像
用户1737026
发布2018-05-17 17:06:01
1K0
发布2018-05-17 17:06:01
举报
文章被收录于专栏:五毛程序员

  mybatis持久层框架确实很方便,但是一直手动创建Dao和映射文件是一件无聊且缺乏技术含量的工作。所以我们可以使用mybatis的代码自动生成工具来减少我们的工作。它能帮助我们根据数据库中的数据表生成对应的Dao,也能生成简单的一些SQL映射,当然复杂的SQL映射还是需要我们自己手动去写。

  maven的配置我就不写了,baidu一下就有了。

  首先我们使用eclipse创建maven web app,然后添加javaee需要的一些依赖:

代码语言:javascript
复制
<!-- j2ee需要的jar:start -->
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
            <scope>runtime</scope>
        </dependency>
        <!-- j2ee需要的jar:end -->

  然后我们需要添加mybatis generator插件:

代码语言:javascript
复制
<pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.3.2</version>
                    <configuration>
                        <configurationFile>src/main/resources/mybatis-generator/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>
            </plugins>
        </pluginManagement>

接下来是配置文件:

  src/main/resources/mybatis-generator/generatorConfig.xml:

代码语言:javascript
复制
 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     <properties resource="mybatis-generator/generatorConfig.properties" />
 8     <classPathEntry location="${jdbc_driverPath}" />
 9     <context id="my" targetRuntime="MyBatis3">
10         <commentGenerator>
11             <property name="suppressDate" value="false" />
12             <!-- 下面一行用于取消注释的生成 -->
13             <property name="suppressAllComments" value="true" />
14         </commentGenerator>
15 
16         <jdbcConnection driverClass="${jdbc_driverClassName}"
17             connectionURL="${jdbc_url}" userId="${jdbc_username}" password="${jdbc_password}" />
18 
19         <javaModelGenerator targetPackage="${modelPackage}"
20             targetProject="${targetProject}">
21             <property name="enableSubPackages" value="true" />
22             <property name="trimStrings" value="true" />
23         </javaModelGenerator>
24 
25         <sqlMapGenerator targetPackage="${mappingPackage}"
26             targetProject="${targetProject}">
27             <property name="enableSubPackages" value="true" />
28         </sqlMapGenerator>
29 
30         <javaClientGenerator targetPackage="${mapperPackage}"
31             targetProject="${targetProject}" type="XMLMAPPER">
32             <property name="enableSubPackages" value="true" />
33         </javaClientGenerator>
34 
35         <table schema="test" tableName="user" domainObjectName="User"
36             enableCountByExample="false" enableUpdateByExample="false"
37             enableDeleteByExample="false" enableSelectByExample="false"
38             selectByExampleQueryId="false">
39             <!--<columnRenamingRule searchString="^D_" replaceString=""/> -->
40         </table>
41 
42     </context>
43 </generatorConfiguration>

  注意:

  •   table标签是配置从数据表到Dao(Model)的映射,schema是数据库名;domainObjectName是要生成的Dao名称,我这里写的是User,则自动生成的文件有User.java,UserMapper.java,UserMapper.xml。

  src/main/resources/mybatis-generator/generatorConfig.properties:

代码语言:javascript
复制
1 jdbc_driverClassName=com.mysql.jdbc.Driver
2 jdbc_driverPath=C:/Users/Rainmer/.m2/repository/mysql/mysql-connector-java/5.1.21/mysql-connector-java-5.1.21.jar
3 jdbc_url=jdbc:mysql://localhost:3306/yourDBName?useUnicode=true&amp;characterEncoding=UTF-8
4 jdbc_username=****
5 jdbc_password=******
6 targetProject=E:/workspace/JAVAEE_Pro/mbgtest/src/main/java
7 modelPackage=com.simon.mbgtest.model
8 mapperPackage=com.simon.mbgtest.mapper
9 mappingPackage=com.simon.mbgtest.mapping

  注意:

  •   jdbc_url=jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8。userUnicode和characterEncoding之间的连接符&要转义,变成&amp;
  •   路径要用斜杠/,而windows平台地址栏复制出来的地址用的是反斜杠\;

  配置完了之后,我们需要运行命令,eclipse luna版本自带maven插件,所以我们可以右键工程——>run as——>Maven build...——>弹框的Name中填写mybatis-generator,易于理解,然后在Goals中填写mybatis-generator:generate,这是maven的mybatis-generator插件的命令,最后点击Run,项目就开始build了。最后你可以查看项目目录,结构如下:

   That's all。

  当然也可以不借助maven,那么你需要导入几个jar包:mybatis-generator-maven-plugin-1.3.2.jar,mybatis-generator-core1.3.2.jar,mybatis-3.3.0.jar,mysql-connector-java-5.1.21.jar(我用的MySQL)。然后用命令行运行命令:java -jar mybatis-generator-core-1.3.2.jar -configfile  generatorConfig.xml全路径 -overwrite,记得要在mybatis-generator-core-1.3.2.jar所在的目录下执行该命令。overwrite命令是用于覆盖已经生成的文件。此处有一个很不方便的问题,就是运行的时候它会找不到generatorConfig.properties,虽然我们在eclipse中是没问题的。我只能把相关的属性值写回generatorConfig.xml中,然后修改了部分参数。注意:生成的文件所在的目录必须已经存在,否则会报路径not exist的错。

  运行效果:

  源码下载:

  maven版:http://yunpan.cn/cdcmpRvHEZwxH  访问密码 fba9

  非maven版:http://yunpan.cn/cdcmTLUuXNjPa  访问密码 aec3

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-08-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档