JFinal 調用存儲過程的步驟
存儲過程
存儲過程(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 調用存儲過程的資料請關註WalkonNet其它相關文章!