您现在的位置是:首页 > 个人日记个人日记

spring&mybatis-通用mapper集成代码生成器

2019-02-07 13:21:27【个人日记】230人已围观

简介加入通用mapper的jar,使其与自动代码生成器集成,更好的发挥作用

通用mapper集成代码生成器

需要先导入两个jar包

  1. <!--mybatis-代码生成器-->
  2. <dependency>
  3. <groupId>tk.mybatis</groupId>
  4. <artifactId>mapper-generator</artifactId>
  5. <version>1.1.4</version>
  6. </dependency>
  7. <!--mapper通用方法框架-->
  8. <dependency>
  9. <groupId>tk.mybatis</groupId>
  10. <artifactId>mapper</artifactId>
  11. <version>4.1.4</version>
  12. </dependency>

并且在最下面配置插件信息

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.mybatis.generator</groupId>
  5. <artifactId>mybatis-generator-maven-plugin</artifactId>
  6. <version>1.3.6</version>
  7. <configuration>
  8. <!--这是自动代码生成器的配置文件路径-->
  9. <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
  10. <verbose>true</verbose>
  11. <overwrite>true</overwrite>
  12. </configuration>
  13. <dependencies>
  14. <dependency>
  15. <!--依赖的sql版本-->
  16. <groupId>mysql</groupId>
  17. <artifactId>mysql-connector-java</artifactId>
  18. <version>5.1.46</version>
  19. <scope>runtime</scope>
  20. </dependency>
  21. <!--mapper通用方法框架-->
  22. <dependency>
  23. <groupId>tk.mybatis</groupId>
  24. <artifactId>mapper</artifactId>
  25. <version>4.1.4</version>
  26. </dependency>
  27. </dependencies>
  28. </plugin>
  29. </plugins>
  30. </build>

也就是加入通用mapper的插件

并且需要在generatorConfig.xml加入

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE generatorConfiguration
  3. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  4. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5. <generatorConfiguration>
  6. <!--导入属性配置-->
  7. <properties resource="property/jdbc.properties"></properties>
  8. <context id="mysql" targetRuntime="MyBatis3">
  9. <!--通用mapper代码生成-->
  10. <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
  11. <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
  12. <property name="caseSensitive" value="true"/>
  13. <property name="forceAnnotation" value="true"/>
  14. <property name="beginningDelimiter" value="`"/>
  15. <property name="endingDelimiter" value="`"/>
  16. </plugin>
  17. <!-- 注释 -->
  18. <commentGenerator>
  19. <property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
  20. <property name="suppressDate" value="true"/><!-- 是否生成注释代时间戳 -->
  21. </commentGenerator>
  22. <!--jdbc的数据库连接 -->
  23. <jdbcConnection
  24. driverClass="${jdbc.driver}"
  25. connectionURL="${jdbc.url}"
  26. userId="${jdbc.username}"
  27. password="${jdbc.password}">
  28. </jdbcConnection>
  29. <!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制-->
  30. <javaTypeResolver>
  31. <property name="forceBigDecimals" value="false"/>
  32. </javaTypeResolver>
  33. <!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
  34. targetPackage 指定生成的model生成所在的包名
  35. targetProject 指定在该项目下所在的路径
  36. -->
  37. <javaModelGenerator targetPackage="com.huangxin.order.model"
  38. targetProject="src/main/java">
  39. </javaModelGenerator>
  40. <!--Mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 -->
  41. <sqlMapGenerator targetPackage="mapper"
  42. targetProject="src/main/resources">
  43. </sqlMapGenerator>
  44. <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
  45. type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
  46. type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
  47. type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
  48. -->
  49. <javaClientGenerator targetPackage="com.huangxin.order.mapper"
  50. targetProject="src/main/java" type="XMLMAPPER">
  51. <property name="enableSubPackages" value="true"/>
  52. </javaClientGenerator>
  53. <!-- 数据表名及实体类名称 -->
  54. <table tableName="user" domainObjectName="User"
  55. enableCountByExample="false" enableUpdateByExample="false"
  56. enableDeleteByExample="false" enableSelectByExample="false"
  57. selectByExampleQueryId="false">
  58. </table>
  59. </context>
  60. </generatorConfiguration>

也就是

  1. <!--通用mapper代码生成-->
  2. <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
  3. <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
  4. <property name="caseSensitive" value="true"/>
  5. <property name="forceAnnotation" value="true"/>
  6. <property name="beginningDelimiter" value="`"/>
  7. <property name="endingDelimiter" value="`"/>
  8. </plugin>

这段代码将通用mapper的插件引入

生成后的文件展示
对象

  1. package com.huangxin.order.model;
  2. import javax.persistence.*;
  3. @Table(name = "`user`")
  4. public class User {
  5. @Id
  6. @Column(name = "`id`")
  7. private Integer id;
  8. @Column(name = "`user_name`")
  9. private String userName;
  10. @Column(name = "`user_telephone`")
  11. private String userTelephone;
  12. @Column(name = "`user_sex`")
  13. private String userSex;
  14. /**
  15. * @return id
  16. */
  17. public Integer getId() {
  18. return id;
  19. }
  20. /**
  21. * @param id
  22. */
  23. public void setId(Integer id) {
  24. this.id = id;
  25. }
  26. /**
  27. * @return user_name
  28. */
  29. public String getUserName() {
  30. return userName;
  31. }
  32. /**
  33. * @param userName
  34. */
  35. public void setUserName(String userName) {
  36. this.userName = userName;
  37. }
  38. /**
  39. * @return user_telephone
  40. */
  41. public String getUserTelephone() {
  42. return userTelephone;
  43. }
  44. /**
  45. * @param userTelephone
  46. */
  47. public void setUserTelephone(String userTelephone) {
  48. this.userTelephone = userTelephone;
  49. }
  50. /**
  51. * @return user_sex
  52. */
  53. public String getUserSex() {
  54. return userSex;
  55. }
  56. /**
  57. * @param userSex
  58. */
  59. public void setUserSex(String userSex) {
  60. this.userSex = userSex;
  61. }
  62. }

mapper接口

  1. package com.huangxin.order.mapper;
  2. import com.huangxin.order.model.User;
  3. import tk.mybatis.mapper.common.Mapper;
  4. public interface UserMapper extends Mapper<User> {
  5. }

xml配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.huangxin.order.mapper.ItemMapper">
  4. <resultMap id="BaseResultMap" type="com.huangxin.order.model.Item">
  5. <!--
  6. WARNING - @mbg.generated
  7. -->
  8. <id column="id" jdbcType="INTEGER" property="id" />
  9. <result column="name" jdbcType="VARCHAR" property="name" />
  10. <result column="price" jdbcType="REAL" property="price" />
  11. <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
  12. </resultMap>
  13. <sql id="Base_Column_List">
  14. <!--
  15. WARNING - @mbg.generated
  16. -->
  17. id, name, price, create_time
  18. </sql>
  19. </mapper>

优点

1) 生成的对象信息自动生成注解,清晰展示
2) 生成接口,常用增删改查已经继承父类,只需要写复杂逻辑
3) 生成mapper.xml中不再有简单的sql语句展示,继承的父类已经实现了增删改查,只需要在这里添加复杂逻辑
4) 并且已经在mapper.xml文件中生成相对应的resultMap标签,直接使用即可

Tags: JavaWeb  

评论区

    2024-12-21 23:06:22

    站长

    没有登录功能是为了方便大家留言,但留言接口现在被恶意攻击,将关闭留言接口,如有疑问,请联系我的QQ 1538933906/同微信


文章评论



给自个选个头像吧!






站点信息

  • 建站时间:   2019-01-31
  • 网站程序:   Tomcat+nginx
  • 文章统计:   44篇文章
  • 标签管理:   标签云
  • 微信公众号:  扫描二维码,联系我