Java 执行executeQuery时,结果集始终为空
我目前正在编写一个简单的Java应用程序,它从XLS文件中读取信息,然后将其输入数据库。因为XLS确实有重复的记录,所以我只需检查XLS文件中的条目是否已经存在于数据库中。这是我的密码:Java 执行executeQuery时,结果集始终为空,java,jdbc,Java,Jdbc,我目前正在编写一个简单的Java应用程序,它从XLS文件中读取信息,然后将其输入数据库。因为XLS确实有重复的记录,所以我只需检查XLS文件中的条目是否已经存在于数据库中。这是我的密码: public static void addResult(ArrayList<ArrayList<String>> listResults) { try { openDatabase(); stmt = c.createStatement(
public static void addResult(ArrayList<ArrayList<String>> listResults)
{
try
{
openDatabase();
stmt = c.createStatement();
for (int i = 0; i < listResults.size(); i++)
{
PreparedStatement stm = c.prepareStatement("SELECT player_name FROM results WHERE player_name=?;");
stm.setString(1, listResults.get(i).get(ReadResultsFile.NAME));
System.out.println(stm);
ResultSet rs = stm.executeQuery();
if (rs.getRow() <= 0)
{
String typeOfPlay = new String();
if (listResults.get(i).get(ReadResultsFile.TYPE).equals("Simple"))
{
typeOfPlay = "single";
}
else if (listResults.get(i).get(ReadResultsFile.TYPE).equals("Double"))
{
typeOfPlay = "double";
}
stm = c.prepareStatement("INSERT INTO results (player_name, school_id, " + typeOfPlay + ", tournament_id) "
+ "VALUES(?,?,?,?);");
stm.setString(1, listResults.get(i).get(ReadResultsFile.NAME));
stm.setString(2, listResults.get(i).get(ReadResultsFile.SCHOOL_ID));
stm.setInt(3, Integer.parseInt(listResults.get(i).get(ReadResultsFile.SCORE)));
stm.setString(4, "1");
stm.executeUpdate();
}
else
{
String typeOfPlay = new String();
if (listResults.get(i).get(ReadResultsFile.TYPE).equals("Simple"))
{
typeOfPlay = "single";
}
else if (listResults.get(i).get(ReadResultsFile.TYPE).equals("Double"))
{
typeOfPlay = "double";
}
stm = c.prepareStatement("UPDATE results SET " + typeOfPlay + "=? WHERE player_name=?;");
stm.setString(1, typeOfPlay);
stm.setString(2, listResults.get(i).get(ReadResultsFile.SCORE));
stm.setString(1, listResults.get(i).get(ReadResultsFile.NAME));
System.out.println(stm);
stm.executeUpdate();
}
}
closeDatabase();
}
catch (Exception e)
{
System.err.println(e.getClass().getName() + ": " + e.getMessage());
System.exit(0);
}
}
公共静态void addResult(ArrayList listResults)
{
尝试
{
openDatabase();
stmt=c.createStatement();
对于(int i=0;i 如果(rs.getRow()getRow将无法按照javadocs工作
检索当前行号。第一行是数字1,第二行是数字2,依此类推
及
结果集光标最初位于第一行之前;结果集光标
对方法next的第一次调用使第一行成为当前行
常用
while (rs.next ()) {....
getRow将不会按照javadocs工作
检索当前行号。第一行是数字1,第二行是数字2,依此类推
及
结果集光标最初位于第一行之前;结果集光标
对方法next的第一次调用使第一行成为当前行
常用
while (rs.next ()) {....
确保listrests.get(i).get(ReadResultsFile.NAME)
没有任何尾随空格。事实上,我会插入一个字符串并将其打印出来。我认为这也不相关,但sql中的;
不需要确保listrests.get(i).get(ReadResultsFile.NAME)
没有任何尾随空格。事实上,我会插入一个字符串并将其打印出来。我认为也不相关,但sql中的;
不需要非常感谢先生!非常感谢先生!