如何在android自带的sqlite3中创建一个数据库文件,请大虾门详细指导

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在android自带的sqlite3中创建一个数据库文件,请大虾门详细指导相关的知识,希望对你有一定的参考价值。

参考技术A Android中提供4种数据存储的方法:(1)SharedPreferences,用键值对的方式来存储数据,是一种轻量级的存储机制,可以存储一些属性等。(2)Files:文件输入输出流的方式存储数据,FileInputStream和FileOutputStream。在Android中,文件是一个应用程序私有的,一个应用程序无法读写其他应用程序的文件。写入SD卡除外。(3)SQLite(4)网络(这个不算吧~~~--!)。
SQLite:
(1)创建和打开数据库可以使用方法openOrCreateDatabase,它会自动去检测是否存在数据库,如果存在则打开,如果不存在则创建一个数据库;成功返回一个SQliteDatabase对象。(2)创建一张表通过SQL语句实现,调用sqliteDatabase对象的execSQL方法,执行创建表的SQL语句。
(3)向数据表中添加一条记录可以直接通过SQL语句实现,也可以使用ContentValue对象,ContentValue对象是一个Map,Key是字段名,Value是值。Cv.put(key,value);然后调用sqliteDatabase对象的
insert(tableName,null,cv)方法插入数据。
(4)删除数据可以直接执行SQL,也可以执行sqliteDatabase的delete方法。
(5)同理修改数据也是执行SQL或调用update方法,需要传入ContenValue的对象表示修改的内容。
(6)关闭数据库sqliteDatabase.close();
(7)删除指定表调用SQL语句即可。
(8)查询:在Android中查询数据是通过Cursor类来实现的,当我们使用SQLiteDatabase.query()方法时,会得到一个Cursor对象,Cursor对象指向的是每条数据。例如cur.moveToFirst();cur.moveToNext();等。在实际开发中,为了能够更好地管理和维护数据库,我们会封装一个继承自SQLiteOpenHelper类的数据库操作类。SQLiteOpenHelper的构造方法中分别需要传入Context、数据库名称、CursorFactory(一般默认null)、数据库版本号。在SQLiteOpenHelper中首先执行的是onCreate方法(当数据库第一次被创建时)。在构造函数中并没有真正创建数据库,而是调用getWriteableDatabase或者getReadableDatabase方法时才真正去创建数据库,并且返回一个SQLiteDatabase对象。

如何在 Android 应用程序的 SQLite 中创建排序规则?

【中文标题】如何在 Android 应用程序的 SQLite 中创建排序规则?【英文标题】:How to create a collation in SQLite in an Android app? 【发布时间】:2016-07-08 22:33:13 【问题描述】:

我正在尝试在我的 Android 应用中模拟以下语句:

db collate """ [list string compare -nocase]

do_execsql_test 6.5 
  PRAGMA foreign_keys = ON;
  CREATE TABLE p1(a PRIMARY KEY COLLATE '"""');
  CREATE TABLE c1(x, y REFERENCES p1);
 

参考 SQLite 代码库中的提交:https://www.sqlite.org/src/info/eddc05e7bb31fae7

我不确定如何创建上面代码中提到的名为“””的排序规则。甚至可以在 Android 应用中执行吗?

相关问题:Android: Custom collation in SQLite

【问题讨论】:

嘿,你做到了吗? 【参考方案1】:

Android SQLite Java API 不公开functions for creating collation sequences。要在 Android 应用中执行此操作,您必须使用 NDK 和 sqlite C 库。

(我不确定您通过在应用程序中运行 sqlite 库内部测试真正想要实现什么。)

【讨论】:

您能建议我如何在 NDK 中创建上述特定排序规则吗?我有一个奇怪的要求来做同样的事情(db collat​​e """ [list string compare -nocase])。我不太清楚“list string compare -nocase”在 SQLite 中的含义排序规则。是不是表示在比较列中的数据时,应该忽略大小写?

以上是关于如何在android自带的sqlite3中创建一个数据库文件,请大虾门详细指导的主要内容,如果未能解决你的问题,请参考以下文章

在sqlite3 python中创建一个表

使用在 Windows 中创建但要在 Android 中访问的 sqlite db

Android--SQLite应用

在 sqlite3 中创建表时出错

在 Visual Studios 中创建 sqlite3.lib 文件/使用 sqlite3 [关闭]

django 3.2-在 sqlite3 中创建超级用户时出错