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

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.CommonDao"> <!--通用删除-->
<delete id="delete" parameterType="map">
DELETE FROM ${tablename} where ${key}=#{value}
</delete> <!--通用更新-->
<update id="update" parameterType="map">
update ${tablename} set
<foreach collection="data.keys" item="key" separator=",">
<if test="null!=data[key]">
${key}=#{data[${key}]}
</if>
</foreach>
where 1=1
<foreach collection="conditions.keys" item="key" separator="and" open="and">
<if test="null!=conditions[key]">
${key}=#{conditions[${key}]}
</if>
</foreach>
</update> <!--查询表字段信息-->
<select id="getTableFieldInfo" parameterType="string" resultType="map">
select COLUMN_NAME,DATA_TYPE from user_tab_cols WHERE TABLE_NAME=#{0} ORDER BY COLUMN_ID
</select> <!--获取表字段-->
<select id="getTableField" parameterType="string" resultType="string">
select COLUMN_NAME from user_tab_cols WHERE TABLE_NAME=#{0} ORDER BY COLUMN_ID
</select> <!--通用插入方法-->
<insert id="insert" parameterType="map">
<selectKey keyProperty="id" resultType="integer" order="BEFORE">
select ${seq}.nextval from dual
</selectKey>
insert into ${tablename}
(id,
<foreach collection="map.keys" item="key" separator=",">
${key}
</foreach>
)
values
(#{id},
<foreach collection="map.values" item="value" separator=",">
#{value}
</foreach>
)
</insert> <!--一个条件的情况下,获取map返回值-->
<select id="getResultMapByCondition" parameterType="map" resultType="map">
select
<foreach collection="fields" item="field" separator=",">
${field}
</foreach>
from ${tablename} where
${con1}=#{val1}
</select> <!--两个条件的情况下,获取map返回值-->
<select id="getResultMapByConditions" parameterType="map" resultType="map">
select
<foreach collection="fields" item="field" separator=",">
${field}
</foreach>
from ${tablename}
where 1=1
<foreach collection="conditions.keys" item="key" separator="and" open="and">
<if test="null!=conditions[key]">
${key}=#{conditions[${key}]}
</if>
</foreach>
</select> <!--查询一个字段,根据多个条件-->
<select id="getResultObjectByConditions" parameterType="map" resultType="object">
select ${field} from ${tablename}
where 1=1
<foreach collection="conditions.keys" item="key" separator="and" open="and">
<if test="null!=conditions[key]">
${key}=#{conditions[${key}]}
</if>
</foreach>
</select> <!--查询一个字段-->
<select id="getResultObjectByCondition" parameterType="map" resultType="object">
select ${field} from ${tablename} where ${con} = #{val}
</select> </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. 【数据库_Mysql】JAVA-数据库Date格式在前台JSP页面的获取

    问题: 数据库保存的为date格式的日期 在前台JSP页面显示的为一串数字1487897     解决办法: 数据库表中字段对应的实体对象属性的get方法上添加一行代码 页面即可正常显示      

  2. OSPF与Vlan间通信综合实验小结与端口隔离

      总结 本实验模拟实际工作环境的网络拓扑结构,至此终于理解了一部分的配置思路: 一.三层交换机连接路由器的端口配置 图中GE0/0/4应该是配置成access类型,这个时候应该是不带vlan标签的. ...

  3. Codeforces Round #362(Div1) D Legen...(AC自动机+矩阵快速幂)

    题目大意: 给定一些开心串,每个串有一个开心值,构造一个串,每包含一次开心串就会获得一个开心值,求最大获得多少开心值. 题解: 首先先建立AC自动机.(建立fail指针的时候,对val要进行累加) 然 ...

  4. Wedding UVA - 11294(2-SAT男女分点)

    题意: 有N-1对夫妻参加一个婚宴,所有人都坐在一个长长的餐桌左侧或者右侧,新郎和新娘面做面坐在桌子的两侧.由于新娘的头饰很复杂,她无法看到和她坐在同一侧餐桌的人,只能看到对面餐桌的人.任意一对夫妻不 ...

  5. StringUtils工具类说明

    /***************************************为空判断***************************************/ //null 和 " ...

  6. RabbitMQ 使用详细介绍

    1. 实现最简单的队列通信 2. producer端 # !/usr/bin/env python import pika #通过这个实例,先去建立一个socket,默认端口15672 connect ...

  7. Hdu1255 覆盖的面积

    覆盖的面积 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  8. UVA11426 GCD - Extreme (II) (欧拉函数/莫比乌斯反演)

    UVA11426 GCD - Extreme (II) 题目描述 PDF 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 10 100 200000 0 输出样例#1: 67 13 ...

  9. 【题解】【LibreOJ Beta Round #5】游戏 LOJ 531 基环树 博弈论

    Prelude 题目链接:萌萌哒传送门♪(^∇^*) Subtask 1 & 2 这是什么鬼题面... 首先要看出,这就是一个基环树博弈. 具体题意:给出一个基环内向树,一个棋子初始在\(1\ ...

  10. discuz 删除垃圾帖子

    有时候如果你的论坛被垃圾帖子占满后,会发现使用后台的删除功能还是有些慢, 我们需要先备份自己需要的帖子,然后进行下面的操作: 具体删除帖子的步骤,就是清空数据库里面的两张数据库表:pre_forum_ ...