怎么在JFinal中调用存储过程

2023-05-19

本篇文章为大家展示了怎么在JFinal中调用存储过程,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创建储存过程

无参数,无返回值

--创建名为 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中调用存储过程.doc》

下载本文的Word格式文档,以方便收藏与打印。