2019独角兽企业重金招聘Python工程师标准>>>

package mysql.tool;import java.util.List;import mysql.model.LoanTransferDto;public class MapperUtils {public static String genBaseResultMap(Class<?> clazz){List<String> fieldList = BeanUtil.getBeanPropertyList(clazz);StringBuffer sb = new StringBuffer();sb.append("<resultMap id=\"BaseResultMap\" type=\""+clazz.getSimpleName().toUpperCase()+"\">\r\n");int index = 0;for (String fields : fieldList) {String[] fieldArr = fields.split("`");String columnStr = toColumn(fieldArr[1]);if(index==0){sb.append("  <id column=\""+columnStr+"\" jdbcType=\"BIGINT\" property=\""+fieldArr[1]+"\" />\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("  <result column=\""+columnStr+"\" jdbcType=\""+jdbcType.toUpperCase()+"\" property=\""+fieldArr[1]+"\" />\r\n");}index++;}sb.append("</resultMap>\r\n");return sb.toString();}//生成删除语句public static String genDeleteMap(String tableNamePreFix,Class<?> clazz){List<String> fieldList = BeanUtil.getBeanPropertyList(clazz);String tableName =(tableNamePreFix+toColumn(clazz.getSimpleName())).toUpperCase();StringBuffer sb = new StringBuffer();sb.append("<delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\r\n");sb.append("   delete from "+tableName+"  where id = #{id,jdbcType=BIGINT}\r\n");sb.append("</delete>\r\n");return sb.toString();}//生成插入语句public static String genInsertMap(String tableNamePreFix,Class<?> clazz){List<String> fieldList = BeanUtil.getBeanPropertyList(clazz);String tableName =(tableNamePreFix+toColumn(clazz.getSimpleName())).toUpperCase();StringBuffer sb = new StringBuffer();sb.append("<insert id=\"insert\" parameterType=\""+clazz.getSimpleName().toUpperCase()+"\">\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("</insert>\r\n");return sb.toString();}//生成更新语句public static String genUpdateMap(String tableNamePreFix,Class<?> clazz){List<String> fieldList = BeanUtil.getBeanPropertyList(clazz);String tableName =(tableNamePreFix+toColumn(clazz.getSimpleName())).toUpperCase();StringBuffer sb = new StringBuffer();sb.append("<update id=\"updateByPrimaryKey\" parameterType=\""+clazz.getSimpleName().toUpperCase()+"\">\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("</update>\r\n");return sb.toString();}//生成更新语句public static String genSelectByIdMap(String tableNamePreFix,Class<?> clazz){List<String> fieldList = BeanUtil.getBeanPropertyList(clazz);String tableName =(tableNamePreFix+toColumn(clazz.getSimpleName())).toUpperCase();StringBuffer sb = new StringBuffer();sb.append("<select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\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("  select "+columnAppend.toString()+" from "+tableName+" ");sb.append("  where "+toColumn(idFields)+" = #{"+idFields+",jdbcType=BIGINT}\r\n");sb.append("</select>\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

通过javaBean反射转换成mybatis映射文件相关推荐

  1. MyBatis映射文件(一)

    目录 一.MyBatis映射文件 1.insert.update.delete元素 2.主键生成方式 3.参数(Parameters)传递 (1)单个参数 (2)多个参数 (3)命名参数 (4)POJ ...

  2. Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项

    Mybatis映射文件SQL语句模糊查询 1. "%"#{value}"%" 在参数中不需要添加 %_ 推荐使用 2. '%${value}%' 在参数中不需要 ...

  3. 【引用】SolidWorks工程图转换成AutoCAD DWG文件后字体不变

    SolidWorks工程图转换成AutoCAD DWG文件后字体不变 2007-06-17 08:16 输入 DXF/DWG 工程图文件时,SolidWorks 可准确显示 AutoCAD 字体,即使 ...

  4. 3 了解MyBatis映射文件

    3.1 认识映射文件: 介绍:     MyBatis的映射文件主要用于定义业务操作命令,实现对象与数据表字段的映射,并控制对最终结果的封装.MyBatis是针对SQL构建,相对具有相同功能的JDBC ...

  5. Mybatis映射文件!CDATA[[]] 转义问题

    有没有觉得在mybatis映射文件写>(大于),<(小于)的时候贼麻烦,还得把"<",">"换位为"<", & ...

  6. python html转word文档_Python实现将HTML转换成doc格式文件的方法示例

    本文实例讲述了Python实现将HTML转换成doc格式文件的方法.分享给大家供大家参考,具体如下: 网页上的一些文章,因为有格式的原因,它们在网页上的源码都是带有html标签的,用css来进行描述. ...

  7. pdf英文转换成html网页,PDF文件转换成html网页文件小方法

    原标题:PDF文件转换成html网页文件小方法 现在不知道大家知不知道小学已经开设编程课程了.我记得我们小时候连上个微机课都是一种奢望,所以现在的孩纸还是很享福的呀.但是很多的小白估计听着代码.编程这 ...

  8. Python 将MP3音频文件转换成MIDI乐谱文件

    Python 将MP3音频文件转换成MIDI乐谱文件 spleeter 1.系统环境 我的Python环境 安装spleeter pip install spleeter 查看spleeter是否安装 ...

  9. MyBatis映射文件如何给数据库的int类型字段“插入”string类型记录

    MyBatis映射文件如何给数据库的int类型字段"插入"string类型记录. 数据库中对应字段名称和类型如下: 给数据库的int类型字段"插入"string ...

  10. 多张图片转换成一个swf文件播放

    多张图片转换成一个swf文件播放

最新文章

  1. Android之给图片添加涂鸦(文字)
  2. ActiveMQ结合Spring收发消息
  3. ionic android 本地存储,ionic2/3本地数据存储storage
  4. Maximum sum(poj 2479)
  5. Python:创建列表,其中包含数字1-1000000,为什么Pycharm控制台结果显示不完整?
  6. sql中如何统计各种零件的总数量_数据蒋堂 | SQL是描述性语言?
  7. 使用mybaits遇见有大写的sql语句错误的bug分析
  8. antd tree节点添加删除按钮_MySQL索引原理及BTree(B/+Tree)结构详解
  9. github第一步之初始化操作
  10. Python 快速设置 Excel 表格边框
  11. Adobe PhotoShop V8.0
  12. Thinkpad 笔记本 装win7 64 位操作系统热键驱动装不上问题解决!
  13. java 集合之HashMap 源码阅读记录
  14. 大数据破危险品物流难题 危化品污染有望“圈治”
  15. Q_01_04 量子比特
  16. Java逐行读取fasta文件
  17. 王者荣耀静态页面头部代码设计(2)
  18. 关于大数据后端粉丝交流群
  19. 互联网日报 | 蔚来首款旗舰轿车1月9日发布;抖音电商开启首届抢新年货节;2020年快递业务量达830亿件...
  20. 手摸手教会你三次握手和四次挥手

热门文章

  1. Oracle系列--基础理论
  2. C++/C学习笔记(二)
  3. 如何获取一个需要登录页面的HTML代码
  4. SSAS事实表和维度表数据类型必须一致
  5. sqli-labs(19)
  6. *P1108 低价购买 dp
  7. Linux系统(X64)7 安装Oracle11g完整安装图文教程另附基本操作
  8. Python入门学习笔记05(内置函数)
  9. 常见网络协议端口号整理
  10. 123 Python程序中的线程操作-协程