我有一个名为“在线招聘系统”的项目。数据库连接存在问题。
首先,我在不使用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&'
否则会出现错误。
希望这能够帮到你!