JFinal呼叫Mysql儲存過程方法
1.首先要清楚JFinal提供了Db+Record的模式,而其中有一個方法是這樣的Db.execute(ICallback),。
2.ICallback是JFinal提供的呼叫儲存過程的介面,介面中提供了run方法,用來實現儲存過程的呼叫。
簡單描述程式碼過程
(1)我在service類中寫了一個內部類來實現ICallback介面,並寫了一個方法呼叫內部類。
(2)我寫的borrow為mysql的儲存過程名,其中有兩個引數,兩個返回值
(3)reason,result為返回值。
(4).引用包應該如下,注意是java.sql.CallableStatement和java.sql.Connection
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.DbKit;
import com.jfinal.plugin.activerecord.ICallback;
(5)示例程式碼如下:
public class BorrowService{ //內部類開始 class BorrowDbPro implements ICallback { public String oid = null; public String reader_id=null; int result; public String reason="資料庫意外,請重試"; public void run(Connection conn) throws SQLException { CallableStatement proc = null; try { proc = (CallableStatement) conn.prepareCall("{ call borrow(?,?,?,?) }"); // borrow為mysql的儲存過程名,其中有兩個引數,兩個返回值 proc.setString(1, oid);//設定引數值 proc.setString(2, reader_id); proc.registerOutParameter(3, java.sql.Types.INTEGER);//設定返回值型別 proc.registerOutParameter(4, java.sql.Types.VARCHAR); proc.execute(); result = proc.getInt(3);//得到返回值 reason=proc.getString(4); }catch(Exception e){ e.printStackTrace(); } finally { DbKit.close(proc, conn); } } } //內部類結束 //呼叫內部類方法 public void trackresult(String reader_id){//可以加引數 BorrowDbPro borrowDbPro =new BorrowDbPro(); borrowDbPro.reader_id=reader_id; Db.execute(borrowDbPro); String reason=borrowDbPro.reason; } }
相關推薦
JFinal呼叫Mysql儲存過程方法
1.首先要清楚JFinal提供了Db+Record的模式,而其中有一個方法是這樣的Db.execute(ICallback),。 2.ICallback是JFinal提供的呼叫儲存過程的介面,介面中提供了run方法,用來實現儲存過程的呼叫。 簡單描述程式碼過程 (1)我在s
spring data jpa 如何呼叫mysql儲存過程?
A:首先定義儲存過程依賴的jpa表: @Entity @Table(name="evenmngt_childthingtree_tmp")//資料庫中的表名 @Name
jdbc呼叫mysql儲存過程
public static void updateMtBeginTimeIsSix() { Connection connection = null; CallableStatement cs = null; try { connection = DataSource.getI
ireport5呼叫sqlserver2005儲存過程方法
1、儲存過程準備 ALTER PROCEDURE [dbo].[portofolio_definition_get] @flag INT AS BEGIN
mybaties呼叫mysql儲存過程。儲存過程返回多個select結果集。
先看需求,直接上圖 從圖中看出,需要12條普通的SELECT語句,所以就放到儲存過程中 儲存過程如下: DROP PROCEDURE IF EXISTS proc_report; DELIMITER $ CREATE PROCEDURE proc_report( OUT d_norma
使用JDBC呼叫mysql儲存過程
多敲幾次java連線mysql,多操作一些簡單的例項,多看大神們的部落格很快就能掌握好java對資料庫的操作了。 程式碼: public static void procedure() throws ClassNotFoundException, SQLException{
python 呼叫mysql儲存過程返回結果集
儲存過程: delimiter | create procedure get_product_info(in imid int(10),int iuser varchar(20)) begin select * from tb_test where mid = i
【Java】如何呼叫MySQL儲存過程
Java呼叫MySQL的儲存過程,需要用JDBC連線,環境eclipse 首先檢視MySQL中的資料庫的儲存過程,接著編寫程式碼呼叫 mysql> show procedure status; +------+-------------+-----------+-
ssm框架呼叫mysql儲存過程
1.建表 /* Navicat MySQL Data Transfer Source Server : localMysql Source Server Version : 50628 Source Host : 127.0.0.1:
shell 指令碼呼叫mysql儲存過程
#!/bin/sh ## The function of the script is used to balance statistics,we get ## data from the table accseqs,after the analysis and cal
c / c + + 呼叫mysql儲存過程
E文好的請檢視原文,菜鳥級翻譯,歡迎批評指正! mysql5.0支援儲存過程後,現在mysql6.0Alpha 版本也是可用的。6.0不僅支援大型資料庫(如 oracle和如此的大多數功能(如儲存過程、檢視、觸發器、作業等,並修復了這些功能存在的bug,6.0.1 版
mybatis呼叫mysql儲存過程返回結果集
儲存過程中經常需要返回結果集。Mysql中直接用select即可返回結果集。而oracle則需要使用遊標來返回結果集。這一點Mysql相對比較方便,如下程式碼即可實現輸出結果集: 儲存過程定義: D
Spring mvc呼叫mysql儲存過程
mysql> use modbus; Database changed mysql> DELIMITER $ mysql> drop procedure if exists p4; -> create procedure p4() -
jdbc呼叫mysql儲存過程,並獲得結果集合
最近碰到一個需要Java呼叫mysql儲存過程並獲得儲存過程結果集的場景. 儲存過程:spilte_result:分割字串儲存到臨時表,並返回臨時表的結果 資料庫執行結果 sum_interface_traffic_result:統計策略流量 現在使用JdbcTempl
mybatis呼叫mysql儲存過程(返回引數,單結果集,多結果集)
一、接收一個返回值 使用Map接收返回引數,output引數放在傳入的param中 建立表 DROP TABLE IF EXISTS `demo`; CREATE TABLE `demo` ( `id` int(11) NOT NULL AUTO_INCREMEN
MySql儲存過程中傳參和不傳參以及java中呼叫程式碼
資料庫表結構 1.mysql不傳參寫儲存過程 create procedure product() -- product為儲存過程名稱 begin select * from book; end 呼叫此儲存過程為 CALL product
MySQL儲存過程中的3種迴圈,儲存過程的基本語法,ORACLE與MYSQL的儲存過程/函式的使用區別,退出儲存過程方法
學無止境 部落格園 首頁 新隨筆 聯絡 訂閱 管理 隨筆-1968 評論-103 文章-4&
mysql 儲存過程建立及呼叫
返回(查詢users表的條數 + 傳入的數字) CREATE DEFINER=`root`@`localhost` PROCEDURE `getcount`(OUT s INT, IN t INT) BEGIN SET @t = (SELECT COUNT(1) FROM users);
幾種應用程式呼叫Oracle儲存過程的方法
一、Java中呼叫帶Cursor的儲存過程: 儲存過程定義: PROCEDURE GET_CURSOR_RESULT2(CR OUT CURSOR_RESULT) IS BEGIN OPEN CR FOR select t1.id, t
MySQL 儲存過程相互呼叫舉例
create procedure prccharges(in orderno char(6),out shippingCharges float(4,2),out wrapCharges float(4,2)) begin select mshippingc