Articles of SQLite

使用可读SQLite数据库的原因

Android类SQLiteOpenHelper有一个返回可读数据库以及可读写数据库的方法。 目前我只使用可写数据库并且没有问题,但我想知道如果我只是在异步任务(或活动)中读取,那么改为使用可读性会带来什么好处。 可能会有性能优势,但我没有看到任何实际数字的参考。 此外,如果我在可读和可写之间切换,则更改会产生一些开销,可能会带来所有性能优势。 有没有人有这方面的实际数字或经验? 是否值得实施单独访问?

从不同活动中的不同表中搜索建议

嗨,我已遵循官方的Android指南启用搜索和搜索建议。 我工作得很好,但问题是它只从一个数据库表中搜索。 我有三个表和三个活动,分别名为“BirthdayWisher_Table” , “Tasks_Table” , “Events_Table”和“BirthdayWisher_Activity” , “Tasks_Activity” , “Events_Activity” 。 我希望当用户处于“BirthdayWisher_Activity”并按下搜索菜单项时,我的应用程序应搜索“BirthdayWisher_Table”中的数据,当用户处于“Tasks_Activity”时,按下搜索菜单项,我的应用程序应搜索来自“Tasks_Table”。 但对我来说似乎不可能这样做。 SearchAble配置文件 以下是我如何关联我的searchAble活动 它对BirthdayWisherTable非常有效(因为我指定了) android:searchSuggestIntentData=”content://com.beaconimpex.assistant.app.ContentProvider/BirthdayWishTable” android:searchSuggestPath=”BirthdayWishTable” 我的内容提供商 public class AssistantContentProvider extends ContentProvider { public static final String DATABASE_NAME = “gcuf__dB”; public static final int DATABASE_VERSION = 99; public static final String AUTHORITY = “com.beaconimpex.assistant.app.ContentProvider”; SQLiteDatabase db; private DBOpenHelper dbHelper; private static final […]

在PhoneGap的情况下,HTML5 SQLite与本机数据库

我正在为Android和iOS构建PhoneGap应用程序。 我想知道哪一个是更好的数据库管理选择:HTML5的SQLite或Native数据库设备。 在本机使用的情况下,我需要构建一个用于交互的插件。 请根据性能和速度给我一个更好的选择。

Android中的SQLite触发器?

我想在Android应用程序的表上强制使用外键constarint。 我搜索过这可以通过使用触发器来完成: 我是这样做的: db.execSQL(“CREATE TRIGGER dept_id_trigger22+” + ” AFTER INSERT “+ ” OF EmployeeName ON Employees”+ ” BEGIN”+ //Condition ” RAISE(ABORT,’error’) END;”); 但没有引发错误,并插入了非法值。 这有什么问题?

SQLite:大表中的高效子字符串搜索

我正在开发一个Android应用程序,它必须在一个大表中执行子字符串搜索(大约500’000个带有街道和位置名称的条目,所以每个条目只有几个单词)。 CREATE TABLE Elements (elementID INTEGER, type INTEGER, name TEXT, data BLOB) 请注意,只有20%的条目包含“name”列中的字符串。 执行以下查询几乎需要2分钟: SELECT elementID, name FROM Elements WHERE name LIKE %foo% 我现在尝试使用FTS3以加快查询速度。 这非常成功,查询时间减少到1分钟(令人惊讶的是,数据库文件大小仅增加了5%,这对我的目的来说也相当不错)。 问题是,FTS3似乎不支持子串搜索,即如果我想在“foo bar”和“foobar”中find“bar”,我只会得到“foo bar”,尽管我需要两个结果。 所以实际上我有两个问题: 是否有可能进一步加快查询速度? 我的目标是查询30秒,但我不知道这是否真实…… 如何使用FTS3进行真正的子串搜索?

SQL查询Android问题的条款

我有以下代码创建我的表。 我将数据插入其中,看起来像这样 _id date recordName total ————————————– 7 2011 TestMaxRecord 5 Java代码: public static final String KEY_ROWID = “_id”; public static final String KEY_DATE = “date”; public static final String KEY_TOTAL = “total”; public static final String KEY_RECORD_NAME = “recordName”; private static final String DATABASE_CREATE_RECORDS = “create table ” + DATABASE_TABLE_RECORDS + ” (” + […]

SQLiteQueryBuilder中的selectionArgs不适用于列中的整数值

我正在尝试从数据库中选择一些数据,我有两片代码来做: cursor = builder.query(db, new String[]{“col1”, “col2”, “col3”}, “id = ?”, new String[]{getSID(db)}, null, null, null); 和 cursor = builder.query(db, new String[]{“col1”, “col2”, “col3”}, “id = ” + getSID(db), null, null, null, null); 它们之间的区别在于,根据文档,第一个似乎更正确,但它也不起作用 – 光标是空的。 而不是第二个 – 我得到了我需要的所有数据。 所以我尝试在我的电脑上使用数据库副本执行不同的SQL查询,这就是我所拥有的: SELECT col1, col2, col3 FROM SomeTables WHERE (id = ’42’) 这个不起作用(这个查询显然等于查询,由第一个代码示例生成) SELECT col1, col2, col3 […]

如何在SQLite中拆分逗号分隔值?

我想在SQLite数据库中拆分逗号分隔的String 示例:我的表中有一个Category列。 |Category | |——————————| |Auto,A,1234444 | |Auto,B,2345444 | |Electronincs,Computer,33443434| 我想从上面的字符串中只获取一个值。 value1: Auto value2: A value3: 1234444 我在谷歌上搜索了很多; 我find了一种使用Replace()和Trim()替换逗号的方法。 但是,我想要一个更简单的方法。 在SQL中,提供SubString() 。 但在SQLite中,没有这样的function。 怎么解决? 编辑 :我检查了substr() 。 但是,这个函数可以设置最大长度来获取字符串值,而我的字符串值没有固定长度。

Android:如果我想从Downloads文件夹中查看/选择一个SQLite数据库,那么mimetypes是什么?

我正在使用SQLite数据库编写应用程序。 我已经编写了备份我的SQLite数据库的代码。 我现在希望能够从这样的副本中恢复我的应用程序数据库。 我正在使用Android设备“打开”对话框。 如果我在列表中使用其他内容提供商,我会看到该文件,例如“蓝牙文件传输”! 但是如果我尝试使用“下载”选项,我就不会看到它。 我在下载文件夹中复制了一个SQLite数据库。 我尝试使用fileIntent.setType(“ / ”)。 谢谢。

无法在root用户手机上打开数据目录

我只是根植我的手机,因为我需要访问数据库我的应用程序是uisng。 但是,即使我的手机已植根,我仍然无法在Eclipse File Explorer中打开数据文件夹。 有什么我忘了吗? 我需要告诉Eclipse我是超级用户还是其他什么? 我可以访问模拟器上的数据文件夹,但不能访问我的实际设备。 而且我真的想在我的设备上进行开发,模拟器速度慢得多,我无法使用互联网连接。 有任何想法吗?