存儲過程
存儲過程(stored procedure)是一組為了完成特定功能的SQL語句集合,經編譯后存儲在服務器端的數據庫中,利用存儲過程可以加速SQL語句的執行。
存儲過程既可以有參數有返回值,且有多個返回值。但是它與函數不同,存儲過程的返回值只是指明執行是否成功,且不能像函數那樣被直接調用,只能利用 execute 來執行存儲過程。
創建儲存過程
無參數,無返回值
- --創建名為 PERSON_PROC 的無參數、無返回值的存儲過程
- create procedure PERSON_PROC
- as
- begin
- --往person表插入一條數據
- insert into person(name) values ('chenjy')
- end
- --執行存儲過程
- execute PERSON_PROC
有參數,有返回值
- --創建名為 PERSON_PROC2 的有輸入參數、有返回值的存儲過程
- create procedure PERSON_PROC2
- @Name nvarchar(10)='chenjy' --設置默認值
- as
- begin
- insert into person(name) values (@Name)
- select * from person
- end
- --執行名為 PERSON_PROC2 的有輸入參數的存儲過程
- execute PERSON_PROC2 'chenmm'
JFinal調用
新建實現ICallback的類
- import java.sql.CallableStatement;
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.List;
- import com.jfinal.plugin.activerecord.DbKit;
- import com.jfinal.plugin.activerecord.ICallback;
- import com.jfinal.plugin.activerecord.Record;
- import com.jfinal.plugin.activerecord.RecordBuilder;
- public class TestCallBack implements ICallback {
- public String name = "chenjy";
- public ResultSet rs = null;
- CallableStatement proc = null;
- public List<Record> result = null;
- @Override
- public Object call(Connection conn) throws SQLException {
- try {
- // 調用存儲過程 PERSON_PROC2
- proc = conn.prepareCall("{call dbo.PERSON_PROC2(?)}");
- // 輸入參數name
- proc.setString(1, name);
- rs = proc.executeQuery();
- // 返回值
- result = RecordBuilder.build(DbKit.getConfig(), rs);
- proc.close();
- } catch (SQLException e) {
- System.out.println(e.toString());
- }
- return result;
- }
- }
調用
- TestCallBack cb = new TestCallBack();
- // 輸入參數 name=chenjynew
- cb.name = "chenjynew";
- Db.execute(cb);
- // 打印返回值
- System.out.print(cb.result.toString());
調用成功添加了一條chenjynew并檢索出所有的數據
以上就是JFinal 調用存儲過程的步驟的詳細內容,更多關于JFinal 調用存儲過程的資料請關注服務器之家其它相關文章!
原文鏈接:https://www.cnblogs.com/chenjy1225/p/12105971.html