文档章节

mybatis 各种数据库操作的返回值 转

Jian~
 Jian~
发布于 2015/05/27 13:55
字数 333
阅读 29
收藏 0

insert,返回值是:新插入行的主键(primary key);需要包含<selectKey>语句,才会返回主键,否则返回值为null。 需要注意的是  想取到 id直接通过插入的对象取到   返回的值是受影响的行数
update/delete,返回值是:更新或删除的行数;无需指明resultClass;但如果有约束异常而删除失败,只能去捕捉异常。
queryForObject,返回的是:一个实例对象或null;需要包含<select>语句,并且指明resultMap;
queryForList,返回的是:实例对象的列表;需要包含<select>语句,并且指明resultMap;

<typeAlias alias="UnlockTagInfo" type="com.desktop.common.bean.UnlockTagInfo" />
	<resultMap class="UnlockTagInfo" id="UnlockTagInfoResult">
		<result column="id" property="id" jdbcType="INTEGER" />
		<result column="name" property="name" jdbcType="VARCHAR" />
		<result column="description" property="description" jdbcType="VARCHAR" />
		<result column="priority" property="priority" jdbcType="INTEGER" />
	</resultMap>
	<insert id="insertUnlockTagInfo" parameterClass="map">
		<selectKey resultClass="int" keyProperty="id">
			select
			nextval('desktop_unlock_tag_id_seq') as id
		</selectKey>
		insert into
		desktop_unlock_tag(id,name,description,priority)
		values(#id:INTEGER#,#name:VARCHAR#,#description:VARCHAR#,#priority:INTEGER#)
	</insert>
	<update id="updateUnlockTagInfo" parameterClass="map">
		update
		desktop_unlock_tag
		set modify_time=now(),priority=#priority:INTEGER#,
		name=#name:VARCHAR#,description=#description:VARCHAR#
		where
		id=#id:INTEGER#
	</update>
	<delete id="deleteUnlockTagInfo" parameterClass="int">
		delete from
		desktop_unlock_tag
		where id=#value:INTEGER#
	</delete>
	<select id="countUnlockTagInfo" resultClass="int">
		select count(*)
		from
		desktop_unlock_tag
	</select>
	<sql id="selectUnlockTagInfo">
		select
		id,name,description,priority
		from
		desktop_unlock_tag
	</sql>
	<select id="findUnlockTagInfoById" parameterClass="int"
		resultMap="UnlockTagInfoResult">
		<include refid="selectUnlockTagInfo" />
		where id=#id:INTEGER#
	</select>
	<select id="listUnlockTagInfo" parameterClass="map"
		resultMap="UnlockTagInfoResult">
		<include refid="selectUnlockTagInfo" />
		order by
		modify_time desc limit #size:INTEGER#
		offset #start:INTEGER#
	</select>


本文转载自:http://blog.csdn.net/gaojinshan/article/details/24308313

共有 人打赏支持
Jian~
粉丝 1
博文 48
码字总数 11074
作品 0
苏州
终结篇:MyBatis原理深入解析(三)

11 MyBatis一级缓存实现# 11.1 什么是一级缓存? 为什么使用一级缓存?## 每当我们使用MyBatis开启一次和数据库的会话,MyBatis会创建出一个SqlSession对象表示一次数据库会话。 在对数据库的...

猿码道
2016/08/04
0
0
终结篇:MyBatis原理深入解析(一)

1 引言# 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架。再而论述Mybatis作为一个数据持久层框架本身有待改进之处。 2 JDBC实现查...

猿码道
2016/08/04
0
0
Mybatis3.3.x技术内幕(十四):Mybatis之KeyGenerator

在Mybatis中,执行insert操作时,如果我们希望返回数据库生成的自增主键值,那么就需要使用到KeyGenerator对象。 需要注意的是,KeyGenerator的作用,是返回数据库生成的自增主键值,而不是生...

祖大俊
2016/05/11
890
3
利用st_geometry进行图形叠加分析--结合mybatis

在上一遍利用stgeometry进行图形叠加分析文章的基础上,结合mybatis操作stgeometry,主要简单实现一下三个功能:利用st_geometry两个表之间图形表的叠加分析、WKT与图形表的叠加分析、将WKT...

2016/11/21
146
0
《深入理解mybatis原理》 MyBatis的一级缓存实现详解 及使用注意事项

MyBatis是一个简单,小巧但功能非常强大的ORM开源框架,它的功能强大也体现在它的缓存机制上。MyBatis提供了一级缓存、二级缓存 这两个缓存机制,能够很好地处理和维护缓存,以提高系统的性能...

java梦想家01
2016/01/11
527
1

没有更多内容

加载失败,请刷新页面

加载更多

【解惑】领略Java内部类的“内部”

内部类有两种情况: (1) 在类中定义一个类(私有内部类,静态内部类) (2) 在方法中定义一个类(局部内部类,匿名内部类) 1、私有内部类 —— 在方法之间定义的内部类,非静态 我们首先看看类中...

偶尔诗文
31分钟前
1
0
sqlserver 2008 r2 直接下载地址(百度云)

之前下载的sqlserver2008发现不能附加,就卸载了,重新找到了sqlserver2008R2的百度云资源 卸载sqlserver2008还是有点麻烦,不过就是需要删除注册表中的信息 自己来回卸载了3次终于重装sqlse...

dillonxiao
今天
1
0
[Java]JVM调优总结 -Xms -Xmx -Xmn -Xss

JVM调优总结 -Xms -Xmx -Xmn -Xss 博客分类: Java General JVM应用服务器电信CMS算法 堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可...

morpheusWB
今天
2
0
C++ std::function 和 std::bind

C++11提供了std::function和std::bind两个工具,用于引用可调用对象。这些可调用对象包括 普通函数,Lambda表达式,类的静态成员函数,非静态成员函数以及仿函数等。引用可调用对象,可以用于...

yepanl
今天
4
0
python:可迭代对象的索引

关于 python的range的用法: 注意是[ 开始,结束)的半开区间,不包括结束 http://www.runoob.com/python/python-func-range.html import collectionsfrom collections import Iterable字符串......

Oh_really
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部