Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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 Android数据库实用程序库_Java_Android_Sqlite - Fatal编程技术网

Java Android数据库实用程序库

Java Android数据库实用程序库,java,android,sqlite,Java,Android,Sqlite,每次我想要一个带有数据库组件的应用程序时,我不必重写一个扩展了SQLiteOpenHelper的类,而是尝试创建一个数据库实用程序库项目。这可能吗 我称这个类为DBUtil。它扩展SQLiteOpenHelper,覆盖onCreate和onUpgrade,并具有插入和选择行的功能。它编译成一个jar文件 我将这个jar文件包含在另一个应用程序DBUtilTests中,我在其中创建数据库,指定数据库名称,为每个表指定表名和列名。当我到达插入行的部分,然后进行选择以验证行是否存在时,不会返回任何内容

每次我想要一个带有数据库组件的应用程序时,我不必重写一个扩展了
SQLiteOpenHelper
的类,而是尝试创建一个数据库实用程序库项目。这可能吗

我称这个类为DBUtil。它
扩展SQLiteOpenHelper
,覆盖
onCreate
onUpgrade
,并具有插入和选择行的功能。它编译成一个jar文件

我将这个jar文件包含在另一个应用程序DBUtilTests中,我在其中创建数据库,指定数据库名称,为每个表指定表名和列名。当我到达插入行的部分,然后进行选择以验证行是否存在时,不会返回任何内容

在DBUtil中的select函数中,由于某种原因,游标对象始终为null。我尝试了以下两种方法来创建它:

1:


上述代码中是否有任何错误,如果没有,我试图做的是可能的吗?

我确保每次执行返回游标对象的数据库操作时,当我从游标读取数据时,我都会对其调用close()。另外,当我处理完数据库本身时,我调用关闭数据库。DBUtilTests中只有一个DBUtil实例。
query
rawQuery
从不返回
null
。这看起来像是下面代码中的一个bug。
String tableName="whatever";
//getColumnNamesForTable is a local function that returns the column names 
// for a given table in an ArrayList of Strings
final ArrayList<String> columnNamesForTable = getColumnNamesForTable(tableName);
final String[] columns = columnNamesForTable.toArray(new String[columnNamesForTable.size()]);
SQLiteDatabase database = this.getReadableDatabase();
Cursor cursor = database.query(tableName, columns, null, null, "", "", "");
String selectQuery = "SELECT * FROM " + tableName;    
Cursor cursor = database.rawQuery(selectQuery, null);