mybatis-generator 代码自动生成工具

今天来记录下mybatis-generator插件自动生成xml mapper和model还有dao接口,这样我们就可以把精力放在业务代码上,而不需要关心数据库的具体操作。

    这里我使用eclipse作为开发工具,采用maven来构建项目。

1. 编写pom.xml文件

      这里只有3个jar文件,数据库使用mysql

      

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jacksoft.mybatis</groupId>
  <artifactId>mybatis-generator</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <properties>
    <mybatis-generator.version>1.3.1</mybatis-generator.version>
    <mysql.version>5.1.13</mysql.version>
    <mybatis.version>3.0.3</mybatis.version>
  </properties>
  
  <dependencies>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>${mysql.version}</version>
    </dependency>
  
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>${mybatis-generator.version}</version>
    </dependency>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>
  </dependencies>
  
  <build>
    <finalName>mybatis-generator</finalName>
  <plugins>
    <plugin>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-maven-plugin</artifactId>
      <version>${mybatis-generator.version}</version>
      <dependencies>
      <!-- 数据库驱动  -->
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>${mysql.version}</version>
        </dependency>
    
      </dependencies>
      <!-- 自动生成 -->
      <executions>
        <execution>
          <id>Generate MyBatis Artifacts</id>
          <goals>
            <goal>generate</goal>
          </goals>
          <configuration>
            <configurationFile>src/main/resources/config/mysqlGeneratorConfig.xml</configurationFile>
            <overwrite>true</overwrite>
            <jdbcDriver>com.mysql.jdbc.Driver</jdbcDriver>
            <jdbcURL>jdbc:mysql://localhost:3306/demo</jdbcURL>
            <jdbcUserId>root</jdbcUserId>
            <jdbcPassword>hwroot</jdbcPassword>
          </configuration>
        </execution>
      </executions>
    </plugin>
  
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>1.5</source>
        <target>1.5</target>
        <encoding>UTF-8</encoding>
      </configuration>
    </plugin>

    </plugins>
  </build>
</project>

   我这里通过配置插件,让maven在执行install的时候,自动重新生成代码,因为生成的代码中包含mybatis包中的类,所以也需要引入该包。

2.创建mysqlGeneratorConfig.xml文件

    在src/main/resources/config目录下面创建mysqlGeneratorConfig.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> 
   
  <context id="mysqlTables" targetRuntime="MyBatis3">
    <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/demo"
     userId="root" password="hwroot"/>
    
    <!-- 指定生成的类型为java类型,避免数据库中number等类型字段 -->
    <javaTypeResolver>
      <property name="forceBigDecimals" value="false"/>
    </javaTypeResolver>
    
    <!-- 生成model模型,对应的包,存放位置可以指定具体的路径,如/ProjectName/src,也可以使用MAVEN来自动生成 -->
    <javaModelGenerator targetPackage="com.jacksoft.mybatis.generator.model" targetProject="MAVEN">
      <property name="enableSubPackages" value="true"/>
    </javaModelGenerator>
    
    <!--对应的xml mapper文件  -->
    <sqlMapGenerator targetPackage="com.jacksoft.mybatis.generator.dao" targetProject="MAVEN">
      <property name="enableSubPackages" value="true"/>
    </sqlMapGenerator>
    
    <!-- 对应的dao接口 -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.jacksoft.mybatis.generator.dao" targetProject="MAVEN">
      <property name="enableSubPackages" value="true"/>
    </javaClientGenerator>
    
    
    <table tableName="user" domainObjectName="User"/>
  </context>
</generatorConfiguration>

3. 生成代码

    到这里就差不多了,保存为该文件后,实际上就已经开始生成代码了,但是在source code界面,还是看不到代码,我们通过刷新或者 右键项目-->Maven-->Update Project Configuration

    这样就把生成的代码找到了,具体如下图:


   对应的mapper,xml,model,example都生成好了,是不是很方便啊?

   但是该插件默认不带分页功能,分页插件将在下一次记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
mybatis也能方向生成代码,能方向生成实体类(po)、mapper接口和Mapper接口映射文件,能减少我们代码的工作量。详细步骤如下 1、下载mybatis生成架包工具MyBatis_Generator_1.3.1.zip,解压架包把features、plugins文件夹下的架包分别拷贝到eclipse安装目录下的features、plugins文件夹。重启eclipse就行。 解压后图片如下: Eclipse路径如图: 拷贝替换如图: 2、创建generatorConfig.xml文件,安装好mybatis 就能创建generatorConfig.xml 3、配置generatorConfig.xml配置文件,详细如下 [html] view plain copy <?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="D:\\rep\\mysql\\mysql-connector-java\\5.1.19\\mysql-connector-java-5.1.19.jar" /> --> <classPathEntry location="D:\\repo\\com\\oracle\\ojdbc14\\10.2.0.1.0\\ojdbc14-10.2.0.1.0.jar" /> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressAllComments" value="true" /> <property name="suppressDate" value="true" /> </commentGenerator> <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:orcl4" userId="xxx" password="xxxx" /> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> </javaTypeResolver> <javaModelGenerator targetPackage="com.pcmall.domain.sale.order" targetProject="pos-service/src/main/java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="mybatis.mapper.sale.order" targetProject="pos-service/src/main/resources"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <javaClientGenerator targetPackage="com.pcmall.dao.sale.order" targetProject="pos-service/src/main/java" type="XMLMAPPER"> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <table tableName="hs_zxzflx" enableSelectByExample="false" enableDeleteByExample="false" enableCountByExample="false" selectByExampleQueryId="true" enableUpdateByExample="false"> <!-- <generatedKey column="ID" sqlStatement="oracle" identity="true" /> --> </table> </context> </generatorConfiguration> 4、右击generatorConfig.xml 点击Generate MyBatis/iBATIS Artifacts 生成对应接口、接口映射文件、实体类 5、查看结果
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值