|
我正在使用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("honeNo"); PatientRecords = sex "," dob "," address "," occupation "," phoneno; System.out.print("atient 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("atient 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("hone number: " phoneno); clientSocket.close();
' Z d& z; B8 ^' M) a" X 解决方案: |
|