java中调用oracle的存储过程

基本步骤:
1.建立一个CallableStatement
2.得到一个CallableStatement的对象
调用过程语法
{call login(?,?,?)}
3.给in参数赋值
proc.setString(1, username);
4.如果是out参数的话,需要绑定类型
proc.registerOutParameter(1,类型)
两种类型
--java.sql.Types.INTEGER
--oracle.jdbc.OracleTypes.INTEGER
5.执行过程
proc.execute();
6.得到out参数

 

public class UserDAOImpl implements UserDAO {

	//connection可以写成属性的原因
	//因为数据库连接在一个项目中只有一个
	//是一个重量级的
	//statement和resutset不能在属性中定义
	private Connection connection;
	
	public UserDAOImpl() {
		// 使用构造器给Connection赋值
		if (connection==null){
			Conn conn =new Conn();
			this.connection=conn.getConn();
		}
	}
	public int login(String username, String password) {
		//定义方法是否执行成功的变量
		int result=0;
		
		
			// 定义一个CallableStatement
			//调用过程的类
			CallableStatement proc =null;
			//得到一个CallableStatement的对象
			try {
			proc=connection.prepareCall("{call login(?,?,?)}");
			
			//给in赋值
			proc.setString(1, username);
			proc.setString(2, password);
			
			//如果是out参数的话,需要绑定类型
			proc.registerOutParameter(3, oracle.jdbc.OracleTypes.INTEGER);
			
			//执行过程
			proc.execute();
			//得到out参数
			result=proc.getInt(3);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			//关闭连接
			try {
				proc.close();
				connection.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		
		return result;
	}

	public int modify(String password, int userid) {
		// TODO Auto-generated method stub
		return 0;
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值