我正在使用servlets.jdbc連接jdbc odbc,但得到了java.sql.SQLException:沒有找到數據。可能是什麼原因。請幫助。我一直在尋找我的錯誤,但是,直到現在還沒有得到它。找不到數據例外
Connection con=null;
PreparedStatement ps=null,ps1=null,ps2=null;
ResultSet rs=null,rs1=null;
con=DriverManager.getConnection("jdbc:odbc:SharedCryptography", "fyp", "fyp");
ps=con.prepareStatement("insert into tbGroup values ('G0',?,?,?,'Y')");
ps2=con.prepareStatement("insert into tbGroupAdmin values ('U0',?,?,?,?,?,?,?,?)");
這裏字符串N1,N2,N3,N4,N5,N6,N7,N8是從HTML形式獲得字符串
String sql1 = "SELECT GNAME,OEMAIL FROM tbGroup where GNAME = '"+n1+"' and OEMAIL = '"+n3+"'" ;
ps1 = con.prepareStatement(sql1);
rs=ps1.executeQuery();
if(rs.next()){
out.println("THIS GROUP WITH SAME ID EXISTS");
}
else{
ps.setString(1,n1);
ps.setString(2,n3);
ps.setString(3,n5);
ps.execute();
out.println("inserted");
ResultSet rs2=null;
String sql2="SELECT G_ID FROM tbGroup where GNAME like '"+n1+"' and OEMAIL like '"+n3+"'";
PreparedStatement ps3 = con.prepareStatement(sql2);
rs2=ps3.executeQuery();
rs2.next();
String mypassword="password";
ps2.setString(1,rs2.getString(1));
ps2.setString(2,n2);
ps2.setString(3,mypassword);
ps2.setString(4,n6);
ps2.setString(5,n7);
ps2.setString(6,n3);
ps2.setString(7,n4);
ps2.setInt(8,Integer.parseInt(n8));
ps2.execute();
}
我的數據庫有兩個表:
表1: tbGroup
G_ID VARCHAR2(10)
GNAME VARCHAR2(20)
OEMAIL VARCHAR2(50)
Agenda VARCHAR2(50)
Status CHAR(5)
表2:tbGroupAdmin
GADMIN_ID VARCHAR2(5)
GA_GROUPID VARCHAR2(5)
GA_NAME VARCHAR2(20)
GA_PASSWORD VARCHAR2(20)
GA_FNAME VARCHAR2(20)
LastName VARCHAR2(20)
GA_EmailId VARCHAR2(50)
GA_ContactNumber VARCHAR2(20)
GA_Age NUMBER
你已經發布了90行代碼,但沒有提供* where引發異常的跡象。理想情況下,你應該努力盡可能減少這些,這樣你發佈的代碼*就包含重現問題所需的內容。 (你需要*所有*這些查詢和非查詢來重現這個問題?) –
@JonSkeet在執行ps2之前,我打印了所有用於設置ps2的值。他們打印的是正確的。但我不知道什麼是錯誤的在此之後 – user3462609
這並沒有真正回答我的問題。它*建議*它是拋出異常的'ps2.execute()',但你應該更清楚一點 - 並刪除你的問題中不必要的東西。 –