这里使用简单的身份验证作为例子,传入名字name,密码password作为参数,存储过程名为pro_login,它有两个输入参数和一个输出参数(存储过程是没有返回值的),我们可以通过CallableStatement对象的各个数据类型的set方法进行赋值,而后可以取得输出参数。
**
* 使用存储过程验证身份
*
*/
public boolean pro_valid(String name,int password){
String sql = "{call pro_login(?,?,?)}";
boolean flag = false;
try {
conn();
CallableStatement csmt = conn.prepareCall(sql);
csmt.setInt(1, password);
csmt.setString(2, name);
csmt.registerOutParameter(3,java.sql.Types.VARCHAR);
csmt.executeQuery();
csmt.executeUpdate();
//获取输出参数的值
String x = csmt.getString(3);
System.out.println(x);
if(x.equals("yes")){
flag = true;
}
else if(x.equals("no")){
flag = false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
flag = false;
e.printStackTrace();
}finally{
closeConn();
}
return flag;
}