【发布时间】:2017-12-20 14:29:21
【问题描述】:
我想显示带有发件人姓名的邮件。外部 while 循环工作正常,但内部 while 循环存在一些问题。我已经尝试了很多来弄清楚但没有结果。谁能帮我?我会非常感谢。
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
public class Messages extends Login {
static Scanner in = new Scanner(System.in);
public static void main(String args[]) throws Exception{
boolean isLoggedin = login();
String msg = "";
String senName = "";
if(isLoggedin) {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo?verifyServerCertificate=false&useSSL=false", "root", "");
Statement st = con.createStatement();
Statement st1 = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM chat");
ResultSet rs1 = st1.executeQuery("SELECT * FROM data");
while(rs.next()) {
int dbRecID = rs.getInt("reciever_id");
if(dbRecID == user_id) {
msg = rs.getString("message");
int dbSenID = rs.getInt("sender_id");
while(rs1.next()) {
int senID = rs1.getInt("id");
if(senID == dbSenID) {
senName = rs1.getString("name");
}
}
System.out.println(senName+" sent you a message: "+msg);
}
}
}
else {
System.out.print("Login Unsuccessful");
}
}
}
输出
Ali Ahmed sent you a message: How are you?
Ali Ahmed sent you a message: Hi!
所需输出
Ali Ahmed sent you a message: How are you?
Hamza sent you a message: Hi!
【问题讨论】:
-
请解释为什么您认为输出应该类似于“必需输出”
-
因为数据库中有两条消息。一份由 Ali Ahmed 发送,另一份由 Hamza 发送。该程序正在完美地打印所有消息,但它没有更新发件人姓名。