java - 我不明白这个 return 语句的行为

标签 java

请看一下这个

public String getDateAndTime(long rowid){
    CustomSQLiteOpenHelper helper = new CustomSQLiteOpenHelper(context);
    this.db = helper.getWritableDatabase();
    Cursor cursor = db.
              rawQuery("select created from testRecords where rowid = ?", new String[] { Long.toString(rowid) }); 
    if (cursor != null)
        {
        cursor.moveToFirst();
        String datandtime= null;
        datandtime=cursor.getString(0);
        db.close();
        return datandtime;
        }
    db.close();    
    return null;

}

现在我显然错过了一些重要的事情:

如果光标不为空,我希望整个方法返回datandtime

但事实并非如此:

如果光标不为空,则继续执行并转到末尾返回null

返回空值。

请问我在这里缺少什么?

<小时/>

请问,为什么要关闭???

最佳答案

cursor.getString(0)更改为cursor.getString(1)。数据库列始终从 1 开始计数,而不是从 0 开始计数。

关于java - 我不明白这个 return 语句的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27183921/

相关文章:

java - 未处理的异常类型 JSONException

java - 向框架添加标签时遇到问题

Java 8 Update 71 正在尝试安装新的辅助工具。 (在 Mac 上)

java - Spring REST Controller 发布请求

java - 访问应用程序包外的文件夹(.ear/.war 文件)

java - 作为一个对 Java 有基本了解的学生,我可以转向 Android 吗?

Java NullPointerException - 从文本框设置字符串参数

java 。读取文件,按某列排序并打印

java - 使用java从另一个系统访问mysql数据库

java - 在Java中执行外部程序——巨大的CPU负载