JFinal 调用存储过程的步骤

时间:2021-10-10 02:27:09

存储过程

存储过程(stored procedure)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行。
存储过程既可以有参数有返回值,且有多个返回值。但是它与函数不同,存储过程的返回值只是指明执行是否成功,且不能像函数那样被直接调用,只能利用 execute 来执行存储过程。

创建储存过程

无参数,无返回值

  1. --创建名为 PERSON_PROC 的无参数、无返回值的存储过程
  2. create procedure PERSON_PROC
  3. as
  4. begin
  5. --往person表插入一条数据
  6. insert into person(name) values ('chenjy')
  7. end
  8.  
  9. --执行存储过程
  10. execute PERSON_PROC

JFinal 调用存储过程的步骤

有参数,有返回值

  1. --创建名为 PERSON_PROC2 的有输入参数、有返回值的存储过程
  2. create procedure PERSON_PROC2
  3. @Name nvarchar(10)='chenjy' --设置默认值
  4. as
  5. begin
  6. insert into person(name) values (@Name)
  7.  
  8. select * from person
  9.  
  10. end
  11.  
  12. --执行名为 PERSON_PROC2 的有输入参数的存储过程
  13. execute PERSON_PROC2 'chenmm'

JFinal 调用存储过程的步骤

JFinal调用

新建实现ICallback的类

  1. import java.sql.CallableStatement;
  2. import java.sql.Connection;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.util.List;
  6.  
  7. import com.jfinal.plugin.activerecord.DbKit;
  8. import com.jfinal.plugin.activerecord.ICallback;
  9. import com.jfinal.plugin.activerecord.Record;
  10. import com.jfinal.plugin.activerecord.RecordBuilder;
  11.  
  12. public class TestCallBack implements ICallback {
  13. public String name = "chenjy";
  14.  
  15. public ResultSet rs = null;
  16. CallableStatement proc = null;
  17. public List<Record> result = null;
  18.  
  19. @Override
  20. public Object call(Connection conn) throws SQLException {
  21. try {
  22. // 调用存储过程 PERSON_PROC2
  23. proc = conn.prepareCall("{call dbo.PERSON_PROC2(?)}");
  24. // 输入参数name
  25. proc.setString(1, name);
  26. rs = proc.executeQuery();
  27. // 返回值
  28. result = RecordBuilder.build(DbKit.getConfig(), rs);
  29. proc.close();
  30. } catch (SQLException e) {
  31. System.out.println(e.toString());
  32. }
  33. return result;
  34. }
  35.  
  36. }

调用

  1. TestCallBack cb = new TestCallBack();
  2. // 输入参数 name=chenjynew
  3. cb.name = "chenjynew";
  4. Db.execute(cb);
  5. // 打印返回值
  6. System.out.print(cb.result.toString());

调用成功添加了一条chenjynew并检索出所有的数据

JFinal 调用存储过程的步骤

以上就是JFinal 调用存储过程的步骤的详细内容,更多关于JFinal 调用存储过程的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/chenjy1225/p/12105971.html