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++解析(18):C++标准库与字符串类
0.目录 1.C++标准库 2.字符串类 3.数组操作符的重载 4.小结 1.C++标准库 有趣的重载--操作符 << 的原生意义是按位左移,例:1 << 2;,其意义是将整数 ...
- C++解析(4):引用的本质
0.目录 1.引用的意义 2.特殊的引用 3.引用的本质 4.函数返回引用 5.小结 1.引用的意义 引用作为变量別名而存在,因此在一些场合可以代替指针 引用相对于指针来说具有更好的可读性和实用性 注 ...
- 洛谷P1352 没有上司的舞会——树形DP
第一次自己写树形DP的题,发个博客纪念`- 题目来源:P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结 ...
- MD5加密概述
一.Note: 写到这篇文章是工作中实际遇到了,以前都听过不过没有细看.这里简单概述下,原理的话需要看看更专业的介绍了. 二.MD5简介 Message Digest Algorithm MD5(中文 ...
- Xor Sum HDU - 4825(01字典序板题)
#include <iostream> #include <cstdio> #include <sstream> #include <cstring> ...
- Eve-NG-Toolkit
Eve-NG-Toolkit 来源 http://www.emulatedlab.com/archives/694 参考 http://eve-ng.cn/doku.php http://foru ...
- php的自动加载函数spl_autoload_register和__autoload
spl_autoload_register和__autoload是用来自动加载类的,不用每次都require,include这样搞. 先说__autoload的用法, 在同级目录建立2个文件,一个in ...
- 多线程中join方法的含义
1.作用:调用这个方法的时候,主进程会在这里停住,等待该线程进行完毕再继续往下执行. 如:不使用join的情况: <?php class Join extends Thread { public ...
- CSU 多校训练第二场 J Pinemi Puzzles
传送门:http://acm.csu.edu.cn:20080/csuoj/problemset/problem?pid=2279 题意: 代码: #include <set> #incl ...
- jre,jdk,jvm的关系
今天在用maven搭建项目工程的时候出错的原因竟然是因为使用了jre,而非jdk导致报错,这里就搜集了有关这方面的信息: JDK(Java Development Kit)是针对Java开发员的产 ...