您现在的位置是:首页 > 个人日记个人日记
spring&mybatis-通用mapper集成代码生成器
2019-02-07 13:21:27【个人日记】285人已围观
简介加入通用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 generatorConfigurationPUBLIC "-//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的数据库连接 --><jdbcConnectiondriverClass="${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-02-配置细节
下一篇: spring-04-对象注入
相关文章
随机图文
评论区
2025-11-09 06:13:12
站长
没有登录功能是为了方便大家留言,但留言接口现在被恶意攻击,将关闭留言接口,如有疑问,请联系我的QQ 1538933906/同微信
