博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过javaBean反射转换成mybatis映射文件
阅读量:6952 次
发布时间:2019-06-27

本文共 8884 字,大约阅读时间需要 29 分钟。

hot3.png

package mysql.tool;import java.util.List;import mysql.model.LoanTransferDto;public class MapperUtils {		public static String genBaseResultMap(Class
clazz){ List
fieldList = BeanUtil.getBeanPropertyList(clazz); StringBuffer sb = new StringBuffer(); sb.append("
\r\n"); int index = 0; for (String fields : fieldList) { String[] fieldArr = fields.split("`"); String columnStr = toColumn(fieldArr[1]); if(index==0){ sb.append("
\r\n"); }else{ String jdbcType = "varchar"; if(fieldArr[0].equals("int")||fieldArr[0].equals("Integer")){ jdbcType = "Integer"; }else if(fieldArr[0].equals("long")||fieldArr[0].equals("Long")){ jdbcType = "bigInt"; }else if(fieldArr[0].equals("Date")||fieldArr[1].contains("Time")||fieldArr[1].contains("Date")){ jdbcType = "TIMESTAMP"; } sb.append("
\r\n"); } index++; } sb.append("
\r\n"); return sb.toString(); } //生成删除语句 public static String genDeleteMap(String tableNamePreFix,Class
clazz){ List
fieldList = BeanUtil.getBeanPropertyList(clazz); String tableName =(tableNamePreFix+toColumn(clazz.getSimpleName())).toUpperCase(); StringBuffer sb = new StringBuffer(); sb.append("
\r\n"); sb.append(" delete from "+tableName+" where id = #{id,jdbcType=BIGINT}\r\n"); sb.append("
\r\n"); return sb.toString(); } //生成插入语句 public static String genInsertMap(String tableNamePreFix,Class
clazz){ List
fieldList = BeanUtil.getBeanPropertyList(clazz); String tableName =(tableNamePreFix+toColumn(clazz.getSimpleName())).toUpperCase(); StringBuffer sb = new StringBuffer(); sb.append("
\r\n"); StringBuffer columnAppend = new StringBuffer(); StringBuffer valuesAppend = new StringBuffer(); int index = 0; String idFields = ""; for (String fields : fieldList) { String[] fieldArr = fields.split("`"); if(index>0){ String jdbcType = "varchar"; if(fieldArr[0].equals("int")||fieldArr[0].equals("Integer")){ jdbcType = "Integer"; }else if(fieldArr[0].equals("long")||fieldArr[0].equals("Long")){ jdbcType = "bigInt"; }else if(fieldArr[0].equals("Date")||fieldArr[1].contains("Time")||fieldArr[1].contains("Date")){ jdbcType = "TIMESTAMP"; } columnAppend.append(" "+toColumn(fieldArr[1])+",\r\n"); valuesAppend.append(" #{"+fieldArr[1]+",jdbcType="+jdbcType.toUpperCase()+"},\r\n"); }else{ idFields = fieldArr[1]; } index++; } columnAppend.deleteCharAt(columnAppend.lastIndexOf(",")); valuesAppend.deleteCharAt(valuesAppend.lastIndexOf(",")); sb.append(" insert into "+tableName+"("+columnAppend.toString()+") values("+valuesAppend+")\r\n"); sb.append("
\r\n"); return sb.toString(); } //生成更新语句 public static String genUpdateMap(String tableNamePreFix,Class
clazz){ List
fieldList = BeanUtil.getBeanPropertyList(clazz); String tableName =(tableNamePreFix+toColumn(clazz.getSimpleName())).toUpperCase(); StringBuffer sb = new StringBuffer(); sb.append("
\r\n"); StringBuffer setAppend = new StringBuffer(); sb.append(" update "+tableName+" set\r\n"); int index = 0; String idFields = ""; for (String fields : fieldList) { String[] fieldArr = fields.split("`"); if(index>0){ String jdbcType = "varchar"; if(fieldArr[0].equals("int")||fieldArr[0].equals("Integer")){ jdbcType = "Integer"; }else if(fieldArr[0].equals("long")||fieldArr[0].equals("Long")){ jdbcType = "bigInt"; }else if(fieldArr[0].equals("Date")||fieldArr[1].contains("Time")||fieldArr[1].contains("Date")){ jdbcType = "TIMESTAMP"; } String column = toColumn(fieldArr[1]); setAppend.append(" "+column+" = #{"+fieldArr[1]+",jdbcType="+jdbcType.toUpperCase()+"},\r\n"); }else{ idFields = fieldArr[1]; } index++; } setAppend.deleteCharAt(setAppend.lastIndexOf(",")); sb.append(setAppend.toString()); sb.append(" where "+toColumn(idFields)+" = #{"+idFields+",jdbcType=BIGINT}\r\n"); sb.append("
\r\n"); return sb.toString(); } //生成更新语句 public static String genSelectByIdMap(String tableNamePreFix,Class
clazz){ List
fieldList = BeanUtil.getBeanPropertyList(clazz); String tableName =(tableNamePreFix+toColumn(clazz.getSimpleName())).toUpperCase(); StringBuffer sb = new StringBuffer(); sb.append("
\r\n"); return sb.toString(); } public static String toColumn(String word) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < word.length(); i++) { char c = word.charAt(i); if (Character.isUpperCase(c)) { sb.append("_"+c); }else{ sb.append(c); } } return sb.toString().toLowerCase(); } public static void main(String[] args) { System.out.println(genBaseResultMap(LoanTransferDto.class)); System.out.println(genDeleteMap("JGJ",LoanTransferDto.class)); System.out.println(genInsertMap("JGJ",LoanTransferDto.class)); System.out.println(genUpdateMap("JGJ",LoanTransferDto.class)); System.out.println(genSelectByIdMap("JGJ",LoanTransferDto.class)); //System.out.println(toColumn("loanType")); }}

 

 

生成后的效果:

 

<resultMap id="BaseResultMap" type="LOANTRANSFERDTO">

  <id column="ltid" jdbcType="BIGINT" property="ltid" />
  <result column="mid" jdbcType="BIGINT" property="mid" />
  <result column="loan_no" jdbcType="VARCHAR" property="loanNo" />
  <result column="title" jdbcType="VARCHAR" property="title" />
  <result column="bid_count" jdbcType="BIGINT" property="bidCount" />
  <result column="bid_amount" jdbcType="BIGINT" property="bidAmount" />
  <result column="rate" jdbcType="BIGINT" property="rate" />
  <result column="transfer_amount" jdbcType="BIGINT" property="transferAmount" />
  <result column="loan_cycle" jdbcType="BIGINT" property="loanCycle" />
  <result column="loan_cycle_attr" jdbcType="INTEGER" property="loanCycleAttr" />
  <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
  <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>

 

<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">

   delete from JGJ_LOAN_TRANSFER_DTO  where id = #{id,jdbcType=BIGINT}
</delete>

 

<insert id="insert" parameterType="LOANTRANSFERDTO">

  insert into JGJ_LOAN_TRANSFER_DTO(    mid,
    loan_no,
    title,
    bid_count,
    bid_amount,
    rate,
    transfer_amount,
    loan_cycle,
    loan_cycle_attr,
    update_time,
    create_time
) values(    #{mid,jdbcType=BIGINT},
    #{loanNo,jdbcType=VARCHAR},
    #{title,jdbcType=VARCHAR},
    #{bidCount,jdbcType=BIGINT},
    #{bidAmount,jdbcType=BIGINT},
    #{rate,jdbcType=BIGINT},
    #{transferAmount,jdbcType=BIGINT},
    #{loanCycle,jdbcType=BIGINT},
    #{loanCycleAttr,jdbcType=INTEGER},
    #{updateTime,jdbcType=TIMESTAMP},
    #{createTime,jdbcType=TIMESTAMP}
)
</insert>

 

<update id="updateByPrimaryKey" parameterType="LOANTRANSFERDTO">

  update JGJ_LOAN_TRANSFER_DTO set
    mid = #{mid,jdbcType=BIGINT},
    loan_no = #{loanNo,jdbcType=VARCHAR},
    title = #{title,jdbcType=VARCHAR},
    bid_count = #{bidCount,jdbcType=BIGINT},
    bid_amount = #{bidAmount,jdbcType=BIGINT},
    rate = #{rate,jdbcType=BIGINT},
    transfer_amount = #{transferAmount,jdbcType=BIGINT},
    loan_cycle = #{loanCycle,jdbcType=BIGINT},
    loan_cycle_attr = #{loanCycleAttr,jdbcType=INTEGER},
    update_time = #{updateTime,jdbcType=TIMESTAMP},
    create_time = #{createTime,jdbcType=TIMESTAMP}
  where ltid = #{ltid,jdbcType=BIGINT}
</update>

 

<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">

  select     mid,
    loan_no,
    title,
    bid_count,
    bid_amount,
    rate,
    transfer_amount,
    loan_cycle,
    loan_cycle_attr,
    update_time,
    create_time
 from JGJ_LOAN_TRANSFER_DTO   where ltid = #{ltid,jdbcType=BIGINT}
</select>

 

转载于:https://my.oschina.net/lushuifa/blog/1545947

你可能感兴趣的文章
软件工程阅读作业2
查看>>
startup的过程和启动代码
查看>>
字典dic内部常用功能和使用方法-课堂笔记及课后总结
查看>>
include,require,include_once,require_once 的作用和区别
查看>>
android 学习随笔一(配置调试与基础)
查看>>
20160406javaweb 之JDBC简单案例
查看>>
Thinkphp 表单验证
查看>>
tango with django(第二章 准备工作)
查看>>
(四)mybatis之mybatis初了解
查看>>
POSTMAN list参数传值
查看>>
vue的双向数据绑定原理
查看>>
python中引号中有双引号
查看>>
PyQt5 qt desinger
查看>>
python
查看>>
scala学习心得(2)
查看>>
Android 实现类似微信客户端朋友圈更新提示的小红点&栏目订阅
查看>>
HeadFirst Jsp 09 (JSTL)
查看>>
四 Python基础
查看>>
python2.7导入mysqldb
查看>>
LeetCode 263-Ugly Number
查看>>