Java程序输出的数据库记录数量错误
我在mySQL中有一个表,有3行,包括姓名、地址、电话、年龄、费用。其中两个名字是“亚当”,最后一行是“阿巴斯”,我不知道为什么它会在控制台上这样打印,请帮助我谢谢Java程序输出的数据库记录数量错误,java,sql,mysql,database,Java,Sql,Mysql,Database,我在mySQL中有一个表,有3行,包括姓名、地址、电话、年龄、费用。其中两个名字是“亚当”,最后一行是“阿巴斯”,我不知道为什么它会在控制台上这样打印,请帮助我谢谢 Statement s; int s4,s5;String s1,s2,s3; List<InfoClass> clientList = null; try { s = conn.createStatement(); ResultSet rs = s.e
Statement s;
int s4,s5;String s1,s2,s3;
List<InfoClass> clientList = null;
try {
s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM customer_info WHERE Name LIKE 'A%'");
InfoClass list = null;
while (rs.next()) {
s1 = rs.getString(2);
if (rs.wasNull()) {
s1 = null;
}
s2 = rs.getString(3);
if (rs.wasNull()) {
s2 = null;
}
s3 = rs.getString(4);
if (rs.wasNull()) {
s3 = null;
}
s4 = rs.getInt(5);
if (rs.wasNull()) {
s4 = 0;
}
s5 = rs.getInt(6);
if (rs.wasNull()) {
s5 = 0;
}
list = new InfoClass(s1, s2);
if (clientList == null) {
clientList = new ArrayList<InfoClass>();
}
clientList.add(list);
}
for(int i=0;i<clientList.size();i++){
InfoClass c =clientList.get(i);
System.out.println(c.getName());
}
我希望输出如下:
run:
Adam Smit
Adam Smit
Abas
您的数据库中似乎有一个名为“Abas”的客户,该客户与您的查询有效匹配。最好使用rs.getString(String columnLabel)方法。请将
println
行更改为:
System.out.println("" + i + ": " + c.getName());
然后运行它?您的问题非常混乱。请张贴表格结构和表格内容。另外,请提出一个具体问题。你期望的产量是多少?哪一部分让你惊讶?如果没有特定的问题,您的问题条目将很快关闭。select查询返回的行数是否与程序相同?这将帮助您找到问题是在查询中还是在程序中。如果没有任何内容与您的选择条件匹配,则此代码将抛出NullPointerException,因为您正在懒洋洋地构造
clientList
,@Johanna
:它会输出什么?
System.out.println("" + i + ": " + c.getName());