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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM