我有一张桌子:
create table User1(Username varchar2(20) ,
First_Name varchar2(20) ,
Last_Name varchar2(20) ,
Password varchar2(20) ,
Date_Of_Birth Date )
以下jdbc代码::
if(e.getSource()==submit)
{
Connection con=null;
ResultSet rs=null;
PreparedStatement st=null;
try
{
Class.forName("oracle.jdbc.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1522:xe", "hr", "hr");
st=con.prepareStatement("select count(1) from User1 where Username = ? and Password = ? ");
//st.setParameter(1, text1.getText());
//st.setParameter(2, p1.getText());
st.setString(1,text1.getText());
st.setString(2,text1.getText());
rs= st.executeQuery();
//String t1=text1.getText();
//String t2= p1.getText();
while(rs.next())
{
if (rs.getInt(1) == 1)
{
new Rec_options();
}
}
}
catch(SQLException ee)
{
System.out.println(ee);
}
catch(Exception e1)
{
System.out.println(e1);
}
finally
{
try
{
rs.close();
con.close();
st.close();
}
catch(SQLException eee)
{
System.out.println(eee);
}
}
}
while循环中是否有问题?当我点击提交按钮,另一页" Rec_options"应该打开,但这里没有任何事情发生,我也没有收到任何错误或cmd中的任何内容。我输入正确的用户名和密码。 请帮忙!! 感谢..
答案 0 :(得分:0)
您已使用" st.setString(1,text1.getText());"两次。我认为您应该将第二个更改为密码字符串。
答案 1 :(得分:0)
你在准备陈述中似乎有一个错字:
st.setString(1,text1.getText());
st.setString(2,text1.getText()); // <---- You are passing your username twice.
答案 2 :(得分:0)
尝试使用指示其类型和用途的变量名称
txtuser
txtpassword