给网友朋友们带来一篇JFinal相关的编程文章,网友蒙嘉勋根据主题投稿了本篇教程内容,涉及到JFinal、存储过程、JFinal、调用存储过程、JFinal 调用存储过程相关内容,已被521网友关注,相关难点技巧可以阅读下方的电子资料。
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 调用存储过程的资料请关注码农之家其它相关文章!