我不是每次想要一个带有数据库组件的应用程序时都必须重写一个扩展SQLiteOpenHelper
的类,而是要尝试创建一个数据库实用程序库项目。这可能吗?
我称之为DBUtil类。它extends SQLiteOpenHelper
覆盖onCreate
& onUpgrade
,并具有插入和选择行的功能。它编译成一个jar文件。
我将此jar文件包含在另一个应用程序DBUtilTests中,其中我创建数据库,指定数据库名称,为每个表提供表名和列名。当我到达我插入行的部分然后执行选择以验证行是否存在时,不返回任何内容。
在DBUtil的select函数中,由于某种原因,游标对象始终为null。我尝试过以下两种方式创建它:
1:
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, "", "", "");
2:
String selectQuery = "SELECT * FROM " + tableName;
Cursor cursor = database.rawQuery(selectQuery, null);
上述代码是否有任何问题,如果没有,是我试图做的事情?