android中SQLite的使用
来源:互联网 发布:关于来电软件 编辑:程序博客网 时间:2024/05/20 07:18
android的四大组件之一的contentprovider用来共享数据,很多应用的provider会继承它,例如MediaProvider。
在android中操作数据库要用到几个类:SQLiteDatabase、SQLiteOpenHelper。SQLitedatabase是一个数据库类,实例化生成数据库对象。使用时经常要用到助手类SQLiteOpenHelper。但SQLiteOpenHelper是抽象类,使用时需要继承然后实例化,一般会用DatabaseHelper继承SQLiteOpenHelper,override父类的回调函数。
SQLiteOpenHelper是用于创建数据库和管理版本的助手类,中有抽象方法onCreate()、onUpdate,加上onOpen,三个为回调函数,在某些时候会自动调用,需要子类override。例如创建时会调用onCreate。通过调用getReadableDatabase() 、getWriteableDatabase() 得到一个SQLitedatabase,进而对数据库进行增删改查。
SQLiteDatabase,管理数据库的外部方法的类。主要有创建、删除、执行SQL指令等方法,如close()关闭数据库,delete删除数据库的一行,execSQL执行SL指令,insert插入一行。。。
DatabaseHelper类,构造函数很重要。
创建一个数据库:new Databases()。此时并没有调用onCreate,而直到getReadableDatabase()后才返回一个SQLiteDatabase对象,即调用了onCreate。创建了的数据库对象放在/data/data/下,用命令sqlite3 database_name进入操作数据库模式,可以输入数据库语句进行操作。
当发现构造函数中版本信息发生变化时,自动调用onUpgrade进行升级。
对数据库进行写操作时,经常用到contentValue,
更新数据库就相当于执行update语句。database_name.update(table_name,contentValue_object,where)
查询query。要用到游标cursor。在使用cursor时,第一是不断地往下移动游标cursor.moveToNext(),第二是判断下一个记录是否为空(if (cursor == null))。要去某一个记录中某一列的数据,需要两步,cursor.getString(index), 而index通过getColumnIndex()获得。
小结:数据库是自己的弱项,在做多媒体时,总会遇到这样那样的数据库、MediaProvider问题,所以要好好重视一下。
在csdn贴子上又看到了这么一段挺精炼的解释:
什么是SQLiteDatabase?
一个SQLiteDatabase的实例代表了一个SQLite的数据库,通过SQLiteDatabase实例的一些方法,我们可以执行SQL语句,对数据库进行增、删、查、改的操作。需要注意的是,数据库对于一个应用来说是私有的,并且在一个应用当中,数据库的名字也是惟一的。
Content Provider:
一般是通过ContentResolver。你可以通过getContentResolver()从一个活动或其它应用程序组件的实现里获取一个ContentResolver:
查询一个内容提供器Querying a Content Provider
你需要三方面的信息来查询一个内容提供器:
•用来标识内容提供器的URI
•你想获取的数据字段的名字
•这些字段的数据类型
生成查询Making the query
你可以使用ContentResolver.query()方法或者Activity.managedQuery()方法来查询一个内容提供器。两种方法使用相同的参数序列,而且都返回一个Cursor对象
批量更新记录Batch updating records
要批量更新一组记录(例如,把所有字段中的"NY"改为"New York"),可以传以需要改变的列和值参数来调用ContentResolver.update()方法。
删除一个记录Deleting a record
要删除单个记录,可以传以一个特定行的URI参数来调用ContentResolver.delete()方法。
创建一个内容提供器Creating a Content Provider
要创建一个内容提供器,你必须:
•建立一个保存数据的系统。大多数内容提供器使用Android的文件储存方法或SQLite数据库来存放它们的数据,但是你可以用任何你想要的方式来存放数据。Android提供SQLiteOpenHelper类来帮助你创建一个数据库以及SQLiteDatabase类来管理它。
•扩展ContentProvider类来提供数据访问接口。
- android中sqlite的使用
- android中SQLite的使用
- android中SQLite的使用
- Android中SQLite的使用
- Android中SQLite的使用
- Android中SQlite的使用
- android中sqlite的使用
- Android中SQLite的使用
- Android中SQLite使用
- Android中SQLite使用
- Android中SQLite使用
- Android中SQLite使用
- Android中Sqlite使用
- Android中使用sqlite
- Android中SQLite的使用 快速入门SQLite
- Android中sqlite数据库的简单使用
- Android中Sqlite的简单使用
- Android数据库Sqlite中索引的使用
- 面试题
- MyEclipse打开JBPM processdefinition.xml时出现com/ibm/icu/text/Bidi错误
- 惠普中国CEO孙振耀退休感言
- ltrace, strace
- IOS开发UI篇之──自定义加载等待框(MBProgressHUD)
- android中SQLite的使用
- Intel与AMD CPU型号对照
- 两个Activities之间的数据传递问题解决1
- php文件上传代码
- 获取系统的软件安装信息
- lwip--有趣的数组定义(预处理) ——转
- [Android]RIL的启动流程
- apache php zend 设置
- multiprocessing 下水测试