首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLite general getEntry(.)函数

SQLite general getEntry(.)函数
EN

Stack Overflow用户
提问于 2015-07-21 17:16:15
回答 1查看 234关注 0票数 0

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

表的一般创建/删除和条目的添加可以正常工作,但是现在我想要使getEntry(...)函数。

代码语言:javascript
复制
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数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-21 17:50:05

您可以以ResultSet的形式返回函数:

代码语言:javascript
复制
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();
    }
}

然后在总体上您可以处理ResultSet

代码语言:javascript
复制
 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()关闭它

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31545549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档