Android数据库操作技巧应用

移动开发 Android
我们在这篇文章中为大家总结的Android数据库操作的方式都包括有:创建数据库;操作数据库;数据显示以及导出数据库等等。

Android这样一个开源的手机操作系统中,对于数据库的操作是不可避免而且非常重要的。在这里我们就为大家详细介绍一下Android数据库操作的一些基本应用技巧,以方便大家的学习。#t#

Android数据库操作1. 创建数据库

Android 提供了标准的数据库创建方式。继承SQLiteOpenHelper ,实现onCreate 和 onUpgrade 两个方法,有个好处就是便于数据库版本的升级。

 

  1. private static class DatabaseHelper extends SQLiteOpenHelper {  
  2. DatabaseHelper(Context context) {  
  3. super(context, DATABASE_NAME, null, DATABASE_VERSION);  
  4. }  
  5. @Override  
  6. public void onCreate(SQLiteDatabase db) {  
  7. }  
  8. @Override  
  9. public void onUpgrade(SQLiteDatabase db, int oldVersion,   
  10. int newVersion) {  
  11. }  

 

Android数据库操作2. 操作数据库

之前一直疑惑于一个功能操作是否要每次打开数据库完之后,要立即关闭数据库? 还是一个应用程序只开一次数据库,等到应用程序退出时再关闭数据库? 其中的顾虑在性能和多线程。 想到一个方法 ,将数据库操作类作为单件,将数据库的lock 设置为false. 关闭数据库的lock., 而在每一个Table的修改时加上相应的Table锁。

 

  1. public class WebViewDatabase {  
  2. public static synchronized WebViewDatabase getInstance(Context context) {   
  3. // use per table Mutex lock, turn off database lock, this  
  4. // improves performance as database's ReentrantLock is expansive  
  5. mDatabase.setLockingEnabled(false);  
  6. }  
  7. // synchronize locks  
  8. private final Object mHttpAuthLock = new Object();  
  9. public boolean hasHttpAuthUsernamePassword() {  
  10. synchronized (mHttpAuthLock) {  
  11. return hasEntries(TABLE_HTTPAUTH_ID);  
  12. }  
  13. }  

 

 

想想看,将将底层数据封装成ContentProvider, 供应用程序调用, 标准的做法,就是如果对ContentProvider不是很熟悉的话,就有点麻烦了。#t#

Android数据库操作3. 数据显示

Cursor前面说过,是一个指向数据源的随机迭代器显示数据。将View绑定到Cursor通常要设置这样几个参数。一个是每一行的样式,称作Row Layout,其实就是一个普通的Layout的XML文件。还有就是一个列和现实控件的对应关系。那个控件显示哪个列的值,这是需要配置的。为了定制一个良好的数据显示控件,最简单你可以定制很PP的Row Layout,复杂一点就是可以重载绑定控件View,或者是适配器ListAdapter。

要使用Cursor动态绑定View,每个表有一个_id列。

重新绑定Cursor, 并刷新页面

 

  1. Cursor.requery().  
  2. Adapter. notifyDataSetChanged(); 

 

 

想到一个问题,数据量非常大的时候,会不会出现内存不足的现象? Cursor是动态绑定View. 深入去看android的代码,CursorWindow 内部提供了Buffer, 供将数据库的数据拷贝到该Buffer. 作为View显示的缓冲区,其大小是有限的。根据V iew 的变化重新填充Buffer.

 

Android数据库操作4. 导出数据库

我们要查看手机的数据库内容,每次都要从手机导出,然后sqlite 工具查看。其实用adb shell sqlite直接查看手机的数据库, 在这抛砖引玉了,有志之人将其做一个工具,封装sqlite 语句,便可以直接操作手机数据库。

责任编辑:曹凯 来源: CSDN
相关推荐

2010-01-27 18:33:16

Android SQL

2011-03-23 15:22:47

PBSybase数据库

2011-02-25 15:31:19

MySQL数据库DBA

2011-03-10 11:17:03

数据库设计技巧

2010-02-04 17:42:15

Android数据库

2010-07-01 11:49:13

SQL Server

2010-05-21 16:33:02

MySQL数据库

2011-03-22 16:31:35

Access数据库

2010-08-18 11:06:23

连接DB2数据库

2010-08-09 12:56:11

2010-01-07 17:24:12

VB.NET连接数据库

2013-11-12 14:43:43

MySQL数据库

2010-03-03 17:56:44

Android应用程序

2010-11-29 11:51:59

Sybase数据库维护

2011-04-12 09:43:17

Sybase数据库修复技巧

2010-06-01 13:20:45

2010-06-01 10:47:21

连接MySQL数据库

2010-08-16 13:36:11

连接DB2数据库

2010-09-27 14:54:38

SQL数据库

2010-08-31 16:53:54

DHCP数据库
点赞
收藏

51CTO技术栈公众号