springmvc学习笔记--mybatis--使用插件自动生成实体和mapper

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

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

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

 1  
 2             <plugin>
 3                 <groupId>org.mybatis.generatorgroupId>
 4                 <artifactId>mybatis-generator-maven-pluginartifactId>
 5                 <version>${plugin.mybatis.generator}version>
 6                 <configuration>
 7                     <configurationFile>${mybatis.generator.generatorConfig.xml}configurationFile>
 8                     <overwrite>trueoverwrite>
 9                     <verbose>trueverbose>
10                 configuration>
11             plugin>
1  <properties>
2         
3         <mybatis.generator.generatorConfig.xml>${basedir}/src/test/resources/generatorConfig.xmlmybatis.generator.generatorConfig.xml>
4         <mybatis.generator.generatorConfig.properties>file:///${basedir}/src/test/resources/generatorConfig.propertiesmybatis.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 
 7 
 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         
27         <javaModelGenerator targetPackage="${model.package}" targetProject="${target.project}">
28             <property name="enableSubPackages" value="ture"/>
29             <property name="trimStrings" value="true"/>
30         javaModelGenerator>
31 
32         
33         <sqlMapGenerator targetPackage="${xml.mapper.package}" targetProject="${target.project}">
34             <property name="enableSubPackages" value="ture"/>
35         sqlMapGenerator>
36 
37         
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 
 2         <resources>
 3             <resource>
 4                 <directory>src/main/resourcesdirectory>
 5                 <includes>
 6                     <include>**/*.propertiesinclude>
 7                     <include>**/*.xmlinclude>
 8                 includes>
 9                 <filtering>truefiltering>
10             resource>
11             <resource>
12                 <directory>src/main/javadirectory>
13                 <includes>
14                     <include>**/*.propertiesinclude>
15                     <include>**/*.xmlinclude>
16                 includes>
17                 <filtering>truefiltering>
18             resource>
19         resources>
View Code

 





唯有不断学习方能改变! -- Ryan Miao

你可能感兴趣的:(java,数据库,开发工具)