`
407827531
  • 浏览: 1061069 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

SQLiteOpenHelper 数据库存储

 
阅读更多

推荐安卓开发神器(里面有各种UI特效和android代码库实例)

SQLiteOpenHelper封装
继承SQLiteOpenHelper类,在构造方法中分别需要传入Context,数据库名称,CursorFactory(一般传入null,为默认数据库),数据库版本号(不能为负数)。在SQLiteOpenHelper中首先执行的是onCreate方法(当shujk第一次被创建时)。在构造函数时并没有真正创建数据库,而在调用getWritableDatabase或者getReadableDatabase方法时才真正去创建数据库,返回一个SQLiteDatabase对象。

public class MyDataBaseAdapter {    // 用于打印log   
private static final String TAG = "MyDataBaseAdapter";     
// 表中一条数据的名称   
 public static final String KEY_ID = "_id";    
 // 表中一条数据的内容   
 public static final String KEY_NUM = "num";    
// 表中一条数据的id    
public static final String KEY_DATA = "data";    
 // 数据库名称为data    
private static final String DB_NAME= "Examples_06_06.db";             
// 数据库表名    
private static final String DB_TABLE = "table1";             
// 数据库版本    
private static final int DB_VERSION = 1;     
// 本地Context对象    
private Context mContext = null;             
//创建一个表    
private static final String DB_CREATE = "CREATE TABLE " + DB_TABLE + " (" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NUM + " INTERGER,"+ KEY_DATA + " TEXT)";     
// 执行open()打开数据库时,保存返回的数据库对象    
private SQLiteDatabase mSQLiteDatabase = null;     
// 由SQLiteOpenHelper继承过来    
private DatabaseHelper mDatabaseHelper = null;    
                  
private static class DatabaseHelper extends SQLiteOpenHelper{        
/* 构造函数-创建一个数据库 */       
DatabaseHelper(Context context){          
 //当调用getWritableDatabase()           
//或 getReadableDatabase()方法时          
//则创建一个数据库          
super(context, DB_NAME, null, DB_VERSION);      
 }        
/* 创建一个表 */       
@Override       
public void onCreate(SQLiteDatabase db){           
// 数据库没有表时创建一个          
db.execSQL(DB_CREATE);       
}        
/* 升级数据库 */       
@Override       
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){          
 db.execSQL("DROP TABLE IF EXISTS notes");         
 onCreate(db);       
}    
}             
/* 构造函数-取得Context */    
public MyDataBaseAdapter(Context context){          
 mContext = context;    
}      
// 打开数据库,返回数据库对象    
public void open() throws SQLException{    
      
 mDatabaseHelper = new DatabaseHelper(mContext);
mSQLiteDatabase = mDatabaseHelper.getWritableDatabase();   
 }      
// 关闭数据库    
public void close(){           
mDatabaseHelper.close();    
}    
 /* 插入一条数据 */   
 public long insertData(int num, String data){ 
  
ContentValues initialValues = new ContentValues();  
initialValues.put(KEY_NUM, num);          
initialValues.put(KEY_DATA, data);           
return mSQLiteDatabase.insert(DB_TABLE, KEY_ID, initialValues);    
}     
/* 删除一条数据 */    
public boolean deleteData(long rowId){ 
          
return mSQLiteDatabase.delete(DB_TABLE, KEY_ID + "=" + rowId, null) > 0;    
}     
/* 通过Cursor查询所有数据 */    
public Cursor fetchAllData(){      
     
return mSQLiteDatabase.query(DB_TABLE, new String[] { KEY_ID, KEY_NUM, KEY_DATA }, null, null, null, null, null);    
}     
/* 查询指定数据 */   
 public Cursor fetchData(long rowId) throws SQLException{ 
Cursor mCursor = mSQLiteDatabase.query(true, DB_TABLE, new String[] { KEY_ID, KEY_NUM, KEY_DATA }, KEY_ID + "=" + rowId, null, null, null, null, null);        
if (mCursor != null){          
 mCursor.moveToFirst();       
}       
return mCursor;     
}     
/* 更新一条数据 */    
public boolean updateData(long rowId, int num, String data){  
ContentValues args = new ContentValues();      
 args.put(KEY_NUM, num);      
 args.put(KEY_DATA, data);        
return mSQLiteDatabase.update(DB_TABLE, args, KEY_ID + "=" + rowId, null) > 0;    
}         
 }

 

分享到:
评论
3 楼 kaiwangkuaile 2011-08-29  
那在这个基础上怎么写content provider呢?还是content provider就不用根据它写?
2 楼 407827531 2011-08-24  
kaiwangkuaile 写道
这样做有什么好处?其目的是什么?
在这个的基础上怎么写content Provider?

可以共享应用数据,监听数据库变化
1 楼 kaiwangkuaile 2011-08-24  
这样做有什么好处?其目的是什么?
在这个的基础上怎么写content Provider?

相关推荐

    在android studio中用SQLiteOpenHelper()方法建立数据库

    今天我们讲讲在android studio中利用数据库存储中的SQLiteOpenHelper()方法建立数据库 SQLiteOpenHelper中需要重载函数: onCreate( ):利用SQL语句,在系统中创建数据库(表)功能 onUpgrade( ):利用SQL语句,在...

    android studio使用SQLiteOpenHelper()建立数据库的方法

    今天我们讲讲在android studio中利用数据库存储中的SQLiteOpenHelper()方法建立数据库 SQLiteOpenH elper中需要重载函数: onCreate( ):利用SQL语句,在系统中创建数据库(表)功能 onUpgrade( ):利用SQL语句,...

    Android课程试验报告-实现数据库存储.docx

    1.建立DbHelper类: ...import android.database.sqlite.SQLiteOpenHelper; public class DbHelper extends SQLiteOpenHelper { public DbHelper(Context context, String name, CursorFactory factory,

    android新手数据之SQLite数据库存储

    创建SQliteOpenHelper的派生类 使用创建的类生成数据库,并插入一条记录 创建一个Activity,添加一个EditText和四个Button,分别实现增、删、改、查功能

    SQLiteOpenHelper

    SQLiteOpenHelper的基本使用demo

    Android SQLite数据库存储

     Android为了让我们更加方便的管理数据库,专门提供了SQLiteOpenHelper帮助类,借助这个类可以简单的对数据库进行创建和升级。 下面介绍一下SQLiteOpenHelper:(扩展知识) SQLiteOpenHelper类介绍 定义:...

    安卓Android sqlite万能数据库

    安卓里常用的存储有方法中少不了数据库的使用,主要是对单表的操作,多表的操作此处不涉及。 每次使用数据库都会有繁琐的代码要写,大致思路是继承自SQLiteOpenHelper写一个数据库操作子类,然后重写onCreate方法,写...

    基于Android如何实现将数据库保存到SD卡

    有时候为了需要,会将数据库保存到外部存储或者SD卡中(对于这种情况可以通过加密数据来避免数据被破解),比如一个应用支持多个数据,每个数据都需要有一个对应的数据库,并且数据库中的信息量特别大时,这显然更...

    android 中 SQLiteOpenHelper的封装使用详解

    在android中常用存储数据的基本就三种,sqlite,SharedPreferences,文件存储,其中针对于对象存储,使用sqlite比较多,因为可以对其进行增删改查。本文主要讲解SQLiteOpenHelper的封装使用,代码引用自...

    android之利用SQLite实现登陆和注册

    android之利用SQLite数据库实现登陆和注册,使用SQLiteOpenHelper抽象类建立数据库,建立数据库类DatabaseHelper,写业务类实现查询和插入

    Android项目设计与开发:SQLite 1.ppt

    嵌入式Android项目设计与开发 第六章 数据存储 ——SQLite 1 SQLite 概念: SQLite是一款轻量级的关系型数据库,它的运算效率高,占用资源少,因此比较适合在移动设备上使用。 SQLite Android为了让我们更加方便地...

    Android创建和使用数据库详细指南.doc

    数据库支持每个应用程序无论大小的生命线,除非你的应用程序只处理简单的数据,那么就需要一个数据库系统存储你的结构化数据,Android使用SQLite数据库,它是一个开源的、支持多操作系统的SQL数据库,在许多领域广泛...

    Kotlin实现简单的学生信息管理系统,SQLite数据库,增删改查

    根据Android数据存储的内容,综合应用SharedPreferences和SQLite数据库实现一个用户信息管理系统,强化对SharedPreferences的理解的使用,熟练掌握SQLite的操作。...4. 掌握SQLite数据库及SQLiteOpenHelper的使用。

    Android数据库实验.docx

    实验项目:Android数据库实验 一、实验目的 1、理解Android中常用的数据存储方式及各自特点; 2、掌握Sqlite数据库的相关操作; 3、掌握编程访问Sqlite数据库的方法; 二、实验原理 1、数据存储方式:...

    Android数据持久化之SQLite数据库用法分析

    1、SQLiteOpenHelper:创建数据库和数据库版本管理的辅助类,该类是一个抽象类,所以我们一般都有一个子类SQLiteOpenHelper,需要继承实现的方法主要有onCreate()、onUpgrade()、getWritableDatabase()等。...

    详解Android轻量型数据库SQLite

    数据库是Android存储方案的核心,在Andorid中SQLite非常轻量,而且执行sql语句甚至比MySQL还要快。 SQLiteDatabase 是 Android 中操作数据库的核心类之一,使用SQLiteDatabase可以打开数据库,也可以对数据库进行...

    android应用安全——数据安全

    数据安全包含数据库数据安全、SD卡数据(外部存储)安全、RAM数据(内部存储)安全。android中操作数据库可使用SQLiteOpenHelper或ContentProvider的方式。  数据安全包含数据库数据安全、SD卡数据(外部存储)安全、RAM...

    sqlite-open-helper:基于资产SQL脚本SQLiteOpenHelper

    DatabaseOpenHelper是一个SQLiteOpenHelper类,它使用 SQL 资产脚本来创建/更新 Android 数据库。 SQL 脚本必须存储在/assets/db/migrate_VERSION.sql文件中,其中VERSION是每个脚本迁移到的版本。 负责创建数据库...

    【android编程】第十一讲-数据储存

    使用SharedPreferences示例2.SQLite数据库编程SQLiteOpenHelper类 常用方法自定义数据库子类(继承 SQLiteOpenHelper 类)创建数据库:getWritableDatabase()、getReadableDatabase()操作数据库(增、删、查、改...

Global site tag (gtag.js) - Google Analytics