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檔案,按下面註釋配置好。
這裡直接給出檔案內容
-
<?xml version="1.0" encoding="UTF-8"?>
-
<!DOCTYPE generatorConfiguration
-
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
-
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
-
<generatorConfiguration>
-
<!--本機資料庫驅動jar包存放目錄-->
-
<classPathEntry location="D:\dev\repo\mysql\mysql-connector-java\5.1.35\mysql-connector-java-5.1.35.jar"/>
-
<context id="DB2Tables" targetRuntime="MyBatis3">
-
<commentGenerator>
-
<property name="suppressDate" value="true"/>
-
<property name="suppressAllComments" value="true"/>
-
</commentGenerator>
-
<!--資料庫驅動,資料庫地址及表名,賬號,密碼-->
-
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.25.1/mymessages" userId="root" password="123456">
-
</jdbcConnection>
-
<javaTypeResolver>
-
<property name="forceBigDecimals" value="false"/>
-
</javaTypeResolver>
-
<!--生成Model類的包名及存放位置-->
-
<javaModelGenerator targetPackage="com.cn.pojo" targetProject="src/main/java">
-
<property name="enableSubPackages" value="true"/>
-
<property name="trimStrings" value="true"/>
-
</javaModelGenerator>
-
<!--生成對映檔案的包名及存放位置-->
-
<sqlMapGenerator targetPackage="com.cn.mapper" targetProject="src/main/java">
-
<property name="enableSubPackages" value="true"/>
-
</sqlMapGenerator>
-
<!--生成Dao類的包名及存放位置-->
-
<javaClientGenerator type="XMLMAPPER" targetPackage="com.cn.dao" targetProject="src/main/java">
-
<property name="enableSubPackages" value="true"/>
-
</javaClientGenerator>
-
<!--生成對應表及類名,domainObjectName是設定實體類的名字的-->
-
<table tableName="test_generator" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
-
</context>
-
</generatorConfiguration>
四、配置配置Maven的pom.xml檔案
這裡直接給出pom.xml檔案內容
-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
<modelVersion>4.0.0</modelVersion>
-
<groupId>com.cn.test</groupId>
-
<artifactId>Test_Generator</artifactId>
-
<packaging>war</packaging>
-
<version>1.0-SNAPSHOT</version>
-
<name>Test_Generator Maven Webapp</name>
-
<url>http://maven.apache.org</url>
-
<dependencies>
-
<!--jdbc驅動包-->
-
<dependency>
-
<groupId>mysql</groupId>
-
<artifactId>mysql-connector-java</artifactId>
-
<version>5.1.35</version>
-
</dependency>
-
<!--mybatis-generator核心包-->
-
<dependency>
-
<groupId>org.mybatis.generator</groupId>
-
<artifactId>mybatis-generator-core</artifactId>
-
<version>1.3.2</version>
-
</dependency>
-
</dependencies>
-
<build>
-
<plugins>
-
<plugin>
-
<groupId>org.mybatis.generator</groupId>
-
<artifactId>mybatis-generator-maven-plugin</artifactId>
-
<version>1.3.2</version>
-
<configuration>
-
<!--配置檔案的位置-->
-
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
-
<verbose>true</verbose>
-
<overwrite>true</overwrite>
-
</configuration>
-
<executions>
-
<execution>
-
<id>Generate MyBatis Artifacts</id>
-
<goals>
-
<goal>generate</goal>
-
</goals>
-
</execution>
-
</executions>
-
</plugin>
-
</plugins>
-
</build>
五、執行Maven外掛:調出Maven面板--->展開Plugins--->展開mybatis-generator--->右鍵Run Maven Build
稍等幾秒鐘就完成啦!
現在看一下程式碼生成器幫我們生成的目錄檔案:
分別把這三個檔案的內容貼出來給大家看一下
UserMapper:
-
package com.cn.dao;
-
import com.cn.pojo.User;
-
public interface UserMapper {
-
int deleteByPrimaryKey(Long id);
-
int insert(User record);
-
int insertSelective(User record);
-
User selectByPrimaryKey(Long id);
-
int updateByPrimaryKeySelective(User record);
-
int updateByPrimaryKey(User record);
-
}
UserMapper.xml:
-
<?xml version="1.0" encoding="UTF-8" ?>
-
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-
<mapper namespace="com.cn.dao.UserMapper" >
-
<resultMap id="BaseResultMap" type="com.cn.pojo.User" >
-
<id column="id" property="id" jdbcType="BIGINT" />
-
<result column="user" property="user" jdbcType="VARCHAR" />
-
<result column="password" property="password" jdbcType="VARCHAR" />
-
<result column="age" property="age" jdbcType="INTEGER" />
-
</resultMap>
-
<sql id="Base_Column_List" >
-
id, user, password, age
-
</sql>
-
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
-
select
-
<include refid="Base_Column_List" />
-
from test_generator
-
where id = #{id,jdbcType=BIGINT}
-
</select>
-
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
-
delete from test_generator
-
where id = #{id,jdbcType=BIGINT}
-
</delete>
-
<insert id="insert" parameterType="com.cn.pojo.User" >
-
insert into test_generator (id, user, password,
-
age)
-
values (#{id,jdbcType=BIGINT}, #{user,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
-
#{age,jdbcType=INTEGER})
-
</insert>
-
<insert id="insertSelective" parameterType="com.cn.pojo.User" >
-
insert into test_generator
-
<trim prefix="(" suffix=")" suffixOverrides="," >
-
<if test="id != null" >
-
id,
-
</if>
-
<if test="user != null" >
-
user,
-
</if>
-
<if test="password != null" >
-
password,
-
</if>
-
<if test="age != null" >
-
age,
-
</if>
-
</trim>
-
<trim prefix="values (" suffix=")" suffixOverrides="," >
-
<if test="id != null" >
-
#{id,jdbcType=BIGINT},
-
</if>
-
<if test="user != null" >
-
#{user,jdbcType=VARCHAR},
-
</if>
-
<if test="password != null" >
-
#{password,jdbcType=VARCHAR},
-
</if>
-
<if test="age != null" >
-
#{age,jdbcType=INTEGER},
-
</if>
-
</trim>
-
</insert>
-
<update id="updateByPrimaryKeySelective" parameterType="com.cn.pojo.User" >
-
update test_generator
-
<set >
-
<if test="user != null" >
-
user = #{user,jdbcType=VARCHAR},
-
</if>
-
<if test="password != null" >
-
password = #{password,jdbcType=VARCHAR},
-
</if>
-
<if test="age != null" >
-
age = #{age,jdbcType=INTEGER},
-
</if>
-
</set>
-
where id = #{id,jdbcType=BIGINT}
-
</update>
-
<update id="updateByPrimaryKey" parameterType="com.cn.pojo.User" >
-
update test_generator
-
set user = #{user,jdbcType=VARCHAR},
-
password = #{password,jdbcType=VARCHAR},
-
age = #{age,jdbcType=INTEGER}
-
where id = #{id,jdbcType=BIGINT}
-
</update>
-
</mapper>
User:
-
package com.cn.pojo;
-
public class User {
-
private Long id;
-
private String user;
-
private String password;
-
private Integer age;
-
public Long getId() {
-
return id;
-
}
-
public void setId(Long id) {
-
this.id = id;
-
}
-
public String getUser() {
-
return user;
-
}
-
public void setUser(String user) {
-
this.user = user == null ? null : user.trim();
-
}
-
public String getPassword() {
-
return password;
-
}
-
public void setPassword(String password) {
-
this.password = password == null ? null : password.trim();
-
}
-
public Integer getAge() {
-
return age;
-
}
-
public void setAge(Integer age) {
-
this.age = age;
-
}
-
}
至此就完成了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程式碼生成器: