如何用MyBatis-Generator自动创建代码(映射生成实体类、DAO接口和Mapping映射文件)

原贴 https://blog.csdn.net/timo1160139211/article/details/78011079

如何用MyBatis自动生成实体类、DAO接口和Mapping映射文件

引言:

什么是 MyBatis ?

  • MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

  • 描述来自官网:http://www.mybatis.org/mybatis-3/zh/getting-started.html

如果你了解JPA、Hibernate等持久层框架(规范),那么你就大概知道MyBatis在开发中处于哪一环节了。

那么MyBatis是不是也可以像JPA、Hibernate那样映射生成数据库、实体类呢?答案是肯定的。 
官方早已打包好了jar包来支持我们提高开发效率了:

MyBatis Generator - a code generator for MyBatis and iBatis.


下面介绍如何用MyBatis-generator自动映射生成实体类:

准备:

case: ( Postgresql ) 
1. 下载mybatis-generator.jar包:http://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core/1.3.5 
2. JDBC-Driver:mysql-connector-java-5.1.34.jar,这里使用的是mysql,换成其他数据库,链接方式换稍有差异
3. 创建编辑generator.xml文件(稍后介绍) [*3] 
4. Database ready.[*4] 
5. 一个基于MyBatis的项目.

[*3] 
generator.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>  
    <!-- 数据库驱动 -->  
    <!-- location也可写成 C:\workspace3\mybatis-generator\mybatis-generator-core-1.3.5.jar-->
    <classPathEntry location="mysql-connector-java-5.1.34.jar" />  
    <context id="DB2Tables" targetRuntime="MyBatis3">  
        <commentGenerator>  
        <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressDate" value="true" />  
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->  
            <property name="suppressAllComments" value="true" />  
        </commentGenerator>  
        <!--数据库链接URL,用户名、密码 -->  
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"  
            connectionURL="jdbc:mysql://localhost:3306/hellossmdb"   
            userId="root" password="root">  
        </jdbcConnection>  
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>  
            <property name="forceBigDecimals" value="false" />  
        </javaTypeResolver>  
        <!-- 生成模型的包名和位置 -->  
        <!-- targetProject:自动生成代码的位置 也可写物理地址 C:\workspace3\mybatis-generator\src-->
        <javaModelGenerator targetPackage="com.zk.test.model" targetProject="src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->  
            <property name="enableSubPackages" value="true" />  
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />  
        </javaModelGenerator> 
         
        <!-- 生成映射文件的包名和位置 -->  
        <sqlMapGenerator targetPackage="com.zk.test.mapping"  
            targetProject="src">  
            <property name="enableSubPackages" value="true" />  
        </sqlMapGenerator>  
        <!-- 生成DAO的包名和位置 -->  
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.zk.test.dao"   
             targetProject="src">  
             <property name="enableSubPackages" value="true" />  
        </javaClientGenerator>  
        <!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 -->
        <table tableName="t_user" domainObjectName="user"  
            enableCountByExample="fasle" enableUpdateByExample="false"  
            enableDeleteByExample="false" enableSelectByExample="false"  
            selectByExampleQueryId="false" >  
        </table>  
    </context>  
</generatorConfiguration> 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

Change to your Configurations :

1:
<!--数据库链接URL,用户名、密码 -->

2:
<!-- 数据库驱动 -->

3:
<!-- 生成XXX的包名和位置 --> *3
<targetPackage="site.gaoyisheng.XX" targetProject="src/main/java/">

4: 
<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名 -->
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

[*4] 

目标数据库和表

[*5] 

根目录机构(之前,划线为需要的) : 



Generate:

控制台进入项目根目录,输入指令

java -jar mybatis-generator-core-1.3.5.jar -configfile generator.xml -overwrite


Finished Directory Structure : 

结构变化


这样一个数据库的映射文件(包括实体,dao,mapper)就完成了,只需要写service和controller层就可以了。之后就是稍微修改路径,放入对应项目即可。

自动化创建成功,给自己点赞


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值