app开发者平台在数字化时代的重要性与发展趋势解析
809
2023-02-06
JFinal 调用存储过程的步骤
存储过程
存储过程(stored procedure)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行。
存储过程既可以有参数有返回值,且有多个返回值。但是它与函数不同,存储过程的返回值只是指明执行是否成功,且不能像函数那样被直接调用,只能利用 execute 来执行存储过程。
创建储存过程
无参数,无返回值
--GZeGLzX创建名为 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
@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 = RecordBuildehttp://r.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 调用存储过程的资料请关注我们其它相关文章!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~