MyBatis generator在使用MyBatis框架开发的时候会给我们省下一大笔写基础代码的时间。对我们程序员来说真是太好啦。(废话结束)
spring boot 2.0 idea项目
测试表格DDL语句:
CREATE TABLE
user_info
(
user_address VARCHAR(50),
user_nickname VARCHAR(50),
user_name VARCHAR(50)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 DEFAULT COLLATE=utf8_general_ci;
主要是改MyBatis generator的配置文件。可参考之前发布的idea Mybatis generator插件的配置和使用 查看默认配置
修改表格部分如下:
<table tableName="user_info"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<property name="useActualColumnNames" value="false" />
<!--true:MyBatis Generator会使用数据库中实际的字段名字作为生成的实体类的属性名。
false:这是默认值。如果设置为false,则MyBatis Generator会将数据库中实际的字段名字转换为Camel Case风格作为生成的实体类的属性名。-->
</table>
修改配置完成后就可以实现表明字段名都下划线转驼峰啦
按照之前一篇文章idea Mybatis generator插件的配置和使用讲解的,配置好后运行插件我们可以看到生成的代码结果如下
$title(UserInfo.java)
package com.xqlee.demo.business.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
public class UserInfo implements Serializable {
private String userAddress;
private String userNickname;
private String userName;
private static final long serialVersionUID = 1L;
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress == null ? null : userAddress.trim();
}
public String getUserNickname() {
return userNickname;
}
public void setUserNickname(String userNickname) {
this.userNickname = userNickname == null ? null : userNickname.trim();
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName == null ? null : userName.trim();
}
/**
* This enum was generated by MyBatis Generator.
* This enum corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public enum Column {
userAddress("user_address", "userAddress", "VARCHAR", false),
userNickname("user_nickname", "userNickname", "VARCHAR", false),
userName("user_name", "userName", "VARCHAR", false);
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
private static final String BEGINNING_DELIMITER = "\"";
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
private static final String ENDING_DELIMITER = "\"";
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
private final String column;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
private final boolean isColumnNameDelimited;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
private final String javaProperty;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
private final String jdbcType;
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String value() {
return this.column;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String getValue() {
return this.column;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String getJavaProperty() {
return this.javaProperty;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String getJdbcType() {
return this.jdbcType;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
Column(String column, String javaProperty, String jdbcType, boolean isColumnNameDelimited) {
this.column = column;
this.javaProperty = javaProperty;
this.jdbcType = jdbcType;
this.isColumnNameDelimited = isColumnNameDelimited;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String desc() {
return this.getEscapedColumnName() + " DESC";
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String asc() {
return this.getEscapedColumnName() + " ASC";
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public static Column[] excludes(Column ... excludes) {
ArrayList<Column> columns = new ArrayList<>(Arrays.asList(Column.values()));
if (excludes != null && excludes.length > 0) {
columns.removeAll(new ArrayList<>(Arrays.asList(excludes)));
}
return columns.toArray(new Column[]{});
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String getEscapedColumnName() {
if (this.isColumnNameDelimited) {
return new StringBuilder().append(BEGINNING_DELIMITER).append(this.column).append(ENDING_DELIMITER).toString();
} else {
return this.column;
}
}
}
}
由于引入了三方插件,看起来并不是特别清爽,不用在意。看字段名就好哈哈。。。
$title(UserInfoMapper.java)
package com.xqlee.demo.business.mapper;
import com.xqlee.demo.business.model.UserInfo;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface UserInfoMapper {
int insert(UserInfo record);
int insertSelective(UserInfo record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int batchInsert(@Param("list") java.util.List<UserInfo> list);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table user_info
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int batchInsertSelective(@Param("list") java.util.List<UserInfo> list, @Param("selective") UserInfo.Column ... selective);
}
$title(UserInfoMapper.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.xqlee.demo.business.mapper.UserInfoMapper">
<resultMap id="BaseResultMap" type="com.xqlee.demo.business.model.UserInfo">
<result column="user_address" jdbcType="VARCHAR" property="userAddress" />
<result column="user_nickname" jdbcType="VARCHAR" property="userNickname" />
<result column="user_name" jdbcType="VARCHAR" property="userName" />
</resultMap>
<insert id="insert" parameterType="com.xqlee.demo.business.model.UserInfo">
insert into user_info (user_address, user_nickname, user_name
)
values (#{userAddress,jdbcType=VARCHAR}, #{userNickname,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}
)
</insert>
<insert id="insertSelective" parameterType="com.xqlee.demo.business.model.UserInfo">
insert into user_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="userAddress != null">
user_address,
</if>
<if test="userNickname != null">
user_nickname,
</if>
<if test="userName != null">
user_name,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="userAddress != null">
#{userAddress,jdbcType=VARCHAR},
</if>
<if test="userNickname != null">
#{userNickname,jdbcType=VARCHAR},
</if>
<if test="userName != null">
#{userName,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<insert id="batchInsert" parameterType="map">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
@project https://github.com/itfsw/mybatis-generator-plugin
-->
insert into user_info
(user_address, user_nickname, user_name)
values
<foreach collection="list" item="item" separator=",">
(#{item.userAddress,jdbcType=VARCHAR}, #{item.userNickname,jdbcType=VARCHAR}, #{item.userName,jdbcType=VARCHAR}
)
</foreach>
</insert>
<insert id="batchInsertSelective" parameterType="map">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
@project https://github.com/itfsw/mybatis-generator-plugin
-->
insert into user_info (
<foreach collection="selective" item="column" separator=",">
${column.escapedColumnName}
</foreach>
)
values
<foreach collection="list" item="item" separator=",">
(
<foreach collection="selective" item="column" separator=",">
<if test="'user_address'.toString() == column.value">
#{item.userAddress,jdbcType=VARCHAR}
</if>
<if test="'user_nickname'.toString() == column.value">
#{item.userNickname,jdbcType=VARCHAR}
</if>
<if test="'user_name'.toString() == column.value">
#{item.userName,jdbcType=VARCHAR}
</if>
</foreach>
)
</foreach>
</insert>
</mapper>
结束Over.!
http://blog.xqlee.com/article/505.html