亲宝软件园·资讯

展开

JFinal 调用存储过程 JFinal 调用存储过程的步骤

可爱的黑精灵 人气:0
想了解JFinal 调用存储过程的步骤的相关内容吗,可爱的黑精灵在本文为您仔细讲解JFinal 调用存储过程的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:JFinal,存储过程,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并检索出所有的数据

加载全部内容

相关教程
猜你喜欢
用户评论