Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(Java)SQL查询根本不返回任何内容_Java_Sql_Database_Bukkit - Fatal编程技术网

(Java)SQL查询根本不返回任何内容

(Java)SQL查询根本不返回任何内容,java,sql,database,bukkit,Java,Sql,Database,Bukkit,我的SQLite数据库有问题。切中要害:除了查询之外,一切都在工作(执行/创建表/…) 要点:autoCommit=False(但我使用的查询函数不需要它) 代码如下: ---=>Database.class Main.class问题是,您正在关闭语句,该语句将自动关闭关联的结果集: Statement statement = connection.createStatement(); ResultSet resultset = statement.executeQuery(query); st

我的SQLite数据库有问题。切中要害:除了查询之外,一切都在工作(执行/创建表/…)

要点:autoCommit=False(但我使用的查询函数不需要它)

代码如下:


---=>Database.class Main.class问题是,您正在关闭
语句
,该语句将自动关闭关联的
结果集

Statement statement = connection.createStatement();
ResultSet resultset = statement.executeQuery(query);
statement.close();  // This is the problem
return resultset;
从javadoc:

关闭语句对象时,其当前ResultSet对象(如果存在)也将关闭

话虽如此,您不应该在方法周围传递
ResultSet
对象。这样,管理资源将非常困难,因为您必须使用不同的方法打开
语句
结果集
对象

您应该使用获取
ResultSet
的相同方法构建一些数据结构,并返回该数据结构


此外,您应该关闭
finally
块中的资源,如,
结果集
语句
,和
连接
,以确保它们始终处于关闭状态,即使在出现异常的情况下。

哦,我的上帝,非常感谢您!工作得很好,但我意识到SQL不区分大小写,在代码中添加对它的支持?(区分大小写的SQL查询)因为我只看到数据库端的修改!THX“但我意识到SQL不区分大小写”就列中的值而言,SQL既不区分大小写,也不区分大小写。这取决于您正在使用的RDBMS和正在使用的设置(有时是基于每列)。此外,更重要的问题是:如果我不关闭该语句,是否意味着该语句在某个地方处于空闲状态?很抱歉,默认情况下它不区分大小写没有问题。但是,如果必须首先返回结果集,如何关闭语句?:/谢谢你的帮助@用户2671258。首先,您不应该将
ResultSet
作为返回值。事实上,您不应该围绕方法传递
ResultSet
,或
语句
。因为,那就很难管理资源了。
Statement statement = connection.createStatement();
ResultSet resultset = statement.executeQuery(query);
statement.close();  // This is the problem
return resultset;