Mybatis Common Mapper文件
表名/条件/字段 都可以传入进去
- <?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文件的更多相关文章
- MyBatis的Mapper文件的foreach标签详解
MyBatis的Mapper文件的foreach标签用来迭代用户传递过来的Lise或者Array,让后根据迭代来拼凑或者批量处理数据.如:使用foreach来拼接in子语句. 在学习MyBatis M ...
- 逆向工程生成的mybatis中mapper文件。mapper接口,实例化成对象
逆向工程生成的mybatis中mapper文件中,*mapper文件只是接口,而不是类文件.但是却可以通过spring的容器获得实例. 例如: //1.获得mapper代理对象,从spring容器获得 ...
- 自动生成Mybatis的Mapper文件
自动生成Mybatis的Mapper文件 工作中使用mybatis时我们需要根据数据表字段创建pojo类.mapper文件以及dao类,并且需要配置它们之间的依赖关系,这样的工作很琐碎和重复,myba ...
- mybatis写mapper文件注意事项(转)
原文链接:http://wksandy.iteye.com/blog/1443133 xml中某些特殊符号作为内容信息时需要做转义,否则会对文件的合法性和使用造成影响 < < > & ...
- Spring配置扫描mybatis的mapper文件注意:
一般会将不业务的mapper文件放到不同的包中: spring配置扫描就需要配置下面的方式(两个*): <!-- mybatis文件配置,扫描所有mapper文件 --> <bean ...
- mybatis的Mapper文件配置
一.resultMap resultMap 元素是 MyBatis 中最重要最强大的元素. 该配置节点下如下子节点配置 id – 一个 ID 结果;标记结果作为 ID 可以帮助提高整体效能 const ...
- mybatis的mapper文件的大于号特殊符号使用
第一种方法: 用了转义字符把>和<替换掉,然后就没有问题了. SELECT * FROM test WHERE 1 = 1 AND start_date <= CURRENT_DA ...
- 使用逆向工程生成mybatis的Mapper文件
之前有写过一篇博客: 使用MyBatis Generator自动生成MyBatis的代码链接:http://www.cnblogs.com/klslb/p/6908535.html 这个太麻烦了,而且 ...
- 【坑】解决maven管理SSM中mybatis的mapper文件扫描失败的问题
文章目录 前言 改进方式来替换原始的使用方式 后记 好久没有写博客了,11月底来到公司实习,上个月写个小demo,趁此回顾下SSM,今天将最近的积累记录下: 前言 在学习 mybatis 的时候,都知 ...
随机推荐
- C++解析(17):操作符重载
0.目录 1.操作符重载 2.完善的复数类 3.小结 1.操作符重载 下面的复数解决方案是否可行? 示例1--原有的解决方案: #include <stdio.h> class Compl ...
- C++手动开O2优化
O2优化能使程序的编译效率大大提升. 从而减少程序的运行时间,达到优化的效果. C++程序中的O2开关如下所示: #pragma GCC optimize(2) 同理O1.O3优化只需修改括号中的数即 ...
- Unity3D手游开发日记(6) - 适合移动平台的水深处理
市面上大部分的手机游戏,水面都比较粗糙,也基本没发现谁做过水深的处理. 水深的处理在PC平台比较容易,因为很容易获得每个像素的深度,比如G-Buffer,有了像素的深度,就能计算出每个像素到水面的距离 ...
- Rearrangement inequality
摘抄自: https://en.wikipedia.org/wiki/Rearrangement_inequality#Proof In mathematics, the rearrangement ...
- [POI2008]MAF-Mafia
Description 有n个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪.因此,对于不同的开枪顺序,最后死的人也不同. ...
- day5-python基础
- 【字符串】KMP字符串匹配
百度百科 Definition \(KMP\)算法是一个字符串匹配算法.他接收两个字符串\(A,B\),返回\(B\)在\(A\)中出现的所有位置. 以下称需要被匹配的串\(A\)为主串,可能在主串中 ...
- 【DP】【CF9D】 How many trees?
传送门 Description 给你两个正整数\(n,h\),求由\(n\)个点组成的高度大于等于\(h\)的二叉树有多少个 Input 一行两个整数\(n,h\) Output 一个整数代表答案. ...
- Oracle中rank() over, dense_rank(), row_number() 的区别
摘自:http://www.linuxidc.com/Linux/2015-04/116349.htm Oracle 中 rank() over, dense_rank(), row_number() ...
- 04-树6. Huffman Codes--优先队列(堆)在哈夫曼树与哈夫曼编码上的应用
题目来源:http://www.patest.cn/contests/mooc-ds/04-%E6%A0%916 In 1953, David A. Huffman published his pap ...