mybatis 调用存储过程,如何抛出sql异常
2016-06-15 00:00
169 查看
在用mybatis调用数据库的存储过程时,我发现有时即使mybatis失败了,乃至存储过程异常了。mybatis也不会抛出异常,下面是处理这种情况的方法
1. 有如下存储过程( sqlServer 2012)
只要将ERROR_MESSAGE()做为返回值,到时mybatis自动就会抛出异常了
2. mybatis存储过程的调用
1. 有如下存储过程( sqlServer 2012)
USE [WES] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[Pros_CreateMessage] @id varchar(50) = '', @senderId varchar(50) = 'A0000001', @type int AS BEGIN SET NOCOUNT ON; BEGIN TRAN BEGIN TRY --存储过程具体实现代码..... set @result = 1 --如果成功就返回的结果 COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN print(ERROR_MESSAGE()) set @result = ERROR_MESSAGE() --失败就将异常抛出,到时mybatis就会收到 end catch select @result as succeed --正常结束时就返回@result END
只要将ERROR_MESSAGE()做为返回值,到时mybatis自动就会抛出异常了
2. mybatis存储过程的调用
<select id="xxx" resultType="int" parameterType="map" statementType="CALLABLE" flushCache="true"> {call Pros_CreateMessage(#{id,mode=In,jdbcType=VARCHAR},#{senderId,mode=In,jdbcType=VARCHAR})} </select>
相关文章推荐
- mysql 常用配置
- 适用于JFinal的一个SQL Select和SqlExceptSelect的生成器
- plsql/developer 使用技巧
- DAO设计模式之禅[数据库万能查询操作]
- JDBC 数据库连接 创建表格、插入、查询、删除、修改数据 基本操作
- 【JEECG】上传过大图片报错的问题
- 用 MongoDB 取代 RabbitMQ
- mysql 横向查询表结构
- mysql 查询更新表内容
- redis 安装
- Oracle ASMM vs MSMM
- Redis各种数据类型操作
- MySQL 索引原理及慢查询优化
- mysql5.7版本windows的安装
- oracle patition 分区和索引
- oracle子接点与父节点上下级关系数据库查询语句,及联查询,
- postgresql jdbc 了解postgresql数据库对jdbc的参数设置
- ORACLE 笔记
- mysql常用基础操作语法(三)~~对数据的增删改操作【命令行模式】
- 卸载oracle11g client