zoukankan      html  css  js  c++  java
  • eclipse中利用Maven逆向工程生成PO类以及mapper(mybatis)

    在pom.xml的project>build里面添加如下代码,让maven环境支持mybatis-generator组件

    1.  
      <pluginManagement>
    2.  
      <plugins>
    3.  
      <plugin>
    4.  
      <groupId>org.mybatis.generator</groupId>
    5.  
      <artifactId>mybatis-generator-maven-plugin</artifactId>
    6.  
      <version>1.3.2</version>
    7.  
      <configuration>
    8.  
      <configurationFile>src/main/resources/generator.xml</configurationFile>
    9.  
      <verbose>true</verbose>
    10.  
      <overwrite>true</overwrite>
    11.  
      </configuration>
    12.  
      <executions>
    13.  
      <execution>
    14.  
      <id>Generate MyBatis Artifacts</id>
    15.  
      <goals>
    16.  
      <goal>generate</goal>
    17.  
      </goals>
    18.  
      </execution>
    19.  
      </executions>
    20.  
      <dependencies>
    21.  
      <dependency>
    22.  
      <groupId>org.mybatis.generator</groupId>
    23.  
      <artifactId>mybatis-generator-core</artifactId>
    24.  
      <version>1.3.2</version>
    25.  
      </dependency>
    26.  
      </dependencies>
    27.  
      </plugin>
    28.  
      <plugin>
    29.  
      <groupId>org.apache.maven.plugins</groupId>
    30.  
      <artifactId>maven-surefire-plugin</artifactId>
    31.  
      <version>2.19.1</version>
    32.  
      <configuration>
    33.  
      <skipTests>true</skipTests>
    34.  
      </configuration>
    35.  
      </plugin>
    36.  
       
    37.  
      <plugin>
    38.  
      <groupId>org.apache.maven.plugins</groupId>
    39.  
      <artifactId>maven-resources-plugin</artifactId>
    40.  
      <version>3.0.1</version>
    41.  
      <configuration>
    42.  
      <encoding>UTF-8</encoding>
    43.  
      </configuration>
    44.  
      </plugin>
    45.  
      </plugins>
    46.  
      </pluginManagement>


    注:如果在dependencies中已经引入mysql-connector-java则不需加入以下dependency,反之加入

    1.  
      <dependency>
    2.  
      <groupId>mysql</groupId>
    3.  
      <artifactId>mysql-connector-java</artifactId>
    4.  
      <version>5.1.35</version>
    5.  
      <scope>runtime</scope>
    6.  
      </dependency>

    2、generator.xml配置文件

    需逆向的表:

    逆向代码生成目录结构:

    对应配置:

    1.  
      <?xml version="1.0" encoding="UTF-8"?>
    2.  
      <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
    3.  
      <generatorConfiguration>
    4.  
      <!-- 数据库驱动包位置 -->
    5.  
      <classPathEntry
    6.  
      location="E:apache-maven-3.3.9 epomysqlmysql-connector-java5.1.18mysql-connector-java-5.1.18.jar" />
    7.  
      <context id="Tables" targetRuntime="MyBatis3">
    8.  
      <commentGenerator>
    9.  
      <!-- 是否去除自动生成的注释 true:是 : false:否 -->
    10.  
      <property name="suppressAllComments" value="true" />
    11.  
      </commentGenerator>
    12.  
      <!-- 数据库链接URL、用户名、密码 -->
    13.  
      <jdbcConnection driverClass="com.mysql.jdbc.Driver"
    14.  
      connectionURL="jdbc:mysql://192.168.100.52:3306/dev_test" userId="数据库用户名"
    15.  
      password="数据库密码">
    16.  
      <!--<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@localhost:1521:orcl"
    17.  
      userId="msa" password="msa"> -->
    18.  
      </jdbcConnection>
    19.  
      <javaTypeResolver>
    20.  
      <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer, 为 true时把JDBC DECIMAL和NUMERIC类型解析为java.math.BigDecimal -->
    21.  
      <property name="forceBigDecimals" value="true" />
    22.  
      </javaTypeResolver>
    23.  
      <!-- 生成实体类的包名和位置,这里配置将生成的实体类放在com.loan.test.entity这个包下 -->
    24.  
      <javaModelGenerator targetPackage="com.loan.test.entity"
    25.  
      targetProject=".srcmainjava">
    26.  
      <!-- enableSubPackages:是否让schema作为包的后缀 -->
    27.  
      <property name="enableSubPackages" value="true" />
    28.  
      <!-- 从数据库返回的值被清理前后的空格 -->
    29.  
      <property name="trimStrings" value="true" />
    30.  
      </javaModelGenerator>
    31.  
      <!-- 生成的SQL映射文件包名和位置,这里配置将生成的SQL映射文件放在com.loan.test.dao.xml这个包下 -->
    32.  
      <sqlMapGenerator targetPackage="com.loan.test.dao.xml"
    33.  
      targetProject=".srcmainjava">
    34.  
      <!-- enableSubPackages:是否让schema作为包的后缀 -->
    35.  
      <property name="enableSubPackages" value="true" />
    36.  
      </sqlMapGenerator>
    37.  
      <!-- 生成DAO的包名和位置,这里配置将生成的dao类放在com.loan.test.dao.mapper这个包下 -->
    38.  
      <javaClientGenerator type="XMLMAPPER"
    39.  
      targetPackage="com.loan.test.dao.mapper" targetProject=".srcmainjava">
    40.  
      <!-- enableSubPackages:是否让schema作为包的后缀 -->
    41.  
      <property name="enableSubPackages" value="true" />
    42.  
      </javaClientGenerator>
    43.  
      <!-- 要生成那些表(更改tableName和domainObjectName就可以) -->
    44.  
      <table tableName="test" domainObjectName="Test"
    45.  
      enableCountByExample="false" enableUpdateByExample="false"
    46.  
      enableDeleteByExample="false" enableSelectByExample="false"
    47.  
      selectByExampleQueryId="false" />
    48.  
      </context>
    49.  
      </generatorConfiguration>

    3、运用maven指令生成逆向工程

    项目右键->run as->maven build...,Goals:中输入mybatis-generator:generate

    .

    4、刷新项目,结果

    1)Test.java

    1.  
      package com.loan.test.entity;
    2.  
       
    3.  
      import java.math.BigDecimal;
    4.  
       
    5.  
      public class Test {
    6.  
      private Integer id;
    7.  
       
    8.  
      private String userName;
    9.  
       
    10.  
      private Integer cardId;
    11.  
       
    12.  
      private BigDecimal moneyAmount;
    13.  
       
    14.  
      public Integer getId() {
    15.  
      return id;
    16.  
      }
    17.  
       
    18.  
      public void setId(Integer id) {
    19.  
      this.id = id;
    20.  
      }
    21.  
       
    22.  
      public String getUserName() {
    23.  
      return userName;
    24.  
      }
    25.  
       
    26.  
      public void setUserName(String userName) {
    27.  
      this.userName = userName == null ? null : userName.trim();
    28.  
      }
    29.  
       
    30.  
      public Integer getCardId() {
    31.  
      return cardId;
    32.  
      }
    33.  
       
    34.  
      public void setCardId(Integer cardId) {
    35.  
      this.cardId = cardId;
    36.  
      }
    37.  
       
    38.  
      public BigDecimal getMoneyAmount() {
    39.  
      return moneyAmount;
    40.  
      }
    41.  
       
    42.  
      public void setMoneyAmount(BigDecimal moneyAmount) {
    43.  
      this.moneyAmount = moneyAmount;
    44.  
      }
    45.  
      }

    2)TestMapper.java

    1.  
      package com.loan.test.dao.mapper;
    2.  
       
    3.  
      import com.loan.test.entity.Test;
    4.  
       
    5.  
      public interface TestMapper {
    6.  
      int deleteByPrimaryKey(Integer id);
    7.  
       
    8.  
      int insert(Test record);
    9.  
       
    10.  
      int insertSelective(Test record);
    11.  
       
    12.  
      Test selectByPrimaryKey(Integer id);
    13.  
       
    14.  
      int updateByPrimaryKeySelective(Test record);
    15.  
       
    16.  
      int updateByPrimaryKey(Test record);
    17.  
      }

    3)TestMapper.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.loan.test.dao.mapper.TestMapper">
    4.  
      <resultMap id="BaseResultMap" type="com.loan.test.entity.Test">
    5.  
      <id column="id" jdbcType="INTEGER" property="id" />
    6.  
      <result column="user_name" jdbcType="VARCHAR" property="userName" />
    7.  
      <result column="card_id" jdbcType="INTEGER" property="cardId" />
    8.  
      <result column="money_amount" jdbcType="DECIMAL" property="moneyAmount" />
    9.  
      </resultMap>
    10.  
      <sql id="Base_Column_List">
    11.  
      id, user_name, card_id, money_amount
    12.  
      </sql>
    13.  
      <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    14.  
      select
    15.  
      <include refid="Base_Column_List" />
    16.  
      from test
    17.  
      where id = #{id,jdbcType=INTEGER}
    18.  
      </select>
    19.  
      <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
    20.  
      delete from test
    21.  
      where id = #{id,jdbcType=INTEGER}
    22.  
      </delete>
    23.  
      <insert id="insert" parameterType="com.loan.test.entity.Test">
    24.  
      insert into test (id, user_name, card_id,
    25.  
      money_amount)
    26.  
      values (#{id,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{cardId,jdbcType=INTEGER},
    27.  
      #{moneyAmount,jdbcType=DECIMAL})
    28.  
      </insert>
    29.  
      <insert id="insertSelective" parameterType="com.loan.test.entity.Test">
    30.  
      insert into test
    31.  
      <trim prefix="(" suffix=")" suffixOverrides=",">
    32.  
      <if test="id != null">
    33.  
      id,
    34.  
      </if>
    35.  
      <if test="userName != null">
    36.  
      user_name,
    37.  
      </if>
    38.  
      <if test="cardId != null">
    39.  
      card_id,
    40.  
      </if>
    41.  
      <if test="moneyAmount != null">
    42.  
      money_amount,
    43.  
      </if>
    44.  
      </trim>
    45.  
      <trim prefix="values (" suffix=")" suffixOverrides=",">
    46.  
      <if test="id != null">
    47.  
      #{id,jdbcType=INTEGER},
    48.  
      </if>
    49.  
      <if test="userName != null">
    50.  
      #{userName,jdbcType=VARCHAR},
    51.  
      </if>
    52.  
      <if test="cardId != null">
    53.  
      #{cardId,jdbcType=INTEGER},
    54.  
      </if>
    55.  
      <if test="moneyAmount != null">
    56.  
      #{moneyAmount,jdbcType=DECIMAL},
    57.  
      </if>
    58.  
      </trim>
    59.  
      </insert>
    60.  
      <update id="updateByPrimaryKeySelective" parameterType="com.loan.test.entity.Test">
    61.  
      update test
    62.  
      <set>
    63.  
      <if test="userName != null">
    64.  
      user_name = #{userName,jdbcType=VARCHAR},
    65.  
      </if>
    66.  
      <if test="cardId != null">
    67.  
      card_id = #{cardId,jdbcType=INTEGER},
    68.  
      </if>
    69.  
      <if test="moneyAmount != null">
    70.  
      money_amount = #{moneyAmount,jdbcType=DECIMAL},
    71.  
      </if>
    72.  
      </set>
    73.  
      where id = #{id,jdbcType=INTEGER}
    74.  
      </update>
    75.  
      <update id="updateByPrimaryKey" parameterType="com.loan.test.entity.Test">
    76.  
      update test
    77.  
      set user_name = #{userName,jdbcType=VARCHAR},
    78.  
      card_id = #{cardId,jdbcType=INTEGER},
    79.  
      money_amount = #{moneyAmount,jdbcType=DECIMAL}
    80.  
      where id = #{id,jdbcType=INTEGER}
    81.  
      </update>
    82.  
      <resultMap id="BaseResultMap" type="com.loan.test.entity.Test">
    83.  
      <id column="id" jdbcType="INTEGER" property="id" />
    84.  
      <result column="user_name" jdbcType="VARCHAR" property="userName" />
    85.  
      <result column="card_id" jdbcType="INTEGER" property="cardId" />
    86.  
      <result column="money_amount" jdbcType="DECIMAL" property="moneyAmount" />
    87.  
      </resultMap>
    88.  
      <sql id="Base_Column_List">
    89.  
      id, user_name, card_id, money_amount
    90.  
      </sql>
    91.  
      <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    92.  
      select
    93.  
      <include refid="Base_Column_List" />
    94.  
      from test
    95.  
      where id = #{id,jdbcType=INTEGER}
    96.  
      </select>
    97.  
      <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
    98.  
      delete from test
    99.  
      where id = #{id,jdbcType=INTEGER}
    100.  
      </delete>
    101.  
      <insert id="insert" parameterType="com.loan.test.entity.Test">
    102.  
      insert into test (id, user_name, card_id,
    103.  
      money_amount)
    104.  
      values (#{id,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{cardId,jdbcType=INTEGER},
    105.  
      #{moneyAmount,jdbcType=DECIMAL})
    106.  
      </insert>
    107.  
      <insert id="insertSelective" parameterType="com.loan.test.entity.Test">
    108.  
      insert into test
    109.  
      <trim prefix="(" suffix=")" suffixOverrides=",">
    110.  
      <if test="id != null">
    111.  
      id,
    112.  
      </if>
    113.  
      <if test="userName != null">
    114.  
      user_name,
    115.  
      </if>
    116.  
      <if test="cardId != null">
    117.  
      card_id,
    118.  
      </if>
    119.  
      <if test="moneyAmount != null">
    120.  
      money_amount,
    121.  
      </if>
    122.  
      </trim>
    123.  
      <trim prefix="values (" suffix=")" suffixOverrides=",">
    124.  
      <if test="id != null">
    125.  
      #{id,jdbcType=INTEGER},
    126.  
      </if>
    127.  
      <if test="userName != null">
    128.  
      #{userName,jdbcType=VARCHAR},
    129.  
      </if>
    130.  
      <if test="cardId != null">
    131.  
      #{cardId,jdbcType=INTEGER},
    132.  
      </if>
    133.  
      <if test="moneyAmount != null">
    134.  
      #{moneyAmount,jdbcType=DECIMAL},
    135.  
      </if>
    136.  
      </trim>
    137.  
      </insert>
    138.  
      <update id="updateByPrimaryKeySelective" parameterType="com.loan.test.entity.Test">
    139.  
      update test
    140.  
      <set>
    141.  
      <if test="userName != null">
    142.  
      user_name = #{userName,jdbcType=VARCHAR},
    143.  
      </if>
    144.  
      <if test="cardId != null">
    145.  
      card_id = #{cardId,jdbcType=INTEGER},
    146.  
      </if>
    147.  
      <if test="moneyAmount != null">
    148.  
      money_amount = #{moneyAmount,jdbcType=DECIMAL},
    149.  
      </if>
    150.  
      </set>
    151.  
      where id = #{id,jdbcType=INTEGER}
    152.  
      </update>
    153.  
      <update id="updateByPrimaryKey" parameterType="com.loan.test.entity.Test">
    154.  
      update test
    155.  
      set user_name = #{userName,jdbcType=VARCHAR},
    156.  
      card_id = #{cardId,jdbcType=INTEGER},
    157.  
      money_amount = #{moneyAmount,jdbcType=DECIMAL}
    158.  
      where id = #{id,jdbcType=INTEGER}
    159.  
      </update>
    160.  
      </mapper>


    配置完成!!

  • 相关阅读:
    20199124 2019-2020-2《网络攻防实践》第8周作业
    20199124 2019-2020-2《网络攻防实践》第7周作业
    20199124 2019-2020-2《网络攻防实践》第6周作业
    20199124 2019-2020-2 《网络攻防实践》-第5周作业
    20199124 2019-2020-2 《网络攻防实践》第4周作业
    20199124 2019-2020-2 《网络攻防实践》第3周作业
    20199124 2019-2020-2 《网络攻防实践》第2周作业
    20199124 2019-2020-2 《网络攻防实践》第1周作业
    《网络攻防实践》假期作业
    《构建之法》第一章学习总结
  • 原文地址:https://www.cnblogs.com/shiyueyangne/p/14240964.html
Copyright © 2011-2022 走看看