文档章节

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

Jian~
 Jian~
发布于 2015/05/27 13:55
字数 333
阅读 29
收藏 0
点赞 0
评论 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
码字总数 11070
作品 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
《深入理解mybatis原理》 MyBatis的一级缓存实现详解 及使用注意事项

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

java梦想家01
2016/01/11
527
1
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大体上的思路就是由一个总的config文件配置全局的信息,比如mysql连接信息等。然后再mapper中指定查询的sql,以及参数和返回值。 在S...

青夜之衫
2017/12/05
0
0
mybatis自增主键配置

mybatis自增主键配置 mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同。基本上经常会遇到的就是 Oracle Sequece 和 MySQL 自增主键,至于其他的手动生成唯一...

李永china
2016/05/20
4
0
MyBatis与MySQL交互

MyBatis是我接触到的第一个框架,下面谈一谈我第一次使用MyBatis时的感悟。 首先是一些准备工作 下载相关的jar包。到GitHub上就行,上面有全面和完整的jar文件 在eclipse上安装MyBatis Gener...

郭璞
2016/04/25
0
0
MyBatis:获取插入记录的自增主键

我们知道MySql中主键可以设成auto_increment,也就是自增主键,每当新增一条记录,主键值自动加1。 在MyBatis中,执行insert,返回值为受影响的语句行数,此操作跟JDBC一致。 但是如果应用中...

kolbe
2015/09/30
3.4K
1
“六神”——技术提高开发效率的一个方案

这个方案并不是我在系统设计方面的最早一次尝试。但它在提高开发效率方面,是效果最为显著的一个方案。 简介 “六神”框架提供了一套简单而通用的、从Web层到数据库操作(增加单个数据、删除...

winters1224
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python以太坊类库web3.py概览

python通过web3.py库与以太坊交互共同入口是web3对象。web3对象提供API接口,python开发应用与以太坊进行交互如钱包创建、支付、转账等连接JSON-RPC服务器进行。 Providers提供者 Providers使...

智能合约
4分钟前
0
0
【Android学习笔记】设置App启动页

先将启动页放到项目资源中,图片一般是1080*1920的jpg。 新建一个activity,如图: 创建成功之后,打开刚刚创建的activity,来进行代码的编写: >>>阅读全文

全部原谅
5分钟前
0
0
什么是React-redux、为什么使用React-redux、怎么使用React-redux

1、什么是React-redux React-redux是用于连接React和Redux的 2、为什么使用React-redux 使用React-redux可以使redux部分代码更简洁更明了,比如组建中需要使用到的数据都在mapStateToProps方...

kimyeongnam
8分钟前
0
0
Spring核心——Stereotype组件与Bean扫描

在注解自动装载中介绍了通过注解(Annotation)自动向Bean中注入其他Bean的方法,本篇将介绍通过注解(Annotation)向容器添加Bean的方法。 Spring的核心容器提供了@Component和@Bean注解来标...

随风溜达的向日葵
8分钟前
0
0
利用世界杯,读懂 Python 装饰器

Python 装饰器是在面试过程高频被问到的问题,装饰器也是一个非常好用的特性, 熟练掌握装饰器会让你的编程思路更加宽广,程序也更加 pythonic。 今天就结合最近的世界杯带大家理解下装饰器。...

猫咪编程
11分钟前
0
0
flink fold example

flink fold例子 import org.apache.flink.api.common.functions.*;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environment.S......

coord
13分钟前
0
0
c++ qt 组播总结

每个人都有不同的认知规律和习惯, 有的人喜欢搞一套严密的大理论, 论述起来滔滔不绝, 不管自己懂不懂, 反正读者/听者是没搞懂。 有的人喜欢从实践出发, 没看到代码, 不运行一下, 不看...

backtrackx
17分钟前
0
0
Sublime text2安装json格式化插件SublimePrettyJson[Windows]

一、下载SublimePrettyJson插件包 https://github.com/dzhibas/SublimePrettyJson 二、将下载的文件解压放到在package目录下面 C:\Users\lucky\AppData\Roaming\Sublime Text 3\Packages 每个......

lazy~
17分钟前
0
0
安装vue-cli 报4058错误

1. 4058是网络代理错误。 安装淘宝源修改一下就可以了: npm --registry https://registry.npm.taobao.org info underscore 改为cnpm执行: cnpm install --global vue-cli 安装成功: 试试版...

MrBoyce
18分钟前
0
0
CPU飙升分析

1、top -----看具体的进程 2、top -H -p pid ------该进程的线程 3、printf 0x%x 15248 ------将线程改为16进制 4、jstack 进程...

北极之北
21分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部