基本步骤:
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;
}
}