回答

收藏

在WHERE子句中使用多个变量的Java SQL Select语句

技术问答 技术问答 197 人阅读 | 0 人回复 | 2023-09-12

我正在使用UDP编写一个简单的程序。我需要输入病人的姓名,并从数据库中检索详细信息。病人的姓名输入Doctor类,然后发送到Server类。然后,Server类执行查询以检索患者的详细信息。问题出在SQL句子中。当我只使用变量名时,它工作正常,但当我放置第二个变量名时,PatientRecord变量为NULL。
/ d' J, j' C  Z) }) J" [服务器类:- ]" j& a5 E9 m+ o$ {8 D
public class Server    public static Connection con;    public static String PatientRecords;    public static String QueryPatientInfo(String PatientDetails) throws SQLException        System.out.print("\nNew Patient query received:\n");        String [] PatientDetArray = PatientDetails.split(",");        String firstname,lastname;        firstname = PatientDetArray[1]lastname  = PatientDetArray[2];        System.out.println("First Name: "  firstname);        System.out.println("Last Name: "  lastname);        Statement query = con.createStatement();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;query.execute("SELECT * FROM patient WHERE FirstName = '" firstname "'  AND LastName = '" lastname "' ");        ResultSet rs = query.getResultSet();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;String sex;        String dob String address String occupation;        String phoneno  if(rs != null)              while (rs.next())                  sex = rs.getString("Sex");                dob = rs.getString("DOB");                address = rs.getString("Address");                occupation = rs.getString("Occupation");                phoneno = rs.getString(&quothoneNo");                PatientRecords = sex   ","   dob   ","   address   ","   occupation   ","   phoneno;                                     System.out.print(&quotatient records successfully retrieved from database !\n\n");            return PatientRecords;          else                System.out.print("Error occurred patient records not found !\n\n");            return "Error occurred patient records not found !";         public static void main(String[] args) throws IOException,SQLException        Connecting to database - using xampp        try                                                                                                                                                                                                                                                                                                                                                                                                             Class.forName("com.mysql.jdbc.Driver");            con = DriverManager.getConnection("jdbc:mysql://localhost/patientrecord","root","");            System.out.println("Database is connected !");          catch(Exception e)                                                                                                                                                                                                                                                                                                                                                                                                             System.out.println("Database connection error: "   e);          DatagramSocket serverSocket = new DatagramSocket(8008)byte[] receiveData = new byte[1024]byte[] sendData;        System.out.println("Server ready and waiting for clients to connect...");        while (true)                DatagramPacket receivePacket =  new DatagramPacket(receiveData,receiveData.length);            serverSocket.receive(receivePacket);            String PatientDetails = new String(receivePacket.getData();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;String message;            message = QueryPatientInfo(PatientDetails);            System.out.print(message);            InetAddress IPAddress = receivePacket.getAddress();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;int port = receivePacket.getPort();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sendData = message.getBytes();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DatagramPacket sendPacket = new DatagramPacket(sendData,sendData.length,IPAddress,port);            serverSocket.send(sendPacket);      医生班:# r9 Z) V, A( X# I" k' O9 S$ e
public class Doctor    public static void main(String[] args) throws IOException        BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));        DatagramSocket clientSocket = new DatagramSocket();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;InetAddress IPAddress = InetAddress.getByName("localhost");     Creating array of bytes to send and receive packet        byte[] sendData;        byte[] receiveData = new byte[1024]String request,firstName,lastName;        request = "query";        System.out.print(&quotatient Registration");        System.out.print("\n\nEnter Patient Details:\n");     User input        System.out.print("First name: \n");        firstName= inFromUser.readLine();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;System.out.print("Last name: \n");        lastName = inFromUser.readLine();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;String PatientDetails = request   ","  firstName   ","  lastName;        sendData = PatientDetails.getBytes();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DatagramPacket sendPacket = new DatagramPacket(sendData,sendData.length,IPAddress,8008)Send data packet to server        clientSocket.send(sendPacket);        DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length);      Receive data packet from server        clientSocket.receive(receivePacket);        String PatientRecords =  new String(receivePacket.getData());      System.out.print(PatientRecords);        String [] PatientDetArray = PatientRecords.split(",");        String sex,dob,address,occupation,phoneno;        sex = PatientDetArray[0]dob = PatientDetArray[1]address = PatientDetArray[2]occupation = PatientDetArray[3]phoneno = PatientDetArray[4]System.out.println("FROM SERVER: ");                                System.out.println("Details for patient : "   firstName   " "   lastName);        System.out.println("Sex: "   sex);        System.out.println("Date of birth: "  dob );         System.out.println("Address: "   address );         System.out.println("Occupation: "   occupation);        System.out.println(&quothone number: "   phoneno);        clientSocket.close();               
' Z  d& z; B8 ^' M) a" X    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则