0
私はJavaアプレットとJava Swingを初めて使用しています。すでに似たような質問をしたが、それほど助けにならなかった。ログインボタンがクリックされると、tryブロックを実行する代わりに例外がスローされます。他のすべてがうまくいきます。java.sql.SQLSyntaxErrorException:ORA-00933:SQLコマンドが正しく終了しませんでしたか?
public class signin extends javax.swing.JFrame {
Connection conn;
OracleResultSet rs = null;
OraclePreparedStatement pst;
private void cancelActionPerformed(java.awt.event.ActionEvent evt) {
signin s = new signin();
s.setVisible(true);
}
ログインボタンの例外をクリックすると、新しいフレーム、メニューに行くのではなく、例外がスローされます。 tryブロックの
private void loginActionPerformed(java.awt.event.ActionEvent evt) {
try{
String pass = passTF.getText().trim();
String user = userTF.getText().trim();
String sql = "select uname,pass from login where uname = '"+user+"' pass
= '"+pass+"'"; //here is the issue
pst = (OraclePreparedStatement) conn.prepareStatement(sql);
rs = (OracleResultSet) pst.executeQuery(sql);
System.out.println("Error");
int count = 0;
残りは
while (rs.next())
{
count++;
}
if(count == 1)
{
JOptionPane.showMessageDialog(null, "User Found");
System.out.println("Success");
menu m = new menu();
m.setVisible(true);
}
else
{
System.out.println("Success but no user");
JOptionPane.showMessageDialog(null, "Such user does not exist!");
}
}
catch(Exception ex)
{
System.out.println("Fail");
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new signin().setVisible(true);
}
});
}
パスフィールドの前に「AND」がありません。また、プリペアド・ステートメントを使用しているため、適切に使用してください(https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html)。 – parakmiakos