Maven插件使用Mybatis-generator代码生成器

https://blog.csdn.net/jqc874789596/article/details/79105829

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.  
  3. import com.cn.pojo.User;

  4.  
  5. public interface UserMapper {

  6. int deleteByPrimaryKey(Long id);

  7.  
  8. int insert(User record);

  9.  
  10. int insertSelective(User record);

  11.  
  12. User selectByPrimaryKey(Long id);

  13.  
  14. int updateByPrimaryKeySelective(User record);

  15.  
  16. int updateByPrimaryKey(User record);

  17. }

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.  
  3. public class User {

  4. private Long id;

  5.  
  6. private String user;

  7.  
  8. private String password;

  9.  
  10. private Integer age;

  11.  
  12. public Long getId() {

  13. return id;

  14. }

  15.  
  16. public void setId(Long id) {

  17. this.id = id;

  18. }

  19.  
  20. public String getUser() {

  21. return user;

  22. }

  23.  
  24. public void setUser(String user) {

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

  26. }

  27.  
  28. public String getPassword() {

  29. return password;

  30. }

  31.  
  32. public void setPassword(String password) {

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

  34. }

  35.  
  36. public Integer getAge() {

  37. return age;

  38. }

  39.  
  40. public void setAge(Integer age) {

  41. this.age = age;

  42. }

  43. }


至此就完成了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代码生成器:

http://blog.csdn.net/jqc874789596/article/details/79126282

命令行使用Mybatis-generator代码生成器:

http://blog.csdn.net/jqc874789596/article/details/79129257