Android中对数据库进行条件查询

Android中对数据库进行条件查询,第1张

android读取数据库可以使用sqlite一些api进行读取,实例如下:

/**

*

查找一条数据

*

@param

uid

*/

public

user

find(integer

uid){

sqlitedatabase

db=dbopenhelper.getreadabledatabase()

//创建数据库辅助类

cursor

cursor

=db.rawquery("select

*

from

user

where

uid=?",

new

string[]{uid.tostring()})

//创建一个游标

if(cursor.movetofirst()){

//循环遍历查找数组

int

uid2=cursor.getint(cursor.getcolumnindex("uid"))

string

uname=cursor.getstring(cursor.getcolumnindex("uname"))

string

uaddress=cursor.getstring(cursor.getcolumnindex("uaddress"))

user

user=new

user()

user.setuid(uid2)

user.setuname(uname)

user.setuaddress(uaddress)

return

user

}

cursor.close()

return

null

}

Android读写数据库代码比较多,以下为基本步骤:

创建数据库,并读写</ol>创建一个名为Test的数据库,并返回一个SQLiteDatabase对象mSQLiteDatabasemSQLiteDatabase=this.openOrCreateDatabase("Test",MODE_PRIVATE,null)通过execSQL方法来执行一条SQL语句。String CREATE_TABLE="create table 表名(列名,列名,……)"mSQLiteDatabase.execSQL(CREATE_TABLE)

2.以使用insert方法来添加数据,但是insert方法要求把数据都打包到ContentValues中,ContentValues其实就是一个Map,Key值是字段名称,Value值是字段的值。通过ContentValues的put方法就可以把数据放到ContentValues对象中,然后插入到表中去。具体实现如下:<pre t="code" l="java">ContentValues cv=new ContentValues()

cv.put(TABLE_NUM,1)

cv.put(TABLE_DATA,"测试数据库数据")

mSQLiteDatabase.insert(Test,null,cv)

//同样可以使用execSQL方法来执行一条“插入“的SQL语句

String INSERT_DATA="insert into 表名(列名,……) values (值,……)"

mSQLiteDatabase.execSQL(INSERT_DATA)

3.创建TextView对象,并赋值TextView textView = (TextView) finadViewById(R.id.textView)textView.setTextView(text)

Android 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:

构造函数,调用父类 SQLiteOpenHelper 的构造函数

onCreate()方法;// TODO 创建数据库后,对数据库的 *** 作

onUpgrage()方法。// TODO 更改数据库版本的 *** 作

当你完成了对数据库的 *** 作(例如你的 Activity 已经关闭),需要调用 SQLiteDatabase 的 Close() 方法来释放掉数据库连接。

*** 作数据库的最佳实践是创建一个辅助类,例如联系人模块

class ContactsDatabaseHelper extends SQLiteOpenHelper

3.2 Cursor类

Android使用Cursor类返回一个需要的值,Cursor作为一个指针从数据库查询返回结果集,使用Cursor允许Android更有效地管理它们需要的行和列,你使用ContentValues对象存储键/值对,它的put()方法允许你插入不同数据类型的键值。

3.3 数据类型

SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入 INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。

四、数据库 *** 作

4.1创建和打开数据库

在Android中创建和打开一个数据库都可以使用openOrCreateDatabase方法来实现,因为它会自动去检测是否存在这个数据库,如果存在则打开,如果不存在则创建一个数据库:创建成功则返回一个SQLiteDatebase对象,否则抛出异常FileNotFoundException。

下面我们来创建一个名为Test的数据库,并返回一个SQLiteDatabase对象mSQLiteDatabase。

mSQLiteDatabase=this.openOrCreateDatabase("Test",MODE_PRIVATE,null)

4.2创建表

通过execSQL方法来执行一条SQL语句。

String CREATE_TABLE="create table 表名(列名,列名,……)"

mSQLiteDatabase.execSQL(CREATE_TABLE)

创建表的时候总要确定一个主键,这个字段是64位整型,别名_rowid。其特点就是自增长功能。当到达最大值时,会搜索该字段未使用的值(某些记录被删除_rowid会被回收),所以要唯一严格增长的自动主键必须加入关键字autoincrement。

4.3删除表

mSQLiteDatabase("drop table 表名")


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10040272.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存