這裏使用簡單的身份驗證作爲例子,傳入名字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;
}