我知道有很多这样的问题。我整天都被困在这一天。我正在使用从Java到mysql的预准备语句运行查询。它抛出一个异常,因为它返回一个空的结果集,即使我在phpmyadmin上运行相同的查询它返回一些行。 我的代码如下:
public static Integer returnImportLog(String filename,String importLogs,int acc_id){
int id_out=0;
ArrayList<Integer> ids = new ArrayList<Integer>();
try{
String myUrl = "jdbc:mysql://localhost:3307/blahblah";
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(myUrl,"root","");
String query2 = "SELECT DISTINCT `id` FROM `"+importLogs+ "` "
+ "WHERE `file`=? AND `acc_id`= ?";
PreparedStatement statement=conn.prepareStatement(query2);
statement.setString(1,filename);
statement.setInt(2,acc_id);
//System.out.println();
ResultSet rs = statement.executeQuery();
if (rs.next())
{
int user_id = rs.getInt("id");
ids.add(user_id);
}
id_out=(Integer)ids.get(0);
conn.close();
statement.close();
rs.close();
}
catch (Exception e)
{
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
e.printStackTrace();
}
return id_out;
它出现以下错误:
“有例外!
索引:0,大小:0 ava.lang.IndexOutOfBoundsException:索引:0,大小:0 t java.util.ArrayList.rangeCheck(未知来源) at java.util.ArrayList.get(Unknown Source) 在Details.returnImportLog(Details.java:277)“
当我运行由预准备语句生成的sql
时SELECT DISTINCT
id
FROMpwc_import_logs
WHEREfile
='11111Spanners.csv'和acc_id
= 1“
关于phpmyadmin MySQL我在行中得到以下结果2个结果。
任何帮助都会非常感激......它破坏了我的头脑,我确信它有些微不足道
答案 0 :(得分:1)
尝试替换`with'。 我过去在这方面存在一些问题,我想更换它们可以解决问题。 :)
答案 1 :(得分:0)
查询未执行,因此导致空结果集rs
。因此,arraylist ids
将不会有任何数据。但是,您试图从抛出IndexOutOfBoundsException的arraylist ids.get(0)
中读取。你可以尝试删除(反引号)`登录查询字符串然后重试吗?