调用Oracle SQL函数

Mr.*_*r.Y 3 java oracle jdbc

我是Java和Oracle之间的连接新手,我正在设计一个登录页面.

我试图从JAVA调用Oracle函数.假设在Oracle函数被调用FUNCT_PERSON与2 IN参数:usernamepassword和返回用户ID是一个NUMBER.

FUNCT_PERSON函数内部,我们使用SELECT语句并返回用户ID号(如果找到),否则返回0.

这是我的代码:

String sql = "{ ? = call FUNCT_PERSON(?,?) }";
CallableStatement statement = connection.prepareCall(sql);
statement.setString(2,username);
statement.setString(3,password);
statement.registerOutParameter(1, java.sql.Types.INTEGER);  

Boolean check = statement.execute();   

if (!check) {
 //proceed to another page
} else {
 //Go back to the login page
}
Run Code Online (Sandbox Code Playgroud)

我不知道我在做什么是对的,特别是Boolean check = statement.execute();线路,因为我真的不知道检查是什么.

如果函数返回一个用户ID,这意味着它存在于数据库中,我将继续进入另一个页面.如果没有,那么它将重定向到登录页面.

Lui*_*oza 9

您只需要恢复操作的结果并使用它来验证要执行的操作:

String sql = "{ ? = call FUNCT_PERSON(?,?) }";
CallableStatement statement = connection.prepareCall(sql);
statement.setString(2,username);
statement.setString(3,password);
statement.registerOutParameter(1, java.sql.Types.INTEGER);  

statement.execute();   
//this is the main line
long id = statement.getLong(1);
if (id > 0) {
    //proceed to another page
} else {
    //Go back to the login page
}
Run Code Online (Sandbox Code Playgroud)

基于本教程