Android中sqlite数据库的简单使用

摘要:每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库--SQLite,本文介绍的就是如何为你的Android应用程序创建和操作SQLite数据库。

数据库支持每个应用程序无论大小的生命线,除非你的应用程序只处理简单的数据,那么就需要一个数据库系统存储你的结构化数据,Android使用SQLite数据库,它是一个开源的、支持多操作系统的SQL数据库,在许多领域广泛使用,如Mozilla FireFox就是使用SQLite来存储配置数据的,iPhone也是使用SQLite来存储数据的。
在Android中,你为某个应用程序创建的数据库,只有它可以访问,其它应用程序是不能访问的,数据库位于Android设备/data/data//databases文件夹中,在这篇文章中,你将会学习到如何在Android中创建和使用数据库。

Android如何使用SQLiteOpenHelper
•1.SQLiteOpenHelper
•  SQliteOpenHelper是一个抽象类,来管理数据库的创建和版本的管理。要使用它必须实现它的nCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase, int, int)方法
•  onCreate:当数据库第一次被建立的时候被执行,例如创建表,初始化数据等。
•  onUpgrade:当数据库需要被更新的时候执行,例如删除久表,创建新表。
2.实现代码

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
public class DBHelper extends SQLiteOpenHelper 
{    //数据库版本    private static final int VERSION = 1;    
    //新建一个表    String sql = "create table if not exists TestUsers"+    "(id int primary key,name varchar,sex varchar)";        
    public DBHelper(Context context, String name, CursorFactory factory, int version) {        super(context, name, factory, version);    }
    public DBHelper(Context context,String name,int version){        this(context,name,null,version);    }       
    public DBHelper(Context context,String name){        this(context,name,VERSION);    }       
    @Override   
    public void onCreate(SQLiteDatabase db) {        db.execSQL(sql);    }  
    @Override    
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {            }    
} 


3.SQLite的使用

•Android提供了一个名为SQLiteDatabase的类,它封装了一些操作数据库的API。使用它能实现基本的CRUD操作,通过getWritableDatabase()和getReadableDatabase()可以获取数据库实例。

4.实现代码

   /**
     * 新建一个数据库
     * @param dbName
     * @return
     */
    public SQLiteDatabase CreateDatabase(String dbName){
        dbHelper = new DBHelper(this, dbName);
        return dbHelper.getWritableDatabase();
    }
 
/**
     * 打开数据库
     */
    public void OpenDb(){
        dbHelper = new DBHelper(this, "TestDb01");
        db = dbHelper.getWritableDatabase();
    }
    
    /**
     * 关闭数据库
     */
    public void CloseDb(){
        dbHelper.close();
    } 

/**
     * 新建一个表
     * @param db
     */
    public void CreateTable(){
        db = dbHelper.getWritableDatabase();
        String sql = "create table if not exists TestUsers"+
                        "(id int primary key,name varchar,sex varchar)";
        try {
            db.execSQL(sql);
        } catch (SQLException e) {
            Log.i("err", "create table failed");
        }
    } 

/**
     * 插入数据
     */
    public void InsertTb(){
        db = dbHelper.getWritableDatabase();
        String sql = "insert into TestUsers (id,name,sex) values (2,'hongguang','men')";
        try {
            db.execSQL(sql);
        } catch (SQLException e) {
            Log.i("err", "insert failed");
        }
    } 

/**
     * 更新数据
     */
    public void UpdateTb() {
        db = dbHelper.getWritableDatabase();
        String sql = "Update TestUsers set name = 'anhong',sex = 'men' where id = 2";
        try {
            db.execSQL(sql);
        } catch (SQLException e) {
            Log.i("err", "update failed");
        }
    } 

 /**
     * 删除数据
     */
    public void DeleteTb(){
        db = dbHelper.getWritableDatabase();
        String sql = "delete from TestUsers where id = 2";
        try {
            db.execSQL(sql);
        } catch (SQLException e) {
            Log.i("err", "delete failed");
        }
    } 


5.一些SQLite操作命令
•  5.1 adb shell 进入命令模式
•  5.2 cd 文件名 进入文件
•  5.3 ls或ls -l 查看目录下的文件
•  5.4 sqlite3 数据库名 进入数据库
•  5.5 .schema 查看数据库下的信息
•  5.6 ctrl+d 退出sqlite模式



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章