Java检查数据库中是否存在该值

Java检查数据库中是否存在该值,java,mysql,jdbc,Java,Mysql,Jdbc,您好,我正在研究java和MySQL。我的执行情况如下: import javax.swing.JFrame; import javax.swing.JLabel; import java.sql.*; import java.util.Scanner; public class BankingSystem extends JFrame { public static void main(String[] args) throws Exception{ int ur=0

您好,我正在研究java和MySQL。我的执行情况如下:

import javax.swing.JFrame;
import javax.swing.JLabel;
import java.sql.*;
import java.util.Scanner;

public class BankingSystem extends JFrame {
    public static void main(String[] args) throws Exception{
        int ur=0;
        int PIN;
        String ID;
        Scanner s=new Scanner(System.in);
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/BankingSystem";
        String user = "root";
        String pass="";
        Connection con = DriverManager.getConnection(url,user,pass);
        Statement st = con.createStatement();
        System.out.println("Enter Your 4 digit PIN");
        PIN=s.nextInt();

        ResultSet rs=st.executeQuery("select * from customerinformation where pin ="+PIN);
//checking for existance of user entered pin
if((rs.getString(1)).equals("")){System.out.println("Invalid PIN");}


        while(rs.next())
        {

            System.out.println(rs.getString(1)+"  "+rs.getString(2)+"  "+rs.getString(3)+"  "+rs.getString(4));

        }

    }

}
但是这个代码不起作用。给出某种异常错误,但当我删除包含if语句的行时,它工作正常。如何检查pin是否有效

它给出了以下例外情况:

Exception in thread "main" java.sql.SQLException: Before start of result set
        at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:3624)
        at com.mysql.jdbc.ResultSet.getString(ResultSet.java:1762)
        at BankingSystem.main(BankingSystem.java:22)
这样试试 替换此
语句st=con.createStatement()

您永远不应该将语句置于PreparedStatement之上

if (!resultSet.next() ) {
    System.out.println("resultset does not data");
} else {

    do {
        System.out.println(rs.getString(1)+"  "+
                           rs.getString(2)+"  "+
                          rs.getString(3)+"  "+
                          rs.getString(4));


    } while (resultSet.next());
}
没有
rs.next()
rs.getString(1)
是不可能的

试试这个:

    if(rs.next()){
        System.out.println(rs.getString(1)+"  "+rs.getString(2)+" "+rs.getString(3)+"  "+rs.getString(4));
    } else {
     System.out.println("Invalid PIN");   
    }

你能发布例外情况的详细信息吗?
if((rs.getString(1)).equals("")){
   System.out.println("Invalid PIN");
}
    if(rs.next()){
        System.out.println(rs.getString(1)+"  "+rs.getString(2)+" "+rs.getString(3)+"  "+rs.getString(4));
    } else {
     System.out.println("Invalid PIN");   
    }