oraclejavaadf中的验证

oraclejavaadf中的验证,java,oracle,oracle-adf,Java,Oracle,Oracle Adf,1.9.0 i如何在java中执行此键下一个触发器验证 我知道这是什么,但用java adf protected PreparedStatement createStatementADF(String query) { PreparedStatement statement=null; try { /*create transaction for current statemtnt*/ DBTransaction dbTr

1.9.0 i如何在java中执行此键下一个触发器验证

我知道这是什么,但用java adf

protected PreparedStatement createStatementADF(String query)
{
    PreparedStatement statement=null;
    try {

              /*create transaction for current statemtnt*/
              DBTransaction dbTransaction = (DBTransaction) this.getTransaction();
              statement= dbTransaction.createPreparedStatement(query, 0);
    } catch (SQLException e)
    {
              throw new JboException(e);
    }
    return statement;

}
/*Executes single query*/
protected ResultSet executeQueryADF (String query, Object[] bindVars)
{
          PreparedStatement statement=null;
          ResultSet ret=null;
          try {

              /*create transaction for current statemtnt and resuse it*/
              statement=createStatementADF(query);

              if ((bindVars != null)&&(statement!=null)) {
                  // 2. Loop over values for the bind variables passed in, if any
                  for (int z = 0; z < bindVars.length; z++) {
                      // 3. Set the value of each bind variable in the statement
                      statement.setObject(z + 1, bindVars[z]);
                  }
              }
              // 4. Execute the statement
              ret=statement.executeQuery();
          } catch (SQLException e) {
              throw new JboException(e);
          } finally {
              if (statement != null) {
                  try {
                      // 5. Close the statement
                      statement.close();
                  } catch (SQLException e) {
                  }
              }
          }
          return ret;
}
public void getUsrStatus()
{
        ResultSet rs = null;
        Object[] bindVars = new Object[]{"TestUser"};

        try {
            rs = executeQueryADF("SELECT account_status  FROM  dba_users WHERE  username = ?", bindVars );
            while(rs.next())
            {
                //..... process data
            }
        } catch (Exception e)
        {
        }

    }
  • 创建使用以下查询的视图对象(VO):

    SELECT account_status
          FROM   dba_users
          WHERE  username = :p_username 
    
    其中p_username是一个绑定变量,并将VO添加到应用程序模块(AM)

  • 在AM中,您需要创建一个新方法来获取VO, 设置bind变量并执行VO。在这里,您通过检查行数来进行验证,并查看状态etc是否正确
  • 根据您的用例,您应该在AM中公开该方法(可能返回布尔值或字符串)。将该方法添加到绑定中,并在用户执行某些操作(单击按钮)时执行该方法。根据方法的结果,您可以进行一些导航或显示错误。(抛出异常也可以是一种选择)

    编辑:
    您可以将PL/SQL移动到函数/过程中,并从AM执行它。非常好的示例:

    有问题吗?是的,我如何在ADFY中执行此验证您想要执行PL/SQL或您想要将PL/SQL转换为Java?我如何将PL/SQL转换为Java ADF?我何时调用此过程并执行此操作如果:work.accnt\u stat='OPEN',然后验证\u pswd('T','dbusername',null,null,passwd,wrk_err_ind,wrk_err_msg);如果nvl(wrk_err_,'N')='Y',则消息(wrk_msg);引发表单触发失败;如果结束;
    SELECT account_status
          FROM   dba_users
          WHERE  username = :p_username