gpt4 book ai didi

java - 返回结果集的正确方法

转载 作者:可可西里 更新时间:2023-11-01 06:36:45 24 4
gpt4 key购买 nike

我是 Java 的新手,但我很快就学会了。我一直遇到的一件事是,我最终拥有一个充满查询的函数,只是一般的代码,我想将它分解成单独的函数。以此为例:

public ResultSet getApples (){
ResultSet rs;
try{
PreparedStatement stmt = con.prepareStatement("SELECT * FROM fruit WHERE type='apples'");
rs = stmt.executeQuery();
} catch (SQLException e){
e.printStackTrace();
}
return rs;
}

理想情况下,这就是我想要做的,在一个函数中包含所有的 try 和 catch,但这给了我错误:Local variable may not have been initilized

我意识到我可以做到这一点:


public function start(){
try{
ResultSet apples = getApples();
catch (SQLException e){
e.printStackTrace();
}
}

public ResultSet getApples () throws SQLException {
PreparedStatement stmt = con.prepareStatement("SELECT * FROM fruit WHERE type='apples'");
return stmt.executeQuery();
}

但我真的更愿意在函数内处理异常并返回结果。

编辑好吧,这是对所提供内容的修改后的答案。我在这个问题上的全部目标是使脚本的主要功能尽可能简洁。即使是额外的 if ( _resultSet != null ) 也是我不太喜欢的东西。话虽如此,我对这个结果非常满意:

public ResultSet getApples (){
try{
PreparedStatement stmt = con.prepareStatement("SELECT * FROM fruit WHERE type='apples'");
return stmt.executeQuery();
} catch (SQLException e){
System.out.println("************************");
System.out.println("Class.getApples null");
System.out.println(e.getMessage());
return null;
}
}

一切都在 getApples 函数中处理,当 _resultSet.next() 被调用时,我得到一个 NullPointerException 和 getApples 中的打印异常,以便我能够快速找到错误并进行调试。

最佳答案

先将rs初始化为null。

public ResultSet getApples (){
ResultSet rs = null;
try{
PreparedStatement stmt = con.prepareStatement("SELECT * FROM fruit WHERE type='apples'");
rs = stmt.executeQuery();
} catch (SQLException e){
e.printStackTrace();
}
return rs;
}

关于java - 返回结果集的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11902002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com