表名/条件/字段 都可以传入进去

  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="dao.CommonDao">
  4.  
  5. <!--通用删除-->
  6. <delete id="delete" parameterType="map">
  7. DELETE FROM ${tablename} where ${key}=#{value}
  8. </delete>
  9.  
  10. <!--通用更新-->
  11. <update id="update" parameterType="map">
  12. update ${tablename} set
  13. <foreach collection="data.keys" item="key" separator=",">
  14. <if test="null!=data[key]">
  15. ${key}=#{data[${key}]}
  16. </if>
  17. </foreach>
  18. where 1=1
  19. <foreach collection="conditions.keys" item="key" separator="and" open="and">
  20. <if test="null!=conditions[key]">
  21. ${key}=#{conditions[${key}]}
  22. </if>
  23. </foreach>
  24. </update>
  25.  
  26. <!--查询表字段信息-->
  27. <select id="getTableFieldInfo" parameterType="string" resultType="map">
  28. select COLUMN_NAME,DATA_TYPE from user_tab_cols WHERE TABLE_NAME=#{0} ORDER BY COLUMN_ID
  29. </select>
  30.  
  31. <!--获取表字段-->
  32. <select id="getTableField" parameterType="string" resultType="string">
  33. select COLUMN_NAME from user_tab_cols WHERE TABLE_NAME=#{0} ORDER BY COLUMN_ID
  34. </select>
  35.  
  36. <!--通用插入方法-->
  37. <insert id="insert" parameterType="map">
  38. <selectKey keyProperty="id" resultType="integer" order="BEFORE">
  39. select ${seq}.nextval from dual
  40. </selectKey>
  41. insert into ${tablename}
  42. (id,
  43. <foreach collection="map.keys" item="key" separator=",">
  44. ${key}
  45. </foreach>
  46. )
  47. values
  48. (#{id},
  49. <foreach collection="map.values" item="value" separator=",">
  50. #{value}
  51. </foreach>
  52. )
  53. </insert>
  54.  
  55. <!--一个条件的情况下,获取map返回值-->
  56. <select id="getResultMapByCondition" parameterType="map" resultType="map">
  57. select
  58. <foreach collection="fields" item="field" separator=",">
  59. ${field}
  60. </foreach>
  61. from ${tablename} where
  62. ${con1}=#{val1}
  63. </select>
  64.  
  65. <!--两个条件的情况下,获取map返回值-->
  66. <select id="getResultMapByConditions" parameterType="map" resultType="map">
  67. select
  68. <foreach collection="fields" item="field" separator=",">
  69. ${field}
  70. </foreach>
  71. from ${tablename}
  72. where 1=1
  73. <foreach collection="conditions.keys" item="key" separator="and" open="and">
  74. <if test="null!=conditions[key]">
  75. ${key}=#{conditions[${key}]}
  76. </if>
  77. </foreach>
  78. </select>
  79.  
  80. <!--查询一个字段,根据多个条件-->
  81. <select id="getResultObjectByConditions" parameterType="map" resultType="object">
  82. select ${field} from ${tablename}
  83. where 1=1
  84. <foreach collection="conditions.keys" item="key" separator="and" open="and">
  85. <if test="null!=conditions[key]">
  86. ${key}=#{conditions[${key}]}
  87. </if>
  88. </foreach>
  89. </select>
  90.  
  91. <!--查询一个字段-->
  92. <select id="getResultObjectByCondition" parameterType="map" resultType="object">
  93. select ${field} from ${tablename} where ${con} = #{val}
  94. </select>
  95.  
  96. </mapper>

  

Mybatis Common Mapper文件的更多相关文章

  1. MyBatis的Mapper文件的foreach标签详解

    MyBatis的Mapper文件的foreach标签用来迭代用户传递过来的Lise或者Array,让后根据迭代来拼凑或者批量处理数据.如:使用foreach来拼接in子语句. 在学习MyBatis M ...

  2. 逆向工程生成的mybatis中mapper文件。mapper接口,实例化成对象

    逆向工程生成的mybatis中mapper文件中,*mapper文件只是接口,而不是类文件.但是却可以通过spring的容器获得实例. 例如: //1.获得mapper代理对象,从spring容器获得 ...

  3. 自动生成Mybatis的Mapper文件

    自动生成Mybatis的Mapper文件 工作中使用mybatis时我们需要根据数据表字段创建pojo类.mapper文件以及dao类,并且需要配置它们之间的依赖关系,这样的工作很琐碎和重复,myba ...

  4. mybatis写mapper文件注意事项(转)

    原文链接:http://wksandy.iteye.com/blog/1443133 xml中某些特殊符号作为内容信息时需要做转义,否则会对文件的合法性和使用造成影响 < < > & ...

  5. Spring配置扫描mybatis的mapper文件注意:

    一般会将不业务的mapper文件放到不同的包中: spring配置扫描就需要配置下面的方式(两个*): <!-- mybatis文件配置,扫描所有mapper文件 --> <bean ...

  6. mybatis的Mapper文件配置

    一.resultMap resultMap 元素是 MyBatis 中最重要最强大的元素. 该配置节点下如下子节点配置 id – 一个 ID 结果;标记结果作为 ID 可以帮助提高整体效能 const ...

  7. mybatis的mapper文件的大于号特殊符号使用

    第一种方法: 用了转义字符把>和<替换掉,然后就没有问题了. SELECT * FROM test WHERE 1 = 1 AND start_date  <= CURRENT_DA ...

  8. 使用逆向工程生成mybatis的Mapper文件

    之前有写过一篇博客: 使用MyBatis Generator自动生成MyBatis的代码链接:http://www.cnblogs.com/klslb/p/6908535.html 这个太麻烦了,而且 ...

  9. 【坑】解决maven管理SSM中mybatis的mapper文件扫描失败的问题

    文章目录 前言 改进方式来替换原始的使用方式 后记 好久没有写博客了,11月底来到公司实习,上个月写个小demo,趁此回顾下SSM,今天将最近的积累记录下: 前言 在学习 mybatis 的时候,都知 ...

随机推荐

  1. C++解析(17):操作符重载

    0.目录 1.操作符重载 2.完善的复数类 3.小结 1.操作符重载 下面的复数解决方案是否可行? 示例1--原有的解决方案: #include <stdio.h> class Compl ...

  2. C++手动开O2优化

    O2优化能使程序的编译效率大大提升. 从而减少程序的运行时间,达到优化的效果. C++程序中的O2开关如下所示: #pragma GCC optimize(2) 同理O1.O3优化只需修改括号中的数即 ...

  3. Unity3D手游开发日记(6) - 适合移动平台的水深处理

    市面上大部分的手机游戏,水面都比较粗糙,也基本没发现谁做过水深的处理. 水深的处理在PC平台比较容易,因为很容易获得每个像素的深度,比如G-Buffer,有了像素的深度,就能计算出每个像素到水面的距离 ...

  4. Rearrangement inequality

    摘抄自:  https://en.wikipedia.org/wiki/Rearrangement_inequality#Proof In mathematics, the rearrangement ...

  5. [POI2008]MAF-Mafia

    Description 有n个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪.因此,对于不同的开枪顺序,最后死的人也不同. ...

  6. day5-python基础

  7. 【字符串】KMP字符串匹配

    百度百科 Definition \(KMP\)算法是一个字符串匹配算法.他接收两个字符串\(A,B\),返回\(B\)在\(A\)中出现的所有位置. 以下称需要被匹配的串\(A\)为主串,可能在主串中 ...

  8. 【DP】【CF9D】 How many trees?

    传送门 Description 给你两个正整数\(n,h\),求由\(n\)个点组成的高度大于等于\(h\)的二叉树有多少个 Input 一行两个整数\(n,h\) Output 一个整数代表答案. ...

  9. Oracle中rank() over, dense_rank(), row_number() 的区别

    摘自:http://www.linuxidc.com/Linux/2015-04/116349.htm Oracle 中 rank() over, dense_rank(), row_number() ...

  10. 04-树6. Huffman Codes--优先队列(堆)在哈夫曼树与哈夫曼编码上的应用

    题目来源:http://www.patest.cn/contests/mooc-ds/04-%E6%A0%916 In 1953, David A. Huffman published his pap ...