在這里簡(jiǎn)單介紹一下如何整合Mybatis
自動(dòng)生成代碼的插件MybatisGenerator
引入插件
需要在pom.xml
文件中的<build><plugins></plugins></build>
中加入以下設(shè)置
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<!-- 添加一個(gè)mysql的依賴,防止等會(huì)找不到driverClass -->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.28</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<!-- mybatisGenerator 的配置 -->
<configuration>
<!-- generator 工具配置文件的位置 -->
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<!-- 是否覆蓋 -->
<!-- 此處要特別注意,如果不加這個(gè)設(shè)置會(huì)導(dǎo)致每次運(yùn)行都會(huì)在原目錄再次創(chuàng)建-->
<overwrite>true</overwrite>
</configuration>
</plugin>
引入依賴后右側(cè)的maven project
側(cè)邊欄中的Plugins
選項(xiàng)會(huì)多出一個(gè)mybatis-generator
設(shè)置配置文件
接下來在resources
文件夾中創(chuàng)建一個(gè)generatorConfig.xml
文件用于自動(dòng)構(gòu)建代碼的配置
<?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>
<context id="MySQLTables" targetRuntime="MyBatis3" defaultModelType="flat">
<!-- 公共設(shè)置 -->
<commentGenerator>
<!-- 是否取消自動(dòng)生成時(shí)的注釋 -->
<property name="suppressAllComments" value="true"/>
<!-- 是否取消在注釋中加上時(shí)間 -->
<property name="suppressDate" value="true"/>
</commentGenerator>
<!-- 鏈接數(shù)據(jù)庫(kù)的配置 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql:///test" userId="root" password="root"/>
<!-- 關(guān)于生成實(shí)體類的設(shè)置 -->
<!-- targetPackage 生成代碼的目標(biāo)目錄 -->
<!-- targetProject 目錄所屬位置 -->
<javaModelGenerator targetPackage="priv.gabriel.model" targetProject="src/main/java">
<!-- 在targetPackge的基礎(chǔ)上根據(jù)schema再生成一層package 默認(rèn)flase -->
<property name="enableSubPackages" value="true"/>
<!-- 是否在get方法中 對(duì)String類型的字段做空的判斷 -->
<property name="trimStrings" value="true"/>
<!-- 是否生成一個(gè)包含所有字段的構(gòu)造器 -->
<property name="constructorBased" value="false"/>
<!-- 是否創(chuàng)建一個(gè)不可變類-->
<property name="immutable" value="false"/>
</javaModelGenerator>
<!--關(guān)于生成映射文件的設(shè)置-->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<!--同上-->
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--關(guān)于生成dao層的設(shè)置-->
<javaClientGenerator type="mapper" targetPackage="priv.gabriel.dao" targetProject="src/main/java">
<!--同上-->
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--需要生成的代碼對(duì)應(yīng)的表名-->
<table tableName="user"></table>
</context>
</generatorConfiguration>
運(yùn)行插件
配置就結(jié)束了此疹,最后運(yùn)行一下巍佑,這里找到在Maven Project
的mybatis-generator:generator
選項(xiàng)辞做,雙擊運(yùn)行
最后的成果
User.java
package priv.gabriel.model;
import java.util.Date;
public class User {
private Integer id;
private String username;
private String pword;
private Integer age;
private Date utime;
private Date ctime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username == null ? null : username.trim();
}
public String getPword() {
return pword;
}
public void setPword(String pword) {
this.pword = pword == null ? null : pword.trim();
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getUtime() {
return utime;
}
public void setUtime(Date utime) {
this.utime = utime;
}
public Date getCtime() {
return ctime;
}
public void setCtime(Date ctime) {
this.ctime = ctime;
}
}
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="priv.gabriel.dao.UserMapper">
<resultMap id="BaseResultMap" type="priv.gabriel.model.User">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="pword" jdbcType="VARCHAR" property="pword" />
<result column="age" jdbcType="INTEGER" property="age" />
<result column="utime" jdbcType="DATE" property="utime" />
<result column="ctime" jdbcType="DATE" property="ctime" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, username, pword, age, utime, ctime
</sql>
<select id="selectByExample" parameterType="priv.gabriel.model.UserExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from user
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from user
where id = #{id,jdbcType=INTEGER}
</delete>
<delete id="deleteByExample" parameterType="priv.gabriel.model.UserExample">
delete from user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="priv.gabriel.model.User">
insert into user (id, username, pword,
age, utime, ctime)
values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{pword,jdbcType=VARCHAR},
#{age,jdbcType=INTEGER}, #{utime,jdbcType=DATE}, #{ctime,jdbcType=DATE})
</insert>
<insert id="insertSelective" parameterType="priv.gabriel.model.User">
insert into user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="username != null">
username,
</if>
<if test="pword != null">
pword,
</if>
<if test="age != null">
age,
</if>
<if test="utime != null">
utime,
</if>
<if test="ctime != null">
ctime,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="username != null">
#{username,jdbcType=VARCHAR},
</if>
<if test="pword != null">
#{pword,jdbcType=VARCHAR},
</if>
<if test="age != null">
#{age,jdbcType=INTEGER},
</if>
<if test="utime != null">
#{utime,jdbcType=DATE},
</if>
<if test="ctime != null">
#{ctime,jdbcType=DATE},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="priv.gabriel.model.UserExample" resultType="java.lang.Long">
select count(*) from user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update user
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=INTEGER},
</if>
<if test="record.username != null">
username = #{record.username,jdbcType=VARCHAR},
</if>
<if test="record.pword != null">
pword = #{record.pword,jdbcType=VARCHAR},
</if>
<if test="record.age != null">
age = #{record.age,jdbcType=INTEGER},
</if>
<if test="record.utime != null">
utime = #{record.utime,jdbcType=DATE},
</if>
<if test="record.ctime != null">
ctime = #{record.ctime,jdbcType=DATE},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update user
set id = #{record.id,jdbcType=INTEGER},
username = #{record.username,jdbcType=VARCHAR},
pword = #{record.pword,jdbcType=VARCHAR},
age = #{record.age,jdbcType=INTEGER},
utime = #{record.utime,jdbcType=DATE},
ctime = #{record.ctime,jdbcType=DATE}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="priv.gabriel.model.User">
update user
<set>
<if test="username != null">
username = #{username,jdbcType=VARCHAR},
</if>
<if test="pword != null">
pword = #{pword,jdbcType=VARCHAR},
</if>
<if test="age != null">
age = #{age,jdbcType=INTEGER},
</if>
<if test="utime != null">
utime = #{utime,jdbcType=DATE},
</if>
<if test="ctime != null">
ctime = #{ctime,jdbcType=DATE},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="priv.gabriel.model.User">
update user
set username = #{username,jdbcType=VARCHAR},
pword = #{pword,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER},
utime = #{utime,jdbcType=DATE},
ctime = #{ctime,jdbcType=DATE}
where id = #{id,jdbcType=INTEGER}
</update>
<resultMap id="BaseResultMap" type="priv.gabriel.model.User">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="pword" jdbcType="VARCHAR" property="pword" />
<result column="age" jdbcType="INTEGER" property="age" />
<result column="utime" jdbcType="DATE" property="utime" />
<result column="ctime" jdbcType="DATE" property="ctime" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, username, pword, age, utime, ctime
</sql>
<select id="selectByExample" parameterType="priv.gabriel.model.UserExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from user
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from user
where id = #{id,jdbcType=INTEGER}
</delete>
<delete id="deleteByExample" parameterType="priv.gabriel.model.UserExample">
delete from user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="priv.gabriel.model.User">
insert into user (id, username, pword,
age, utime, ctime)
values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{pword,jdbcType=VARCHAR},
#{age,jdbcType=INTEGER}, #{utime,jdbcType=DATE}, #{ctime,jdbcType=DATE})
</insert>
<insert id="insertSelective" parameterType="priv.gabriel.model.User">
insert into user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="username != null">
username,
</if>
<if test="pword != null">
pword,
</if>
<if test="age != null">
age,
</if>
<if test="utime != null">
utime,
</if>
<if test="ctime != null">
ctime,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="username != null">
#{username,jdbcType=VARCHAR},
</if>
<if test="pword != null">
#{pword,jdbcType=VARCHAR},
</if>
<if test="age != null">
#{age,jdbcType=INTEGER},
</if>
<if test="utime != null">
#{utime,jdbcType=DATE},
</if>
<if test="ctime != null">
#{ctime,jdbcType=DATE},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="priv.gabriel.model.UserExample" resultType="java.lang.Long">
select count(*) from user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update user
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=INTEGER},
</if>
<if test="record.username != null">
username = #{record.username,jdbcType=VARCHAR},
</if>
<if test="record.pword != null">
pword = #{record.pword,jdbcType=VARCHAR},
</if>
<if test="record.age != null">
age = #{record.age,jdbcType=INTEGER},
</if>
<if test="record.utime != null">
utime = #{record.utime,jdbcType=DATE},
</if>
<if test="record.ctime != null">
ctime = #{record.ctime,jdbcType=DATE},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update user
set id = #{record.id,jdbcType=INTEGER},
username = #{record.username,jdbcType=VARCHAR},
pword = #{record.pword,jdbcType=VARCHAR},
age = #{record.age,jdbcType=INTEGER},
utime = #{record.utime,jdbcType=DATE},
ctime = #{record.ctime,jdbcType=DATE}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="priv.gabriel.model.User">
update user
<set>
<if test="username != null">
username = #{username,jdbcType=VARCHAR},
</if>
<if test="pword != null">
pword = #{pword,jdbcType=VARCHAR},
</if>
<if test="age != null">
age = #{age,jdbcType=INTEGER},
</if>
<if test="utime != null">
utime = #{utime,jdbcType=DATE},
</if>
<if test="ctime != null">
ctime = #{ctime,jdbcType=DATE},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="priv.gabriel.model.User">
update user
set username = #{username,jdbcType=VARCHAR},
pword = #{pword,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER},
utime = #{utime,jdbcType=DATE},
ctime = #{ctime,jdbcType=DATE}
where id = #{id,jdbcType=INTEGER}
</update>
<resultMap id="BaseResultMap" type="priv.gabriel.model.User">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="pword" jdbcType="VARCHAR" property="pword" />
<result column="age" jdbcType="INTEGER" property="age" />
<result column="utime" jdbcType="DATE" property="utime" />
<result column="ctime" jdbcType="DATE" property="ctime" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, username, pword, age, utime, ctime
</sql>
<select id="selectByExample" parameterType="priv.gabriel.model.UserExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from user
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from user
where id = #{id,jdbcType=INTEGER}
</delete>
<delete id="deleteByExample" parameterType="priv.gabriel.model.UserExample">
delete from user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="priv.gabriel.model.User">
insert into user (id, username, pword,
age, utime, ctime)
values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{pword,jdbcType=VARCHAR},
#{age,jdbcType=INTEGER}, #{utime,jdbcType=DATE}, #{ctime,jdbcType=DATE})
</insert>
<insert id="insertSelective" parameterType="priv.gabriel.model.User">
insert into user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="username != null">
username,
</if>
<if test="pword != null">
pword,
</if>
<if test="age != null">
age,
</if>
<if test="utime != null">
utime,
</if>
<if test="ctime != null">
ctime,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="username != null">
#{username,jdbcType=VARCHAR},
</if>
<if test="pword != null">
#{pword,jdbcType=VARCHAR},
</if>
<if test="age != null">
#{age,jdbcType=INTEGER},
</if>
<if test="utime != null">
#{utime,jdbcType=DATE},
</if>
<if test="ctime != null">
#{ctime,jdbcType=DATE},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="priv.gabriel.model.UserExample" resultType="java.lang.Long">
select count(*) from user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update user
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=INTEGER},
</if>
<if test="record.username != null">
username = #{record.username,jdbcType=VARCHAR},
</if>
<if test="record.pword != null">
pword = #{record.pword,jdbcType=VARCHAR},
</if>
<if test="record.age != null">
age = #{record.age,jdbcType=INTEGER},
</if>
<if test="record.utime != null">
utime = #{record.utime,jdbcType=DATE},
</if>
<if test="record.ctime != null">
ctime = #{record.ctime,jdbcType=DATE},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update user
set id = #{record.id,jdbcType=INTEGER},
username = #{record.username,jdbcType=VARCHAR},
pword = #{record.pword,jdbcType=VARCHAR},
age = #{record.age,jdbcType=INTEGER},
utime = #{record.utime,jdbcType=DATE},
ctime = #{record.ctime,jdbcType=DATE}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="priv.gabriel.model.User">
update user
<set>
<if test="username != null">
username = #{username,jdbcType=VARCHAR},
</if>
<if test="pword != null">
pword = #{pword,jdbcType=VARCHAR},
</if>
<if test="age != null">
age = #{age,jdbcType=INTEGER},
</if>
<if test="utime != null">
utime = #{utime,jdbcType=DATE},
</if>
<if test="ctime != null">
ctime = #{ctime,jdbcType=DATE},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="priv.gabriel.model.User">
update user
set username = #{username,jdbcType=VARCHAR},
pword = #{pword,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER},
utime = #{utime,jdbcType=DATE},
ctime = #{ctime,jdbcType=DATE}
where id = #{id,jdbcType=INTEGER}
</update>
<resultMap id="BaseResultMap" type="priv.gabriel.model.User">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="pword" jdbcType="VARCHAR" property="pword" />
<result column="age" jdbcType="INTEGER" property="age" />
<result column="utime" jdbcType="DATE" property="utime" />
<result column="ctime" jdbcType="DATE" property="ctime" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, username, pword, age, utime, ctime
</sql>
<select id="selectByExample" parameterType="priv.gabriel.model.UserExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from user
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from user
where id = #{id,jdbcType=INTEGER}
</delete>
<delete id="deleteByExample" parameterType="priv.gabriel.model.UserExample">
delete from user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="priv.gabriel.model.User">
insert into user (id, username, pword,
age, utime, ctime)
values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{pword,jdbcType=VARCHAR},
#{age,jdbcType=INTEGER}, #{utime,jdbcType=DATE}, #{ctime,jdbcType=DATE})
</insert>
<insert id="insertSelective" parameterType="priv.gabriel.model.User">
insert into user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="username != null">
username,
</if>
<if test="pword != null">
pword,
</if>
<if test="age != null">
age,
</if>
<if test="utime != null">
utime,
</if>
<if test="ctime != null">
ctime,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="username != null">
#{username,jdbcType=VARCHAR},
</if>
<if test="pword != null">
#{pword,jdbcType=VARCHAR},
</if>
<if test="age != null">
#{age,jdbcType=INTEGER},
</if>
<if test="utime != null">
#{utime,jdbcType=DATE},
</if>
<if test="ctime != null">
#{ctime,jdbcType=DATE},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="priv.gabriel.model.UserExample" resultType="java.lang.Long">
select count(*) from user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update user
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=INTEGER},
</if>
<if test="record.username != null">
username = #{record.username,jdbcType=VARCHAR},
</if>
<if test="record.pword != null">
pword = #{record.pword,jdbcType=VARCHAR},
</if>
<if test="record.age != null">
age = #{record.age,jdbcType=INTEGER},
</if>
<if test="record.utime != null">
utime = #{record.utime,jdbcType=DATE},
</if>
<if test="record.ctime != null">
ctime = #{record.ctime,jdbcType=DATE},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update user
set id = #{record.id,jdbcType=INTEGER},
username = #{record.username,jdbcType=VARCHAR},
pword = #{record.pword,jdbcType=VARCHAR},
age = #{record.age,jdbcType=INTEGER},
utime = #{record.utime,jdbcType=DATE},
ctime = #{record.ctime,jdbcType=DATE}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="priv.gabriel.model.User">
update user
<set>
<if test="username != null">
username = #{username,jdbcType=VARCHAR},
</if>
<if test="pword != null">
pword = #{pword,jdbcType=VARCHAR},
</if>
<if test="age != null">
age = #{age,jdbcType=INTEGER},
</if>
<if test="utime != null">
utime = #{utime,jdbcType=DATE},
</if>
<if test="ctime != null">
ctime = #{ctime,jdbcType=DATE},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="priv.gabriel.model.User">
update user
set username = #{username,jdbcType=VARCHAR},
pword = #{pword,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER},
utime = #{utime,jdbcType=DATE},
ctime = #{ctime,jdbcType=DATE}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
UserMapper.java
package priv.gabriel.dao;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import priv.gabriel.model.User;
import priv.gabriel.model.UserExample;
public interface UserMapper {
long countByExample(UserExample example);
int deleteByExample(UserExample example);
int deleteByPrimaryKey(Integer id);
int insert(User record);
int insertSelective(User record);
List<User> selectByExample(UserExample example);
User selectByPrimaryKey(Integer id);
int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);
int updateByExample(@Param("record") User record, @Param("example") UserExample example);
int updateByPrimaryKeySelective(User record);
int updateByPrimaryKey(User record);
}
可以看到已經(jīng)幫我們生產(chǎn)了關(guān)于CRUD
的絕大代碼,再結(jié)合之前的通用mapper
就可以解決絕大部分的問題啦