• MyBatis基本配置和实践(五)


    第一步:创建一个Maven工程

    第二步:编辑Maven工程的pom.xml,引入mybatis-generator-maven-plugin

    <?xml version="1.0" encoding="UTF-8"?>
    <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">
        <parent>
            <artifactId>mybatis-demo</artifactId>
            <groupId>cn.it</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>mybatis-generator</artifactId>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.3.2</version>
                    <configuration>
                        <configurationFile>src/main/resources/generatorContext.xml</configurationFile>
                        <verbose>true</verbose>
                        <overwrite>true</overwrite>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    </project>

    第三步:在resources目录下配置generatorContext.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>
        <!--mysql 连接数据库jar 这里选择自己本地位置-->
        <classPathEntry location="/Users/Eric/Documents/mysql-connector-java-5.1.8.jar"/>
    
        <context id="testTables" targetRuntime="MyBatis3">
            <!-- 是否去除自动生成的注释 -->
            <commentGenerator>
                <property name="suppressAllComments" value="true"/>
            </commentGenerator>
    
            <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://172.28.128.5:3306/mybatis"
                            userId="ttsc" password="redhat">
            </jdbcConnection>
            <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,
                 为true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal -->
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false"/>
            </javaTypeResolver>
    
            <!-- targetProject: 生成PO类的位置 -->
            <javaModelGenerator targetPackage="cn.it.pojo" targetProject="src/main/java">
                <!-- enableSubPackages:是否让schema作为package的后缀 -->
                <property name="enableSubPackages" value="false"/>
                <!-- 从数据库返回的值被清理前后的空格 -->
                <property name="trimStrings" value="true"/>
            </javaModelGenerator>
    
            <!-- targetProject: mapper映射文件生成的位置    -->
            <sqlMapGenerator targetPackage="cn.it.mapper" targetProject="src/main/java">
                <property name="enableSubPackages" value="false"/>
            </sqlMapGenerator>
    
            <!-- targetPackage: mapper接口生成的位置 -->
            <javaClientGenerator targetPackage="cn.it.mapper" targetProject="src/main/java" type="XMLMAPPER">
                <property name="enableSubPackages" value="false"/>
            </javaClientGenerator>
    
            <!-- 指定数据库表 -->
            <table tableName="orders"/>
            <table tableName="user"/>
    
        </context>
    </generatorConfiguration>

    第四步:使用IDEA的Maven插件快速生成文件

     第五步:使用mapper自动生成的增、删、改、查方法

    使用示例:http://blog.qiji.tech/archives/13282

    逆向工程注意事项:

    1、Mapper文件内容不覆盖而是追加
    XXXMapper.xml文件已经存在时,如果进行重新生成,则mapper.xml文件内容不会被覆盖而是进行内容追加,结果会导致mybatis解析失败。
    解决方法: 删除原来已经生成的mapper.xml文件再进行生成。(Mybatis自动生成的po及mapper.java文件不是内容而是直接覆盖没有此问题。) 2、Table schema问题 下边是关于针对oracle数据库表生成代码的schema问题: Schma即数据库模式,oracle中一个用户对应一个schema,可以理解为用户就是schema。 当Oralce数据库存在多个schema可以访问相同的表名时,使用mybatis逆向工程生成该表的mapper.xml将会出现mapper.xml内容重复的问题,结果导致mybatis解析错误。
    解决方法: 在table中填写schema,如下:
    <table schema="XXXX" tableName=" " > XXXX即为一个schema的名称,生成后将mapper.xml的schema前缀批量去掉,如果不去掉,当oracle用户变更了sql语句将查询失败。 快捷操作方式:mapper.xml文件中批量替换:“from XXXX.”为空 Oracle查询对象的schema可从dba_objects中查询,如下: select * from dba_objects

    代码下载:https://github.com/echo1937/mybatis-demo下的mybatis-generator模块

  • 相关阅读:
    11 改进版通过队列实现一个生产者消费者模型
    13 精进版SVIP版通过队列实现一个生产者消费者模型
    12 再次改进版通过队列实现一个生产者消费者模型
    31 进程
    join方法
    30 进程 线程
    进程传参方式和创建方式2
    设计模式 单例模式
    设计模式 抽象工厂模式
    设计模式 简单工厂模式
  • 原文地址:https://www.cnblogs.com/echo1937/p/6551437.html
Copyright © 2020-2023  润新知