使用mybatis 代码生成器生成基础的mapper ,model

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/github_38151745/article/details/84197491

代码生成器是由mybatis团队开发提供的, 代码生产器通过配置可以生成不同类型的代码,代码包含了数据库表对应的实体类,Mapper 接口类 ,mapper xml 文件和example对象等,这些代码文件几乎包含了全部的单表操作。 当然对于联表操作,还是需要自己书写SQL 的

mybatis 代码生成器主要在于XML 的配置,下面是关于XML 配置的详解

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 通过属性location 指定数据库驱动的路径-->
    <classPathEntry location="D:/manualJar/ojdbc7.jar"/>
<!--context 标签用于指定生成一组对象的环境,例如指定要连接的数据库,要生产对象的类型和要处理的数据库中的表 ,具体属性如下
id 是必填属性 ,并且是唯一的  
targetRuntime 属性则是用于指定生产的代码的运行时环境 支持以下可选值	
MyBatis3 默认值
MyBatis3Simple 该方式不会生成于Example相关的方法
 -->
    <context id="testTables" targetRuntime="MyBatis3">
       
       <!-- commentGenerator 标签主要用来配置如何生成注释信息 可以通过property属性进行配置
suppressAllComments :阻止生成注释,默认为false 
suppressDate  : 阻止生成的注释包含时间戳 默认为false 
addRemarkComments  注释是否添加数据库表的备注信息,默认为false
一般情况下,由于生成的注释没有任何价值,而时间戳每次生成都会不一样,所以推荐屏蔽注释信息
当然也可以自己实现注释形式  通过继承DefaultCommentGenerator 实现自定义的注释格式 通过   <commentGenerator type="">引入自定义的注释生成类
 -->
   <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!--用于只当需要连接的数据库信息,该标签必选,并且只能有一个 								  			  数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
           connectionURL="jdbc:oracle:thin:@//127.0.0.1:1521/orclpdb"
                        userId="user"
                        password="password">
        </jdbcConnection>

        <!--javaTypeResolver 标签用来配置JDBC 类型和Java 类型的转换
forceBigDecimals 默认false,该property主要用来把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL   NUMERIC 类型解析为java.math.BigDecimal  -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- javaModelGenerator  用来控制生成的实体类
targetPackage 生成实体类存放的包名
targetProject:指定目标项目路径 可以使用相对路径或绝对路径 -->
        <javaModelGenerator targetPackage="com.commons.model"
                            targetProject="src\main\java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
            <!-- 判断是否对数据库查询结果进行trim 判断  如果为true 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- sqlMapGenerator  标签用于配置SQL 映射生成器(mapper.xml) 的属性 
targetPackage	生成sql映射文件存放的包名。
 targetProject:指定目标项目路径 可以使用相对路径或绝对路径 -->
        <sqlMapGenerator targetPackage="resources\mapper"
                         targetProject="src\main">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>

        <!-- javaClientGenerator  用于配置Java客户端生成器(mapper 接口)的属性 该标签有三个属性
type: 用于选择客户端代码生成器 默认提供了以下几种方式
ANNOTATENMAPPER :基于注解的Mapper 接口,不会有对应的XML 映射文件
MIXEDMAPPER:XML 和注解的混合形式
XMLMAPPER :所有的方法都在XML 中,接口的调用依赖XML文件 (推荐使用该方式)
 targetPackage:mapper接口存放的包名
targetProject:指定目标项目路径 可以使用相对路径或绝对路径 -->
        <javaClientGenerator type="XMLMAPPER"
                        targetPackage="com.vclog.persistence.mapper"
                             targetProject="src\main\java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
       
 <!-- table  标签是最重要的一个标签,该标签用于配置需要通过内省数据库的表,只有在table 中配置过的表,才能经过上述其他配置生成最终的代码  
其中 tableName 是一个必选的属性, 该属性指定要生成的表明,可以使用SQL 通配符匹配多个表 (  例如  <table tableName="%"></table>)
table 标签中的属性
domainObjectName : 指定生成对象的基本名称,如果没有指定,则自动根据表明生成

-->
        <table tableName="T_Table_Name" domainObjectName="Name"></table>
    </context>
</generatorConfiguration>

使用maven plugin 运行生成 代码
1.添加依赖
2. 对pom.xml 进行插件配置

<build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
<!--                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>6.0.5</version>
                    </dependency>
                </dependencies>-->
            </plugin>

        </plugins>
    </build>

需要说明的一点,由于在配置文件中已经指定了本地的jdbc 数据库驱动的jar地址,所以在插件配置中,将数据库依赖给注释了 ,实际上也是可以在插件配置中指定数据依赖来实现驱动的指定
配置好插件后 使用maven 命令:
mvn mybatis-generator:generate
git mybatis 代码生成工具生成代码

猜你喜欢

转载自blog.csdn.net/github_38151745/article/details/84197491