Articles of SQLite

Android SQLite空指针exception

我在LogCat中得到这个: 05-20 17:16:34.721: E/AndroidRuntime(30461): FATAL EXCEPTION: main 05-20 17:16:34.721: E/AndroidRuntime(30461): java.lang.NullPointerException 05-20 17:16:34.721: E/AndroidRuntime(30461): at android.database.sqlite.SQLiteStatement.releaseAndUnlock(SQLiteStatement.java:290) 05-20 17:16:34.721: E/AndroidRuntime(30461): at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:96) 05-20 17:16:34.721: E/AndroidRuntime(30461): at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1810) 05-20 17:16:34.721: E/AndroidRuntime(30461): at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1761) 05-20 17:16:34.721: E/AndroidRuntime(30461): at com.kickinglettuce.debtplannerpro.DebtDataSource.updateDebt(DebtDataSource.java:130) 05-20 17:16:34.721: E/AndroidRuntime(30461): at com.kickinglettuce.debtplannerpro.manageDebts$4.onClick(manageDebts.java:184) 05-20 17:16:34.721: E/AndroidRuntime(30461): at android.view.View.performClick(View.java:3511) 05-20 17:16:34.721: E/AndroidRuntime(30461): at android.view.View$PerformClick.run(View.java:14105) 05-20 17:16:34.721: E/AndroidRuntime(30461): at […]

Android – 关闭数据库后可以使用SQLite Cursor吗?

首先,如果我错了,请纠正我,但是如果你关闭数据库连接,你不能使用你从中得到的光标,对吗? db.open(); Cursor c = db.query(true, “MyTable”, columns, null, null, null, null, null, null); db.close(); // The Cursor is empty now because the db was closed… c.moveToNext(); Log.v(TAG, c.toString(0)); 那么在关闭数据库后有没有办法使用Cursor? 就像有没有办法将它传递到别处并使用它有点像一个对象? 或者,在完成光标操作之前,您是否始终保持数据库连接处于打开状态?

删除内部联接的行?

我有一个带有两个表的SQLITE数据库。 表A具有整数时间戳和另一个包含行id的整数列,该行id引用表B中具有两个时间戳的行。 我想删除表A中的所有行,其中时间戳不在表B中的两个时间戳之间,并且ROWID等于X. 这是我目前所拥有的,但我收到语法错误: DELETE FROM network WHERE ROWID in ( SELECT ROWID FROM track INNER JOIN network ON (track.ROWID = network.trackId) WHERE network.timestamp > track.stopTime OR network.timestamp < track.startTime AND network.trackId = X

如何在android API 19(KitKat)中保留权限?

在我的应用程序中,我将图像路径存储在我的SQlite数据库中以供进一步使用。 我得到的路径是 content://com.android.providers.media.documents/document/image%3A71964 当我从数据库中检索此路径并尝试从该路径中检索图像时,机器人抛出 java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{42c84ec8 23911:com.gots.gb/u0a248} (pid=23911, uid=10248) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS 根据https://developer.android.com/guide/topics/providers/document-provider.html#permissions我需要通过添加以下代码来保持权限 final int takeFlags = intent.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); // Check for the freshest data. getContentResolver().takePersistableUriPermission(uri, takeFlags); 当我将此代码添加到我的ImageAdapter类时,它扩展了BaseAdapter android抛出 08-21 02:14:38.530: W/System.err(24452): java.lang.SecurityException: No permission grant found for UID 10248 and Uri content://com.android.providers.media.documents/document/image:71964 这是我的ImageAdapter代码的相关部分 public […]

UnsatisfiedLinkError(未find本机方法)

有一块代码在android 4.1.2上工作正常但在4.0.3上没有,崩溃日志是4.0.3 我收到UnsatisfiedLinkError Exception 请指导我谢谢 02-22 12:57:09.319: D/dalvikvm(1312): Trying to load lib /data/data/com.kosh.android/lib/libsqliteX.so 0x41056f48 02-22 12:57:09.319: D/dalvikvm(1312): Added shared lib /data/data/com.kosh.android/lib/libsqliteX.so 0x41056f48 02-22 12:58:02.060: W/dalvikvm(1312): No implementation found for native Lcom/shabdkosh/android/sqlite/CursorWindow;.native_init (Z)V 02-22 12:58:07.624: D/AndroidRuntime(1312): Shutting down VM 02-22 12:58:07.624: W/dalvikvm(1312): threadid=1: thread exiting with uncaught exception (group=0x409961f8) 02-22 12:58:07.767: E/AndroidRuntime(1312): FATAL EXCEPTION: main 02-22 […]

SQLiteOpenHelper与ContentProvider

我是Android开发的新手。 我正在尝试创建一个从内部数据库(SQLite)读取的应用程序,并列出列表中的所有数据(我正在使用listView )。 到目前为止,我有一个名为DatabaseHandler的类,它扩展了SQLiteOpenHelper ,并且正在执行所有数据库操作(选择数据,插入数据,删除数据……)。 但是现在我要列出这些值,我正在读一些网站,我必须使用Loader而不是Cursor ,因此我会使用ContentProvider 。 到目前为止,我了解ContentProvider提供对数据库的受控访问。 我的问题是: ContentProvider是否与SQLiteOpenHelper ? 此外,我正在使用API​​级别8,而ContentProvider仅在API级别11上可用。解决此问题的最佳方法是什么? 提前致谢。

确保Android上的SQLite使用UTF-8作为字符集

我正在开发一个使用SQLite作为后端的Android应用程序。 我想确保数据库中的所有表都使用UTF-8。 我怎样才能做到这一点? 我努力了: CREATE TABLE myTable (_all_columns_definitions_) DEFAULT CHARSET=utf8; 但是出现了语法错误。

是否有支持SQLite的优秀ORM(最好是JPA实现)(在Android上)?

我刚发现一篇文章解决了一个类似的问题,但我觉得它有点过时了。 我意识到JPA的实现往往更重或密集,所以如果你知道任何轻量级(非JPA)ORM,我肯定会感激你的输入。 我确实在另一篇文章中看到了关于ActiveAndroid的答案,我很想知道是否有人尝试过。 更新 : 最后,我决定使用更轻量级的解决方案并选择DB4O 。 到目前为止,我对我的选择非常满意。 它非常易于使用,并且只需要很少的配置。 该网站包含大量信息,包括示例项目和深入的教程 ,其中涵盖了开发人员可能需要了解的有关DB4O的所有信息。 哦,我是否提到它是免费的(不像其他一些替代品…… 咳嗽 ActiveDroid 咳嗽 )?

Android将图像保存到SQLite或SDCard或内存

我需要从服务器获取图像和其他一些数据,然后在列表中显示它。 但由于记录数量可能非常大,所以我不确定是否应将图像保存到SQLite数据库或将其保存到SDCard或将其保存到内存中。 没错,没有

只允许使用Android SQLite进行唯一数据输入?

在我按问题描述之前,我想指出我知道其他线程提出这个问题,但是没有一个能够解决我的问题。 我一直在使用BumpAPI开发一个共享应用程序,它在接收到块时将其保存到SQLite数据库以便在列表视图活动中进行检索,这一切都正常工作并保存数据,但是如果相同的文本是发送两次它将一次又一次保存,列表视图将显示这一点,从我读过的我需要’UNIQUE’标识符? 但是对于SQL来说是完全陌生的我在实现这一点上感到茫然,这里是我的DataHelper类,它用于创建和添加条目,是否有人可以修改它或通知我可能的解决方案? 非常感谢 public class DataHelper { private static final String DATABASE_NAME = “tags.db”; private static final int DATABASE_VERSION = 1; private static final String TABLE_NAME = “TagTable”; private Context context; private SQLiteDatabase db; private SQLiteStatement insertStmt; private static final String INSERT = “insert into ” + TABLE_NAME + “(name) values (?)”; public DataHelper(Context […]