1. 程式人生 > >Maven外掛使用Mybatis-generator程式碼生成器

Maven外掛使用Mybatis-generator程式碼生成器

Mybatis-generator有什麼用?

答:可以根據我們已經設計好的資料庫表幫助我們自動生成實體類(pojo)、介面(dao)、對映檔案(mapper),這樣就可以避免每次使用表的時候手動建立一些類和對映檔案,節約了大量的時間。(僅限於簡單的CRUD操作)

Mybatis-generator什麼時候用?

答:當你無數次的建立這些類與對映檔案並且感到想吐的時候,就可以使用它了,前提:資料庫表已經設計好。

Mybatis-generator怎麼用?

答:使用方法共有3種使用方法:Maven外掛、Eclipse外掛、cmd命令列。(本文暫且只介紹第一種方法,簡單粗暴易上手,廢話不多說,從頭開始演示)

開始:

一、建立專案模板(過於贅述了,建議直接看第二步)

1.新建一個Maven專案:File--->New--->Project

2.選擇專案模板:選擇SDK版本號--->選中左側Maven--->勾選Create from archetype--->選中maven-archetype-webapp--->Next

3.輸入名字:專案組名--->專案名--->Next

4.按圖中說明配置好,直接點選Next

5.按圖中說明配置好,點選Finish就建立完了

先看一下建立好的專案的目錄

但是這樣的目錄並不是我想要的,在main目錄下再建立一個java資源目錄

6.新增java資源目錄:Ctrl+Shift+Alt+s--->選中左側Modules--->選中我們建立的專案--->點選Source選項卡--->檢視中選中main目錄並右鍵點選New Folder--->輸入java--->點選OK

7.java目錄設定為資源目錄:選中java目錄並右鍵--->點選Source(java目錄變成藍色就可以了)

以上步驟均為建立模板,重點是在下面

二、根據個人需要設計資料庫表

三、配置generatorConfig.xml配置檔案:在resource目錄下新建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. <generatorConfiguration>

  6. <!--本機資料庫驅動jar包存放目錄-->

  7. <classPathEntry location="D:\dev\repo\mysql\mysql-connector-java\5.1.35\mysql-connector-java-5.1.35.jar"/>

  8. <context id="DB2Tables" targetRuntime="MyBatis3">

  9. <commentGenerator>

  10. <property name="suppressDate" value="true"/>

  11. <property name="suppressAllComments" value="true"/>

  12. </commentGenerator>

  13. <!--資料庫驅動,資料庫地址及表名,賬號,密碼-->

  14. <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.25.1/mymessages" userId="root" password="123456">

  15. </jdbcConnection>

  16. <javaTypeResolver>

  17. <property name="forceBigDecimals" value="false"/>

  18. </javaTypeResolver>

  19. <!--生成Model類的包名及存放位置-->

  20. <javaModelGenerator targetPackage="com.cn.pojo" targetProject="src/main/java">

  21. <property name="enableSubPackages" value="true"/>

  22. <property name="trimStrings" value="true"/>

  23. </javaModelGenerator>

  24. <!--生成對映檔案的包名及存放位置-->

  25. <sqlMapGenerator targetPackage="com.cn.mapper" targetProject="src/main/java">

  26. <property name="enableSubPackages" value="true"/>

  27. </sqlMapGenerator>

  28. <!--生成Dao類的包名及存放位置-->

  29. <javaClientGenerator type="XMLMAPPER" targetPackage="com.cn.dao" targetProject="src/main/java">

  30. <property name="enableSubPackages" value="true"/>

  31. </javaClientGenerator>

  32. <!--生成對應表及類名,domainObjectName是設定實體類的名字的-->

  33. <table tableName="test_generator" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>

  34. </context>

  35. </generatorConfiguration>

四、配置配置Maven的pom.xml檔案

這裡直接給出pom.xml檔案內容

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  3. <modelVersion>4.0.0</modelVersion>

  4. <groupId>com.cn.test</groupId>

  5. <artifactId>Test_Generator</artifactId>

  6. <packaging>war</packaging>

  7. <version>1.0-SNAPSHOT</version>

  8. <name>Test_Generator Maven Webapp</name>

  9. <url>http://maven.apache.org</url>

  10. <dependencies>

  11. <!--jdbc驅動包-->

  12. <dependency>

  13. <groupId>mysql</groupId>

  14. <artifactId>mysql-connector-java</artifactId>

  15. <version>5.1.35</version>

  16. </dependency>

  17. <!--mybatis-generator核心包-->

  18. <dependency>

  19. <groupId>org.mybatis.generator</groupId>

  20. <artifactId>mybatis-generator-core</artifactId>

  21. <version>1.3.2</version>

  22. </dependency>

  23. </dependencies>

  24. <build>

  25. <plugins>

  26. <plugin>

  27. <groupId>org.mybatis.generator</groupId>

  28. <artifactId>mybatis-generator-maven-plugin</artifactId>

  29. <version>1.3.2</version>

  30. <configuration>

  31. <!--配置檔案的位置-->

  32. <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>

  33. <verbose>true</verbose>

  34. <overwrite>true</overwrite>

  35. </configuration>

  36. <executions>

  37. <execution>

  38. <id>Generate MyBatis Artifacts</id>

  39. <goals>

  40. <goal>generate</goal>

  41. </goals>

  42. </execution>

  43. </executions>

  44. </plugin>

  45. </plugins>

  46. </build>

五、執行Maven外掛:調出Maven面板--->展開Plugins--->展開mybatis-generator--->右鍵Run Maven Build

稍等幾秒鐘就完成啦!

現在看一下程式碼生成器幫我們生成的目錄檔案:

分別把這三個檔案的內容貼出來給大家看一下

UserMapper:

  1. package com.cn.dao;

  2. import com.cn.pojo.User;

  3. public interface UserMapper {

  4. int deleteByPrimaryKey(Long id);

  5. int insert(User record);

  6. int insertSelective(User record);

  7. User selectByPrimaryKey(Long id);

  8. int updateByPrimaryKeySelective(User record);

  9. int updateByPrimaryKey(User record);

  10. }

UserMapper.xml:

  1. <?xml version="1.0" encoding="UTF-8" ?>

  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

  3. <mapper namespace="com.cn.dao.UserMapper" >

  4. <resultMap id="BaseResultMap" type="com.cn.pojo.User" >

  5. <id column="id" property="id" jdbcType="BIGINT" />

  6. <result column="user" property="user" jdbcType="VARCHAR" />

  7. <result column="password" property="password" jdbcType="VARCHAR" />

  8. <result column="age" property="age" jdbcType="INTEGER" />

  9. </resultMap>

  10. <sql id="Base_Column_List" >

  11. id, user, password, age

  12. </sql>

  13. <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >

  14. select

  15. <include refid="Base_Column_List" />

  16. from test_generator

  17. where id = #{id,jdbcType=BIGINT}

  18. </select>

  19. <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >

  20. delete from test_generator

  21. where id = #{id,jdbcType=BIGINT}

  22. </delete>

  23. <insert id="insert" parameterType="com.cn.pojo.User" >

  24. insert into test_generator (id, user, password,

  25. age)

  26. values (#{id,jdbcType=BIGINT}, #{user,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},

  27. #{age,jdbcType=INTEGER})

  28. </insert>

  29. <insert id="insertSelective" parameterType="com.cn.pojo.User" >

  30. insert into test_generator

  31. <trim prefix="(" suffix=")" suffixOverrides="," >

  32. <if test="id != null" >

  33. id,

  34. </if>

  35. <if test="user != null" >

  36. user,

  37. </if>

  38. <if test="password != null" >

  39. password,

  40. </if>

  41. <if test="age != null" >

  42. age,

  43. </if>

  44. </trim>

  45. <trim prefix="values (" suffix=")" suffixOverrides="," >

  46. <if test="id != null" >

  47. #{id,jdbcType=BIGINT},

  48. </if>

  49. <if test="user != null" >

  50. #{user,jdbcType=VARCHAR},

  51. </if>

  52. <if test="password != null" >

  53. #{password,jdbcType=VARCHAR},

  54. </if>

  55. <if test="age != null" >

  56. #{age,jdbcType=INTEGER},

  57. </if>

  58. </trim>

  59. </insert>

  60. <update id="updateByPrimaryKeySelective" parameterType="com.cn.pojo.User" >

  61. update test_generator

  62. <set >

  63. <if test="user != null" >

  64. user = #{user,jdbcType=VARCHAR},

  65. </if>

  66. <if test="password != null" >

  67. password = #{password,jdbcType=VARCHAR},

  68. </if>

  69. <if test="age != null" >

  70. age = #{age,jdbcType=INTEGER},

  71. </if>

  72. </set>

  73. where id = #{id,jdbcType=BIGINT}

  74. </update>

  75. <update id="updateByPrimaryKey" parameterType="com.cn.pojo.User" >

  76. update test_generator

  77. set user = #{user,jdbcType=VARCHAR},

  78. password = #{password,jdbcType=VARCHAR},

  79. age = #{age,jdbcType=INTEGER}

  80. where id = #{id,jdbcType=BIGINT}

  81. </update>

  82. </mapper>

User:

  1. package com.cn.pojo;

  2. public class User {

  3. private Long id;

  4. private String user;

  5. private String password;

  6. private Integer age;

  7. public Long getId() {

  8. return id;

  9. }

  10. public void setId(Long id) {

  11. this.id = id;

  12. }

  13. public String getUser() {

  14. return user;

  15. }

  16. public void setUser(String user) {

  17. this.user = user == null ? null : user.trim();

  18. }

  19. public String getPassword() {

  20. return password;

  21. }

  22. public void setPassword(String password) {

  23. this.password = password == null ? null : password.trim();

  24. }

  25. public Integer getAge() {

  26. return age;

  27. }

  28. public void setAge(Integer age) {

  29. this.age = age;

  30. }

  31. }

至此就完成了Maven外掛使用程式碼生成器的所有步驟!

總結一下四部曲:

1。建立專案模板

2。設計資料庫表

3。配置generatorConfig.xml

4。配置pom.xml

maven外掛對比其它兩種方法的區別:

與eclipse外掛相比:

1.不需要預先將jdbc驅動包下載好放置本地,但是需要在pom.xml檔案中配置

2.eclipse外掛需要預先建立3個包,而maven外掛不需要,會自動生成

與命令列相比:

1.需要使用開發工具和配置pom.xml配置檔案,命令列不需要但是需要預先將2個jar包下載到本地

eclipse外掛使用Mybaits-generator程式碼生成器:

命令列使用Mybatis-generator程式碼生成器: