Android 开发中使用 SQLite 数据库
- 格式:docx
- 大小:69.75 KB
- 文档页数:7
android sqlite3 sql select 用法
在 Android 开发中,可以使用 SQLite3 数据库,并通过 SQL 的`SELECT`语句来从数据库中获取数据。
以下是`SELECT`语句的基本用法:
```sql
SELECT column1, column2, ...
FROM table_name
WHERE condition;
```
其中:
- `column1, column2, ...`是你想要选择的列名,可以指定一个或多个列,用逗号分隔。
- `table_name`是要从中选择数据的表名。
- `WHERE condition`是可选的条件,用于筛选结果。
如果省略,则将返回表中的所有行。
例如,以下是一个简单的示例,选择名为`students`表中的所有列:
```sql
SELECT * FROM students;
```
如果你只想选择特定的列,可以这样做:
```sql
SELECT name, age FROM students;
```
还可以使用`WHERE`子句来添加条件:
```sql
SELECT * FROM students WHERE age > 18;
```
这将返回`students`表中`age`列大于 18 的所有行。
你可以根据自己的需求进行组合和扩展这些查询语句。
请注意,在实际使用中,还需要
考虑适当的错误处理和数据库操作的封装。
androidstudio数据库查询语句Android Studio是一种集成开发环境(IDE),用于开发Android应用程序。
在Android应用程序开发中,数据库查询是非常重要的一环。
本文将一步一步地回答关于Android Studio数据库查询语句的问题。
第一步:什么是数据库查询语句?数据库查询语句是一种用于从数据库中检索数据的命令。
它可以选择性地检索特定的数据,并可以对数据进行排序、过滤和聚合等操作。
数据库查询语句是通过使用SQL(结构化查询语言)编写的。
第二步:如何在Android Studio中执行数据库查询语句?在Android Studio中,可以使用SQLite数据库进行数据存储和查询。
SQLite 是一种轻量级的数据库引擎,适用于Android应用程序开发。
首先,在Android Studio中创建数据库。
可以使用SQLiteOpenHelper类来创建数据库和表,并在onCreate()方法中执行所需的数据库创建和初始化操作。
javapublic class DatabaseHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME = "mydatabase.db";private static final int DATABASE_VERSION = 1;public DatabaseHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)");}...}然后,在需要执行数据库查询语句的地方,获取一个可读的数据库实例,并使用rawQuery()方法执行查询语句。
SQLite 是Android 平台上的默认数据库管理系统,用于存储和检索数据。
以下是一些常用的SQLite 语句和操作:1. 创建数据库:sqlCREATE DATABASE [database_name];2. 打开数据库:如果你想在特定数据库上执行操作,你需要先打开它。
sqlATTACH DATABASE [database_name] AS [database_alias];3. 创建表:sqlCREATE TABLE [table_name] ([column1] [data_type],[column2] [data_type],...);4. 插入数据:sqlINSERT INTO [table_name] ([column1], [column2], ...)VALUES ([value1], [value2], ...);5. 查询数据:sqlSELECT FROM [table_name]; -- 选择所有列SELECT [column1], [column2] FROM [table_name]; -- 选择特定列6. 更新数据:sqlUPDATE [table_name]SET [column1] = [value1], [column2] = [value2], ...WHERE [condition];7. 删除数据:sqlDELETE FROM [table_name] WHERE [condition];8. 创建索引:创建索引可以加速查询速度。
sqlCREATE INDEX [index_name] ON [table_name] ([column1], [column2], ...);9. 创建触发器:触发器是与特定表相关联的特殊类型的存储过程,它自动执行特定操作。
例如,当向表中插入、更新或删除记录时,触发器可以自动执行。
10. 创建视图:视图是基于一个或多个表的虚拟表。
移动应用开发中的本地存储技术使用方法在移动应用开发中,本地存储技术是一项重要的技术,它允许应用在设备本地存储数据,以便用户离线时仍然能够访问和使用应用的功能。
本文将介绍几种常用的本地存储技术及其使用方法,以及一些注意事项。
一、SQLite数据库SQLite是一种轻量级的关系型数据库,广泛用于移动应用开发中的本地数据存储。
它具有快速、可靠以及跨平台的特点,适用于小型和中型的数据存储需求。
在使用SQLite时,首先需要创建数据库和表结构,然后通过SQL语句进行数据的插入、查询、更新和删除等操作。
在Android开发中,可通过SQLiteOpenHelper类创建和管理SQLite数据库。
首先,通过继承SQLiteOpenHelper类,重写onCreate()和onUpgrade()方法来创建和更新数据库。
然后,可以通过getWritableDatabase()方法获取可写的数据库对象,进而实现对数据库的操作。
二、SharedPreferencesSharedPreferences是Android系统提供的一种轻量级的存储机制,用于保存应用的配置数据或简单的键值对。
SharedPreferences存储的数据是以键值对的形式进行存储的,并且数据是持久化的,即使应用关闭后重新打开,数据依然可用。
在使用SharedPreferences时,首先需要获取SharedPreferences对象,可以通过getSharedPreferences()方法来实现。
然后,可以使用putXXX()方法向SharedPreferences写入数据,使用getXXX()方法来读取数据。
同时,需要注意数据的类型转换。
三、文件存储在移动应用开发中,文件存储也是一种常见的本地存储技术。
可以通过将数据保存到文件中,实现对大量数据的存储和读取。
文件存储可以分为内部存储和外部存储。
内部存储是应用私有的存储空间,只有应用自身可以访问,适用于存储一些敏感的数据。
Android 学习之SQLite 数据库存储•引⾔概念 SQLite 数据库,和其他的SQL 数据库不同, 我们并不需要在⼿机上另外安装⼀个数据库软件,Android 系统已经集成了这个数据库;特点SQLite 是⼀个轻量级的关系型数据库,运算速度快,占⽤资源少,很适合在移动设备上使⽤不仅⽀持标准SQL 语法,还遵循ACID(数据库事务)原则,⽆需账号,使⽤起来⾮常⽅便SQLite ⽀持五种数据类型NULLinteger (整型)real(浮点型)text(⽂本类型)blob(⼆进制类型)SQLite 通过⽂件来保存数据库⼀个⽂件就是⼀个数据库数据库中⼜包含多个表格表格⾥⼜有多条记录每条记录由多个字段构成每个字段都有对应的值•创建数据库 Android 为了让我们能够更加⽅便地管理数据库,专门提供了⼀个 SQLiteOpenHelper 帮助类; 借助这个类就可以⾮常简单地对数据库进⾏创建和升级。
SQLiteOpenHelper 是⼀个抽象类,这意味着如果我们想要使⽤它的话,就需要创建⼀个⾃⼰的帮助类去继承它; SQLiteOpenHelper 中有两个抽象⽅法,分别是 和 ;: 数据库第⼀次被创建时被调⽤: 在数据库的版本发⽣变化时会被调⽤⼀般在软件升级时才需改变版本号,⽽数据库的版本是由程序员控制的假设数据库现在的版本是 1,由于业务的变更,修改了数据库表结构,这时候就需要升级软件,升级软件时希望更新⽤户⼿机⾥的数据库表结构为了实现这⼀⽬的,可以把原来的数据库版本设置为 2,或者其他与旧版本号不同的数字即可 我们必须在⾃⼰的帮助类⾥⾯重写这两个⽅法,然后分别在这两个⽅法中去实现 创建、升级数据库 的逻辑。
SQLiteOpenHelper 中还有两个⾮常重要的实例⽅法: 和 。
这两个⽅法都可以 创建或打开 ⼀个现有的数据库(如果数据库已存在则直接打开,否则创建⼀个新的数据库), 并返回⼀个可对数据库进⾏读写操作的对象。
在Android应用中利用SQLite进行本地数据库操作随着移动应用的不断发展,电子设备成为人们生活中不可或缺的一部分。
而Android操作系统作为最广泛使用的移动操作系统之一,它提供了强大的开发平台,为开发者们提供了各种各样的开发工具和API。
其中,SQLite作为Android应用中的一种轻量级数据库管理系统,被广泛应用于数据存储和管理。
本文将介绍在Android应用中通过SQLite实现本地数据库操作的方法。
1. 简介SQLite是一种无服务器的自包含的数据库引擎,它在Android操作系统中作为默认的关系型数据库引擎。
它无需独立的服务器进程,将数据库引擎与应用程序合并在一起,使得应用程序可以直接操作数据库。
SQLite在移动设备上非常流行,因为它占用的磁盘空间相对较少,并且提供了性能高效的操作方式。
2. 创建数据库在Android应用中使用SQLite进行本地数据库操作,首先需要创建一个数据库。
Android提供了SQLiteOpenHelper类来管理数据库的创建和升级。
在创建数据库之前,首先需要定义数据库的结构,包括表的结构和字段信息。
接着,通过继承SQLiteOpenHelper类,重写onCreate()方法和onUpgrade()方法,可以自动创建数据库和升级数据库。
3. 创建表使用SQLite进行本地数据库操作时,需要在数据库中创建表来存储数据。
通过执行SQL语句,可以在数据库中创建表以及定义表中的字段信息。
SQLite支持多种数据类型,包括整型、浮点型、文本型等。
通过在SQL语句中指定字段的名称和类型,可以创建适合应用需求的表。
4. 插入数据插入数据是在数据库中进行本地数据库操作的常见操作之一。
通过执行SQL 语句的INSERT INTO语句,可以将数据插入到数据库的表中。
通过使用ContentValues类,可以方便地设置插入数据的字段值。
通过调用SQLiteDatabase 类的insert()方法,可以执行插入数据的操作。
简述android中的存储方式及特点《Android中的存储方式及特点》Android中提供了多种不同的存储方式,用来满足不同应用程序的需求。
每种存储方式都有其独特的特点和适用场景。
以下将简述几种常用的存储方式及其特点。
1. SharedPreferences(共享首选项)SharedPreferences是Android提供的一种简单的键值对存储机制。
它适用于存储简单的配置信息,如用户的设置偏好、应用程序的状态等。
SharedPreferences存储方式简单高效,数据以XML形式存储在用户手机的文件系统中,但其容量有限,不适用于大量数据的存储。
2. 文件存储Android中的文件存储方式可以通过File类来实现。
文件存储适用于需要保存较大数据的情况,如日志文件、图片、音频等。
文件存储方式具有较高的灵活性和可扩展性,但需要手动处理文件读写的逻辑,并且需要权限管理。
3. 数据库存储(SQLite)Android提供了SQLite数据库作为持久化数据的存储方式。
SQLite是一种轻量级数据库引擎,适用于存储结构化数据。
它提供了SQL语句来进行数据的增删改查操作,并支持事务处理。
SQLite存储方式可以对数据进行高效的查询和排序,但相对于其他存储方式,其使用上稍微复杂些。
4. ContentProviderContentProvider是一种Android特有的存储方式,用于实现不同应用程序之间的数据共享。
通过ContentProvider,应用程序可以将自己的数据暴露给其他应用程序,并提供标准的CRUD(创建、读取、更新、删除)操作。
ContentProvider可以保护数据的安全性,并提供对外的数据访问接口。
5. 网络存储随着云服务的普及,Android中也提供了网络存储的方式。
通过网络存储,应用程序可以将数据存储在云端服务器上,实现数据的远程访问和共享。
网络存储方式需要考虑网络连接稳定性和数据安全性的问题,同时也需要对服务器端进行相应的开发。
android sqlite query方法在Android开发中,使用SQLite数据库进行查询是一个常见的操作。
下面是一个简单的例子,展示如何在Android中执行一个SQLite查询:1. 创建数据库助手类:首先,你需要创建一个帮助类来管理你的数据库。
这个类通常会包含创建数据库、打开数据库和执行查询的方法。
2. 定义表格:在数据库中定义一个表格。
例如,你可以创建一个名为`Users`的表格,其中包含`id`, `name`, 和`age`字段。
3. 执行查询:使用`SQLiteDatabase`的`query`方法来执行查询。
这个方法需要指定表名、列名、筛选条件等。
4. 处理结果:查询结果通常会返回一个`Cursor`对象。
你可以遍历这个对象来获取查询到的数据。
下面是一个示例代码,展示如何在Android中执行一个简单的SQLite查询:```javaimport ;import ;import ;import ;import ;public class DatabaseHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME = "";private static final int DATABASE_VERSION = 1;private static final String TABLE_NAME = "Users";private static final String COLUMN_ID = "id";private static final String COLUMN_NAME = "name";private static final String COLUMN_AGE = "age";private static final String COLUMN_CREATED_AT = "created_at";public DatabaseHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION); }Overridepublic void onCreate(SQLiteDatabase db) {String createTableQuery = "CREATE TABLE " + TABLE_NAME + " (" +COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +COLUMN_NAME + " TEXT, " +COLUMN_AGE + " INTEGER, " +COLUMN_CREATED_AT + " DATETIME DEFAULT CURRENT_TIMESTAMP" +");";(createTableQuery);}Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {("DROP TABLE IF EXISTS " + TABLE_NAME);onCreate(db);}public void addUser(String name, int age) {SQLiteDatabase db = ();ContentValues contentValues = new ContentValues();(COLUMN_NAME, name);(COLUMN_AGE, age);(TABLE_NAME, null, contentValues);();}public Cursor getUsers() {SQLiteDatabase db = ();String selectQuery = "SELECT FROM " + TABLE_NAME;Cursor cursor = (TABLE_NAME, null, null, null, null, null, null); return cursor;}}```在上面的代码中,我们定义了一个`DatabaseHelper`类,它包含了创建数据库、添加用户和查询用户的方法。
android sqlite 插入数据的方法在 Android 中使用 SQLite 数据库进行数据插入的方法如下: 1. 创建一个继承自 `SQLiteOpenHelper` 的数据库辅助类,用于创建和管理数据库以及表结构。
在该类中,需要实现 `onCreate()` 方法来创建数据库和表,以及 `onUpgrade()` 方法来处理数据库版本升级。
```javapublic class DBHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME = "mydatabase.db";private static final int DATABASE_VERSION = 1;public DBHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION); }@Overridepublic void onCreate(SQLiteDatabase db) {// 创建表结构String createTableQuery = "CREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT)";db.execSQL(createTableQuery);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// 处理数据库版本升级if (oldVersion < 2) {// 执行相应的更新操作}}}```2. 在需要插入数据的地方,获取可写入的数据库实例,并使用`insert()` 方法插入数据。
```javaDBHelper dbHelper = new DBHelper(context);SQLiteDatabase db = dbHelper.getWritableDatabase();ContentValues values = new ContentValues();values.put("name", "John Doe");long newRowId = db.insert("mytable", null, values);if (newRowId != -1) {// 插入成功} else {// 插入失败}db.close();```在上述代码中,我们首先实例化了 `DBHelper` 类,并获取了可写入的数据库实例。
AndroidKotlin使⽤SQLite案例详解Kotlin使⽤SQLite⾸先确定我们的⽬标,SQLite只是⼀种⼯具,我们需要掌握就是增删改查就可以,我们真正需要动脑的还是项⽬中的业务逻辑。
我这篇⽂章写得⽐较适合新⼿,没⽤过SQLite的同学。
前期准备⼯作新建⼀个类MyDataBaseHelper继承⾃SQLiteOpenHelper,代码如下:class MyDatabaseHelper(var context: Context, name: String, version: Int) :SQLiteOpenHelper(context, name, null, version) {public var createBook="create table Book (" +"id integer primary key autoincrement," +"author text," +"price real," +"pages integer," +"name text)"override fun onCreate(db: SQLiteDatabase?) {// 下⾯这个todo 如果不注释掉的话就会报错。
// TODO("not implemented") //To change body of created functions use File | Settings | File Templates.db?.execSQL(createBook)Toast.makeText(context,"Create Successed",Toast.LENGTH_LONG).show()}override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {// TODO("not implemented") //To change body of created functions use File | Settings | File Templates.db?.execSQL("drop table if exists Book")onCreate(db)}}对数据进⾏操作操作⽐较简单,下⾯直接看代码:Activity中class MySQLite : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(yout.activity_my_sqlite)val dbHelper=MyDatabaseHelper(this,"BookStore.db",1)/*** 创建表*/btnCreateDataBase.setOnClickListener {dbHelper.writableDatabase}/*** 添加数据*/btnAddData.setOnClickListener {val db=dbHelper.writableDatabaseval Values1=ContentValues().apply {// 第⼀条数据put("name","The Da Vinci Code")put("author","Dan Broen")put("pages",454)put("price",16.96)}db.insert("Book",null,Values1)val values2=ContentValues().apply {// 第⼆条数据put("name","The Lost Symbol")put("author","Dan Brown")put("pages",510)put("price",19.95)}db.insert("Book",null,values2)}btnUpdateData.setOnClickListener {val db=dbHelper.writableDatabaseval values=ContentValues()values.put("price",10.99)db.update("Book",values,"name=?", arrayOf("The Da Vinci Code"))}btnDeleteData.setOnClickListener {val db=dbHelper.writableDatabasedb.delete("Book","pages>?", arrayOf("500"))}btnQueryData.setOnClickListener {val db=dbHelper.writableDatabase// 查询Book表中所有数据// 这⾥获取到是Cursor对象val cursor=db.query("Book",null,null,null,null,null,null)if (cursor.moveToFirst()){do {val name=cursor.getString(cursor.getColumnIndex("name"))val author=cursor.getString(cursor.getColumnIndex("author"))val pages=cursor.getString(cursor.getColumnIndex("pages"))val price=cursor.getString(cursor.getColumnIndex("price"))Log.d("MainActivity","book name is $name")Log.d("MainActivity","author is $author")Log.d("MainActivity","pages is $pages")Log.d("MainActivity","price is $price")}while (cursor.moveToNext())}cursor.close()}}}布局⽂件<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="/apk/res/android" xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".sqlite.MySQLite"><Buttonandroid:id="@+id/btnCreateDataBase"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="CreateDataBase"android:textAllCaps="false"app:layout_constraintTop_toTopOf="parent" /><Buttonandroid:id="@+id/btnAddData"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="AddData"android:textAllCaps="false"app:layout_constraintTop_toBottomOf="@+id/btnCreateDataBase" /><Buttonandroid:id="@+id/btnUpdateData"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="UpdateData"android:textAllCaps="false"app:layout_constraintTop_toBottomOf="@+id/btnAddData" /><Buttonandroid:id="@+id/btnDeleteData"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="DeleteData"app:layout_constraintTop_toBottomOf="@+id/btnUpdateData" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/btnQueryData"android:text="Query Data"android:textAllCaps="false"app:layout_constraintTop_toBottomOf="@+id/btnDeleteData"/></androidx.constraintlayout.widget.ConstraintLayout>到此这篇关于Android Kotlin使⽤SQLite案例详解的⽂章就介绍到这了,更多相关Android Kotlin使⽤SQLite内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
Android 开发中使用SQLite 数据库SQLite 介绍SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。
此外它还是开源的,任何人都可以使用它。
许多开源项目((Mozilla, PHP, Python)都使用了 SQLite.SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。
SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。
图 1. SQLite 内部结构SQLite 基本上符合 SQL-92 标准,和其他的主要 SQL 数据库没什么区别。
它的优点就是高效,Android 运行时环境包含了完整的 SQLite。
SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。
当某个值插入数据库时,SQLite 将检查它的类型。
如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。
如果不能转换,则该值将作为其本身具有的类型存储。
比如可以把一个字符串(String)放入 INTEGER 列。
SQLite 称这为“弱类型”(manifest typing.)。
此外,SQLite 不支持一些标准的 SQL 功能,特别是外键约束(FOREIGN KEY constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FULL OUTER JOIN, 还有一些 ALTER TABLE 功能。
除了上述功能外,SQLite 是一个完整的 SQL 系统,拥有完整的触发器,交易等等。
Android 集成了 SQLite 数据库Android 在运行时(run-time)集成了 SQLite,所以每个 Android 应用程序都可以使用SQLite 数据库。
对于熟悉 SQL 的开发人员来时,在 Android 开发中使用 SQLite 相当简单。
但是,由于 JDBC 会消耗太多的系统资源,所以 JDBC 对于手机这种内存受限设备来说并不合适。
因此,Android 提供了一些新的 API 来使用 SQLite 数据库,Android 开发中,程序员需要学使用这些 API。
数据库存储在 data/< 项目文件夹 >/databases/ 下。
Android 开发中使用 SQLite 数据库Activites 可以通过 Content Provider 或者 Service 访问一个数据库。
下面会详细讲解如果创建数据库,添加数据和查询数据库。
创建数据库Android 不自动提供数据库。
在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。
Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。
SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。
SQLiteOpenHelper 的子类,至少需要实现三个方法:∙构造函数,调用父类 SQLiteOpenHelper 的构造函数。
这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。
∙onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。
∙onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。
下面示例代码展示了如何继承 SQLiteOpenHelper 创建数据库:public class DatabaseHelper extends SQLiteOpenHelper {DatabaseHelper(Context context, String name, CursorFactory cu version){super(context, name, cursorFactory, version);}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO 创建数据库后,对数据库的操作}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersi {// TODO 更改数据库版本的操作}@Overridepublic void onOpen(SQLiteDatabase db) {super.onOpen(db);// TODO 每次成功打开数据库后首先被执行}}接下来讨论具体如何创建表、插入数据、删除表等等。
调用 getReadableDatabase() 或getWriteableDatabase() 方法,你可以得到 SQLiteDatabase 实例,具体调用那个方法,取决于你是否需要改变数据库的内容:db=(new DatabaseHelper(getContext())).getWritableDatabase();return (db == null) ? false : true;上面这段代码会返回一个 SQLiteDatabase 类的实例,使用这个对象,你就可以查询或者修改数据库。
当你完成了对数据库的操作(例如你的 Activity 已经关闭),需要调用 SQLiteDatabase的 Close() 方法来释放掉数据库连接。
创建表和索引为了创建表和索引,需要调用 SQLiteDatabase 的 execSQL() 方法来执行 DDL 语句。
如果没有异常,这个方法没有返回值。
例如,你可以执行如下代码:db.execSQL("CREATE TABLE mytable (_id INTEGER PRIMARY KEYAUTOINCREMENT, title TEXT, value REAL);");这条语句会创建一个名为 mytable 的表,表有一个列名为 _id,并且是主键,这列的值是会自动增长的整数(例如,当你插入一行时,SQLite 会给这列自动赋值),另外还有两列:title( 字符 ) 和 value( 浮点数 )。
SQLite 会自动为主键列创建索引。
通常情况下,第一次创建数据库时创建了表和索引。
如果你不需要改变表的 schema,不需要删除表和索引 . 删除表和索引,需要使用 execSQL() 方法调用 DROP INDEX 和 DROP TABLE 语句。
给表添加数据上面的代码,已经创建了数据库和表,现在需要给表添加数据。
有两种方法可以给表添加数据。
像上面创建表一样,你可以使用 execSQL() 方法执行 INSERT, UPDATE, DELETE 等语句来更新表的数据。
execSQL() 方法适用于所有不返回结果的 SQL 语句。
例如:db.execSQL("INSERT INTO widgets (name, inventory)"+ "VALUES ('Spr另一种方法是使用 SQLiteDatabase 对象的 insert(), update(), delete() 方法。
这些方法把 SQL 语句的一部分作为参数。
示例如下:ContentValues cv=new ContentValues();cv.put(Constants.TITLE, "example title");cv.put(Constants.VALUE, SensorManager.GRAVITY_DEATH_STAR_I);db.insert("mytable", getNullColumnHack(), cv);update()方法有四个参数,分别是表名,表示列名和值的 ContentValues 对象,可选的 WHERE 条件和可选的填充 WHERE 语句的字符串,这些字符串会替换 WHERE 条件中的“?”标记。
update() 根据条件,更新指定列的值,所以用 execSQL() 方法可以达到同样的目的。
WHERE 条件和其参数和用过的其他 SQL APIs 类似。
例如:String[] parms=new String[] {"this is a string"};db.update("widgets", replacements, "name=?", parms);delete() 方法的使用和 update() 类似,使用表名,可选的 WHERE 条件和相应的填充WHERE 条件的字符串。
查询数据库类似 INSERT, UPDATE, DELETE,有两种方法使用 SELECT 从 SQLite 数据库检索数据。
1 .使用 rawQuery() 直接调用 SELECT 语句;使用 query() 方法构建一个查询。
Raw Queries正如 API 名字,rawQuery() 是最简单的解决方法。
通过这个方法你就可以调用 SQL SELECT 语句。
例如:Cursor c=db.rawQuery("SELECT name FROM sqlite_master WHERE type='table' AND name='m在上面例子中,我们查询 SQLite 系统表(sqlite_master)检查 table 表是否存在。
返回值是一个 cursor 对象,这个对象的方法可以迭代查询结果。
如果查询是动态的,使用这个方法就会非常复杂。
例如,当你需要查询的列在程序编译的时候不能确定,这时候使用 query() 方法会方便很多。
Regular Queriesquery() 方法用 SELECT 语句段构建查询。
SELECT 语句内容作为 query() 方法的参数,比如:要查询的表名,要获取的字段名,WHERE 条件,包含可选的位置参数,去替代 WHERE 条件中位置参数的值,GROUP BY 条件,HAVING 条件。
除了表名,其他参数可以是 null。
所以,以前的代码段可以可写成:String[] columns={"ID", "inventory"};String[] parms={"snicklefritz"};Cursor result=db.query("widgets", columns, "name=?",parms, null, 使用游标不管你如何执行查询,都会返回一个 Cursor,这是 Android 的 SQLite 数据库游标,使用游标,你可以:通过使用 getCount() 方法得到结果集中有多少记录;通过 moveToFirst(), moveToNext(), 和 isAfterLast() 方法遍历所有记录;通过 getColumnNames() 得到字段名;通过 getColumnIndex() 转换成字段号;通过 getString(),getInt() 等方法得到给定字段当前记录的值;通过 requery() 方法重新执行查询得到游标;通过 close() 方法释放游标资源;例如,下面代码遍历 mytable 表Cursor result=db.rawQuery("SELECT ID, name, inventory FROM mytabl result.moveToFirst();while (!result.isAfterLast()) {int id=result.getInt(0);String name=result.getString(1);int inventory=result.getInt(2);// do something useful with theseresult.moveToNext();}result.close();在 Android 中使用 SQLite 数据库管理工具在其他数据库上作开发,一般都使用工具来检查和处理数据库的内容,而不是仅仅使用数据库的 API。