gpt4 book ai didi

java - SQLite 通用 getEntry(...) 函数

转载 作者:行者123 更新时间:2023-12-01 11:18:10 27 4
gpt4 key购买 nike

我正在开发一个 Java 项目并编写一个 SQLite“Actionhandler-Class”,您可以在其中创建/删除表并在这些表中添加/更新/获取/删除条目。

表的一般创建/删除和条目的添加工作正常,但现在我想制作 getEntry(...)功能。

public void getEntry(String table, String[] ident){
try{
stmt = conn.createStatement();
String exec = "SELECT " + ident[0] + " FROM " + table;
if(!ident[1].isEmpty()){
exec += " WHERE(" + ident[1] + ");";
}else{
exec += ";";
}
ResultSet res = stmt.executeQuery(exec);
while(res.next()){
System.out.println(res.getInt("uid"));
System.out.println(res.getString("uname"));
System.out.println(res.getString("pwd"));
System.out.println(res.getString("mail"));
System.out.println(res.getInt("rank"));
System.out.println(res.getInt("coins"));
System.out.println(res.getString("stg"));
}
res.close();
stmt.close();
}catch(Exception e){
e.printStackTrace();
}
}

这当然有效!但我不想System.out.println(...)所有数据,我想把它还给main(...)调用 getEntry(...) 的函数函数,以便它可以使用此数据。如何给res这个函数的数据返回?

最佳答案

您可以将函数作为 ResultSet 返回:

public ResultSet getEntry(String table, String[] ident){
try{
stmt = conn.createStatement();
String exec = "SELECT " + ident[0] + " FROM " + table;
if(!ident[1].isEmpty()){
exec += " WHERE(" + ident[1] + ");";
}else{
exec += ";";
}
ResultSet res = stmt.executeQuery(exec);
/* while(res.next()){
System.out.println(res.getInt("uid"));
System.out.println(res.getString("uname"));
System.out.println(res.getString("pwd"));
System.out.println(res.getString("mail"));
System.out.println(res.getInt("rank"));
System.out.println(res.getInt("coins"));
System.out.println(res.getString("stg"));
}res.close();
stmt.close();*/

return res;
}catch(Exception e){
e.printStackTrace();
}
}

然后在main中你可以处理ResultSet

 public static void main (String args []){

YourClass yourInstance = new YourClass ();

ResultSet tempResultSet = yourInstance.getEntry();
while( tempResultSet .next() ){
System.out.println(res.getInt("uid"));
System.out.println(res.getString("uname"));
System.out.println(res.getString("pwd"));
System.out.println(res.getString("mail"));
System.out.println(res.getInt("rank"));
System.out.println(res.getInt("coins"));
System.out.println(res.getString("stg"));
}

yourInstance .stmt.close() ; // this is assuming stmt is public
yourInstance.tempResultSet.close()

}

如果有一个方法返回 stmt 假设类似于 getStmt(),那么您可以使用 yourInstance.getStmt().close() 关闭它

关于java - SQLite 通用 getEntry(...) 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31545549/

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