我有一个名为“在线招聘系统”的项目。数据库连接存在问题。

首先,我在不使用sqlplus中的引号的情况下制作了表“ registration”和“ clogindetails”。
然后所有数据都用于正确保存,但是在登录时出现以下错误:

java.sql.SQLException: ORA-00904: PASSWORD: invalid identifier

在此之后,我阅读了stackoverflow的多个示例。我在数据库中的表项中添加了“双引号”,并将它们保持为小写。

现在,数据甚至都没有保存。我试图在“数据”标签中的“对象浏览器”中查找,但出现以下错误:

failed to parse SQL query:
ORA-00904: "pass": invalid identifier


据我所知,项目进展顺利。制作表只存在问题。

这是使用表'clogindetails'的页面之一中的代码:

   String usrname=getClogid();
   String pass=getCpassword();

   if(usrname!=null && pass!=null && usrname.length()>0 && pass.length()>0)
   {
      ps = con.prepareStatement("select * from clogindetails where logid=? and password=?");
      ps.setString(1,usrname);
      ps.setString(2,pass);
      rs=ps.executeQuery();
      HttpSession session=request.getSession(true);
      if(!rs.next())
      {
         errors.add("invalid", new ActionMessage("errors.invalidusername"));
      }
   }

   rs.close();
   ps.close();
   con.close();
}
catch(Exception e)
{
   e.printStackTrace();
}

if(getClogid()==null || getClogid().length()<1)
{
   errors.add("logid", new ActionMessage("errors.logid.required"));
}

if(getCpassword()==null || getCpassword().length()<1)
{
   errors.add("password", new ActionMessage("errors.password.required"));
}
return errors;


clogindetails的模式是

CREATE TABLE "CLOGINDETAILS"(
   "ADMITID" NUMBER(15,0),
   "NAME" VARCHAR2(25),
   "LOGID" VARCHAR2(10),
   "PASS" VARCHAR2(20)
)

最佳答案

尝试执行以下操作:

更改查询

来自:select * from clogindetails where logid=? and password=?

到:select * from clogindetails where logid='?' and password='?'

关键是,当您进行查询时,应该用''标识标识符,否则似乎正在将某些未知表列的数据(变量)与现有列的数据进行比较。

例如:select e.full_name from e.employees where e.full_name like '&Medet&'
否则会出现错误。

希望这能够帮到你!

09-27 18:38