1. 程式人生 > >mybatis呼叫 儲存過程方法簡單demo

mybatis呼叫 儲存過程方法簡單demo

以下是一次簡單 的儲存過程呼叫並且在sql中使用行級鎖,

本例僅為演示,實際操作請儘量使用spring事務進行管理

Mapper介面類

public interface ???Mapper {
	public void getCheckOutLock(CheckOutProduce checkOutProduce);
}

儲存過程

CREATE PROCEDURE get_check_out_lock(IN `receptionId` bigint,OUT `result` int) 
BEGIN
	#Routine body goes here...
	DECLARE record_version int ;
	#開啟事務
	START TRANSACTION;
	#加入排他鎖
	SELECT version from reception where reception_id = receptionId INTO record_version for update;
	#該條記錄未被鎖定
	if(record_version = 0) then 
		set result = 1;
		UPDATE reception SET version = 1 where reception_id = receptionId ;
	else 
		set result = 0;
	end if;
	COMMIT;	
END

mapper.xml檔案寫法
<select id="getCheckOutLock" parameterType="com.kzhotel.pojo.CheckOutProduce"
     statementType="CALLABLE" resultType="com.kzhotel.pojo.CheckOutProduce">
    {call get_check_out_lock (#{receptionId,jdbcType=INTEGER,mode=IN},#{result,jdbcType=INTEGER,mode=OUT})}
  </select>
實體類定義
package com.kzhotel.pojo;

public class CheckOutProduce {
	
	private Long receptionId;
	
	private Integer result;

	public Long getReceptionId() {
		return receptionId;
	}

	public void setReceptionId(Long receptionId) {
		this.receptionId = receptionId;
	}

	public Integer getResult() {
		return result;
	}

	public void setResult(Integer result) {
		this.result = result;
	}
}


相關推薦

mybatis呼叫 儲存過程方法簡單demo

以下是一次簡單 的儲存過程呼叫並且在sql中使用行級鎖, 本例僅為演示,實際操作請儘量使用spring事務進行管理 Mapper介面類 public interface ???Mapper { public void getCheckOutLock(CheckOutPr

調取儲存過程的三個方法,以及用mybatis呼叫儲存過程

調取儲存過程的三個方法: 1.如果是PL/SQL命令視窗就用execute(簡寫:exec )儲存過程名,舉個例子: EXEC procedure;--procedure是儲存過程名 2.如果是PL/SQL視窗就用 begin  儲存過程名  end; begi

藉助一個數據庫表來維護主鍵(mybatis呼叫儲存過程)

###建立主鍵表 CREATE TABLE c_table_key ( table_name varchar(50) NOT NULL COMMENT ‘需要建立主鍵的表名’, last_key bigint(20) NOT NULL COMMENT ‘最後一次使用的主鍵,新的主鍵將在此

mybatis 呼叫儲存過程報錯 org.apache.ibatis.mapping.ParameterMode.IN

“` org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error resolving ParameterMode.

Mybatis 呼叫儲存過程 並返回單/多結果集的情況

 返回單結果集的情況: 引用: https://blog.csdn.net/a9529lty/article/details/24401423 儲存過程示例:  create or replace procedure Fsp_Plan_CheckPrj(v

java中使用mybatis呼叫儲存過程,拿到返回值(單引數返回值)

service業務層呼叫dao層 注意:返回值直接從物件裡獲取 不需要拿物件接收再獲取 dao.uspGetUser(userPO);//物件封裝了儲存過程的入參和出參 count = userPO.getCount(); //count 是儲存過程的返回值 dao層介面 pu

mybatis 呼叫儲存過程

mapper.xml <select id="callPWfSubmit" parameterType="java.util.Map" resultType="java.util.Map" statementType="CALLABLE" > {CA

mybatis 呼叫儲存過程報錯 org.apache.ibatis.mapping.ParameterMode.IN

“` org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error resolving

MyBatis呼叫儲存過程

一、提出需求 查詢得到男性或女性的數量, 如果傳入的是0就女性否則是男性 二、準備資料庫表和儲存過程 create table p_user(           idint primary key auto_increment,           namev

mybatis呼叫儲存過程的例子,含輸入輸出引數

首先定義一個MySQL儲存過程: DROP PROCEDURE  IF  EXISTS test ; CREATE PROCEDURE test (IN p1  VARCHAR(26), OUT pResult VARCHAR(512)) BEGIN    SET pR

基於mybatis呼叫儲存過程

引數的設定及引數的獲取 HashMap paramMap = new HashMap(); paramMap.put("param1", "a"); paramMap.put("param2

mybatis呼叫儲存過程,獲取返回的遊標

將呼叫儲存過程引數放入map中,由於返回的遊標中包含很多引數,所以再寫一個resultmap與之對應,型別為hashmap。設定返回的jdbcType=CURSOR,resultMap設定為id對應的值。最後遊標中的值就輸出到list中了。程式碼如下: service層

MyBatis——呼叫儲存過程

原文:http://www.cnblogs.com/xdp-gacl/p/4270352.html 一、提出需求 查詢得到男性或女性的數量, 如果傳入的是0就女性否則是男性 二、準備資料庫表和儲存過程 create table p_user( id int primary key auto_

VC++ ADO呼叫儲存過程方法

一、呼叫基本過程 關於ADO呼叫儲存過程一般是按照以下步驟進行: 1、生成並初始化一個_CommandPtr物件;指定CommandType為儲存過程。 2、生成呼叫儲存過程需要的引數,這些引數都是_

MyBatis呼叫儲存過程返回結果集

儲存過程: create or replace procedure get_result_by_sql(p_sql in varchar2,p_result out sys_refcursor,p_msg out varchar2) is begin

Mybatis呼叫儲存過程出現NullPointerException錯誤

今天在寫程式碼,用MyBatis呼叫Oracle儲存過程,總是丟擲下面的異常。 Caused by: java.lang.NullPointerException   at oracle.jdbc.driver.T4C8Oall.getNumRows(T4C8Oall.ja

Mybatis呼叫儲存過程異常-Non supported SQL92 token at position: 1

最近遇到一個奇怪的異常,使用Mybatis呼叫一個oracle的package時出現一個異常: Mybatis中xxDAO.xml <select id="getxxByUserId" statementType="CALLABLE" parameterType=

mybatis 呼叫儲存過程

要求:查詢得到男性或女性的數量, 如果傳入的是0就女性否則是男性 create table p_user( id int primary key auto_increment, name

MyBatis 呼叫儲存過程(詳解)

專案結構 資料表t_user 建立User package com.po; public class User { private Integer id; private String name; private String sex; private

ireport5呼叫sqlserver2005儲存過程方法

1、儲存過程準備 ALTER PROCEDURE [dbo].[portofolio_definition_get]       @flag INT       AS BEGIN