zoukankan      html  css  js  c++  java
  • springmvc学习笔记--mybatis--使用插件自动生成实体和mapper

    由于表对象在开发过程中会增删字段,有时候需要重新生成实体和对应的mapper,这时候可以通过mybatis的插件的生成。

    优点是快速简洁,缺点同样很明显:覆盖。因此,通常是在第一次搭建框架的时候使用,因为开发过程中实体的字段会被修改,如添加注解validator、format等。所以架构师学会用包装对象?包装对象怎么实现在原始表的属性的控制呢,比如日期格式化,比如校验。

    1.首先,在pom中依赖插件:

     1  <!-- Mybatis generator代码生成插件 配置 -->
     2             <plugin>
     3                 <groupId>org.mybatis.generator</groupId>
     4                 <artifactId>mybatis-generator-maven-plugin</artifactId>
     5                 <version>${plugin.mybatis.generator}</version>
     6                 <configuration>
     7                     <configurationFile>${mybatis.generator.generatorConfig.xml}</configurationFile>
     8                     <overwrite>true</overwrite>
     9                     <verbose>true</verbose>
    10                 </configuration>
    11             </plugin>
    1  <properties>
    2         <!-- plugin setting -->
    3         <mybatis.generator.generatorConfig.xml>${basedir}/src/test/resources/generatorConfig.xml</mybatis.generator.generatorConfig.xml>
    4         <mybatis.generator.generatorConfig.properties>file:///${basedir}/src/test/resources/generatorConfig.properties</mybatis.generator.generatorConfig.properties>
    5 </properties>

    2.在maven项目中的test模块里进行配置:

    在test/resources下添加generatorConfig.xml

     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 <!-- 配置Run As Maven build : Goals 参数 : mybatis-generator:generate -Dmybatis.generator.overwrite=true -->
     7 <!-- 配置 tableName,使用 Run As Maven build 生成 dao model 层 -->
     8 <generatorConfiguration>
     9     <!-- 配置文件路径 -->
    10     <properties url="${mybatis.generator.generatorConfig.properties}"/>
    11 
    12     <!--数据库驱动包路径 -->
    13     <classPathEntry location="${drive.class.path}"/>
    14 
    15     <context id="DB2Tables" targetRuntime="MyBatis3">
    16         <!--关闭注释 -->
    17         <commentGenerator>
    18             <property name="suppressAllComments" value="true"/>
    19         </commentGenerator>
    20 
    21         <!--数据库连接信息 -->
    22         <jdbcConnection driverClass="${jdbc.driver}" connectionURL="${jdbc.url}" userId="${jdbc.username}"
    23                         password="${jdbc.password}">
    24         </jdbcConnection>
    25 
    26         <!--生成的model 包路径 -->
    27         <javaModelGenerator targetPackage="${model.package}" targetProject="${target.project}">
    28             <property name="enableSubPackages" value="ture"/>
    29             <property name="trimStrings" value="true"/>
    30         </javaModelGenerator>
    31 
    32         <!--生成xml mapper文件 路径 -->
    33         <sqlMapGenerator targetPackage="${xml.mapper.package}" targetProject="${target.project}">
    34             <property name="enableSubPackages" value="ture"/>
    35         </sqlMapGenerator>
    36 
    37         <!-- 生成的Dao接口 的包路径 -->
    38         <javaClientGenerator type="XMLMAPPER" targetPackage="${dao.package}" targetProject="${target.project}">
    39             <property name="enableSubPackages" value="ture"/>
    40         </javaClientGenerator>
    41 
    42         <!--对应数据库表名 -->
    43         <table tableName="user">
    44 
    45         </table>
    46     </context>
    47 </generatorConfiguration>
    View Code

    修改最后需要生成的表名,我将部分关键数据抽取出来放在generatorConfig.properties,这个文件放在同一目录下。

     1 # 数据库驱动jar 路径
     2 drive.class.path=D:\MyApp\repository\mysql\mysql-connector-java\5.1.29\mysql-connector-java-5.1.29.jar
     3 
     4 # 数据库连接参数
     5 jdbc.driver=com.mysql.jdbc.Driver
     6 jdbc.url=jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8
     7 jdbc.username=root
     8 jdbc.password=密码
     9 
    10 # 包路径配置
    11 model.package=com.demo.modules.front.entity
    12 dao.package=com.demo.modules.front.mapper
    13 xml.mapper.package=com.demo.modules.front.mapper
    14 
    15 target.project=src/main/java
    View Code

    3.生成

    运行mybatis-generator:generate即可在需要的bao下生成对应的文件。

    4.注意

    在第二次或之后运行生成文件的时候,java类会被覆盖,也就是说如果对实体对象进行了手动修改的话需要慎重;还有:

    xml文件不会被覆盖,只是追加,这样会导致xml文件中重复模块,因此需要删除xml文件后生成。

    由于idea默认只在resource下加载xml,如果默认配置mapper.java和xml同一个目录,可能不会识别,所以需要将xml配置到resource下,或者在maven的pom中添加resource:

     1 <!--配置Maven 对resource文件 过滤 -->
     2         <resources>
     3             <resource>
     4                 <directory>src/main/resources</directory>
     5                 <includes>
     6                     <include>**/*.properties</include>
     7                     <include>**/*.xml</include>
     8                 </includes>
     9                 <filtering>true</filtering>
    10             </resource>
    11             <resource>
    12                 <directory>src/main/java</directory>
    13                 <includes>
    14                     <include>**/*.properties</include>
    15                     <include>**/*.xml</include>
    16                 </includes>
    17                 <filtering>true</filtering>
    18             </resource>
    19         </resources>
    View Code
  • 相关阅读:
    哈工大中文篇章关系语料
    MongoDB学习笔记~关于官方驱动集成IQueryable之后的一些事
    MongoDB学习笔记~为IMongoRepository接口更新指定字段
    MongoDB学习笔记系列
    MongoDB学习笔记~为IMongoRepository接口添加了增删改方法,针对官方驱动
    MongoDB学习笔记~为IMongoRepository接口添加了排序和表达式树,针对官方驱动
    Android NDK入门实例 计算斐波那契数列二生成.so库文件
    Spring Autowire自动装配
    在gem5的full system下运行 alpha编译的测试程序 running gem5 on ubuntu in full system mode in alpha
    工厂三兄弟之抽象工厂模式(二)
  • 原文地址:https://www.cnblogs.com/woshimrf/p/5189371.html
Copyright © 2011-2022 走看看