您现在的位置是:首页 > 个人日记个人日记
spring&mybatis-通用mapper集成代码生成器
2019-02-07 13:21:27【个人日记】230人已围观
简介加入通用mapper的jar,使其与自动代码生成器集成,更好的发挥作用
通用mapper集成代码生成器
需要先导入两个jar包
<!--mybatis-代码生成器-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-generator</artifactId>
<version>1.1.4</version>
</dependency>
<!--mapper通用方法框架-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.1.4</version>
</dependency>
并且在最下面配置插件信息
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<!--这是自动代码生成器的配置文件路径-->
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<!--依赖的sql版本-->
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
<scope>runtime</scope>
</dependency>
<!--mapper通用方法框架-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.1.4</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
也就是加入通用mapper的插件
并且需要在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>
<!--导入属性配置-->
<properties resource="property/jdbc.properties"></properties>
<context id="mysql" targetRuntime="MyBatis3">
<!--通用mapper代码生成-->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<property name="caseSensitive" value="true"/>
<property name="forceAnnotation" value="true"/>
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
</plugin>
<!-- 注释 -->
<commentGenerator>
<property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
<property name="suppressDate" value="true"/><!-- 是否生成注释代时间戳 -->
</commentGenerator>
<!--jdbc的数据库连接 -->
<jdbcConnection
driverClass="${jdbc.driver}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection>
<!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制-->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
targetPackage 指定生成的model生成所在的包名
targetProject 指定在该项目下所在的路径
-->
<javaModelGenerator targetPackage="com.huangxin.order.model"
targetProject="src/main/java">
</javaModelGenerator>
<!--Mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 -->
<sqlMapGenerator targetPackage="mapper"
targetProject="src/main/resources">
</sqlMapGenerator>
<!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
-->
<javaClientGenerator targetPackage="com.huangxin.order.mapper"
targetProject="src/main/java" type="XMLMAPPER">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 数据表名及实体类名称 -->
<table tableName="user" domainObjectName="User"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
也就是
<!--通用mapper代码生成-->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<property name="caseSensitive" value="true"/>
<property name="forceAnnotation" value="true"/>
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
</plugin>
这段代码将通用mapper的插件引入
生成后的文件展示
对象
package com.huangxin.order.model;
import javax.persistence.*;
@Table(name = "`user`")
public class User {
@Id
@Column(name = "`id`")
private Integer id;
@Column(name = "`user_name`")
private String userName;
@Column(name = "`user_telephone`")
private String userTelephone;
@Column(name = "`user_sex`")
private String userSex;
/**
* @return id
*/
public Integer getId() {
return id;
}
/**
* @param id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return user_name
*/
public String getUserName() {
return userName;
}
/**
* @param userName
*/
public void setUserName(String userName) {
this.userName = userName;
}
/**
* @return user_telephone
*/
public String getUserTelephone() {
return userTelephone;
}
/**
* @param userTelephone
*/
public void setUserTelephone(String userTelephone) {
this.userTelephone = userTelephone;
}
/**
* @return user_sex
*/
public String getUserSex() {
return userSex;
}
/**
* @param userSex
*/
public void setUserSex(String userSex) {
this.userSex = userSex;
}
}
mapper接口
package com.huangxin.order.mapper;
import com.huangxin.order.model.User;
import tk.mybatis.mapper.common.Mapper;
public interface UserMapper extends Mapper<User> {
}
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.huangxin.order.mapper.ItemMapper">
<resultMap id="BaseResultMap" type="com.huangxin.order.model.Item">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="price" jdbcType="REAL" property="price" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<sql id="Base_Column_List">
<!--
WARNING - @mbg.generated
-->
id, name, price, create_time
</sql>
</mapper>
优点
1) 生成的对象信息自动生成注解,清晰展示
2) 生成接口,常用增删改查已经继承父类,只需要写复杂逻辑
3) 生成mapper.xml
中不再有简单的sql语句展示,继承的父类已经实现了增删改查,只需要在这里添加复杂逻辑
4) 并且已经在mapper.xml
文件中生成相对应的resultMap标签,直接使用即可
Tags: JavaWeb
上一篇: spring-05-复杂数据类型注入
下一篇: mybatis-07-单表一对多查询
相关文章
随机图文
评论区
2024-12-21 23:06:22
站长
没有登录功能是为了方便大家留言,但留言接口现在被恶意攻击,将关闭留言接口,如有疑问,请联系我的QQ 1538933906/同微信