码迷,mamicode.com
首页 > 移动开发 > 详细

Android Sqlite的使用

时间:2015-02-05 13:20:17      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

粗略的记录一下Android数据库的处理方式。android中本地存储数据分为4种:SharePreference、SQLite、Content Provider和File,都是存放于“data/data/程序包名”目录下。可以看出,android对于数据,基本上都是私有化的。


SQLite是一种轻型数据库,目前移动设备端,基本都使用SQLite。更多关于sqlite的使用,就参看这里:http://www.sqlite.org/

Android上使用SQLite的时候,通常会操作两个类:SQLiteDatabaseSQLiteOpenHelper

 

SQLiteOpenHelper类

类的描述:A helper class to manage database creation and version management。可以知道,这个类主要是用来创建数据库以及管理数据库版本更新。实际的应用:

package com.lanyuweng.mibaby.DataUtil; 

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import com.lanyuweng.Config.Config;

public class DatabaseHelper extends SQLiteOpenHelper{

    public DatabaseHelper(Context context) {
        super(context,Config.DBNAME,null,Config.VERSION);
    }

    //IF NOT EXISTS 
    public static final String sql_createtable = "CREATE TABLE NoteItems (Note_title varchar, Note_content varchar, Note_create_time datetime)";
    public static final String sql_deletetable = "DROP TABLE IF EXISTS NoteItems";
    
    @Override
    public void onCreate(SQLiteDatabase db) {

        db.execSQL(sql_createtable);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        
        if(newVersion > oldVersion){
            db.execSQL(sql_deletetable);
        }else{
            return;
        }
        onCreate(db);
        
    }
}
 

复写其onCreate方法,在其方法执行数据库创建,同时在onUpgrade方法中对数据库更新进行管理。基本就可以满足基本的功能了,更多的方法就多查询一下文档多了解一点了。

那么实际的数据库操作,就将其放到一个数据库管理文件中,在这个当中呢,可以进行增,删,改,查,或者更多的数据库操作方法。核心的就是使用execSQL(数据库语句),看看下面:

package com.lanyuweng.mibaby.DataUtil; 

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class DatabaseManager {

    public SQLiteDatabase sql_db;
    public DatabaseHelper sql_db_helper;
    private Cursor cursor;
    
    public DatabaseManager(Context context) {
        
        sql_db_helper = new DatabaseHelper(context);
        sql_db = sql_db_helper.getWritableDatabase();
        
    }
    
    public void add_NoteItem(String note_title,String note_content,String note_create_time){
        
        String sql = "INSERT INTO NoteItems(Note_title, Note_content, Note_create_time) values"+
                                    "(‘"+note_title+"‘,‘"+note_content+"‘,‘"+note_create_time+"‘)";
        sql_db.beginTransaction();
        
        try {
            sql_db.execSQL(sql);
            sql_db.setTransactionSuccessful();
        }
        finally{
            sql_db.endTransaction();            
        }
    }
    
    public void del_NoteItem(String note_title){
        
        String sql = "DELETE FROM NoteItems WHERE Note_title= ‘"+note_title+"‘";
        sql_db.beginTransaction();
        try {
            sql_db.execSQL(sql);
            sql_db.setTransactionSuccessful();
        }
        finally{
            sql_db.endTransaction();            
        }
    }
    
    public void modify_NoteIem(String old_note_title,String new_note_title,String note_content,String note_create_time){
        
        String sql = "UPDATE TABLE NoteItems SET Note_title="+new_note_title+", Note_content="+note_content+",note_create_time="+note_create_time+"where Note_title="+old_note_title;
        sql_db.beginTransaction();
        try {
            sql_db.execSQL(sql);
            sql_db.setTransactionSuccessful();
        }
        finally{
            sql_db.endTransaction();
        }
    }
    
    public Cursor search_NoteItem(String note_title){
        
        String sql = "SELECT * FROM NoteItems WHERE Note_title LIKE"+"%"+note_title+"%";
        sql_db.beginTransaction();
        try {
            cursor = sql_db.rawQuery(sql, null);
            sql_db.setTransactionSuccessful();
        }
        finally{
            sql_db.endTransaction();            
        }
        return cursor;
    }
    
    public Cursor selectAll_NoteItems(){
        
        String sql = "SELECT * FROM NoteItems";
        sql_db.beginTransaction();
        
        try {
            cursor = sql_db.rawQuery(sql, null);
        } finally{
            sql_db.endTransaction();
        }
        return cursor;
        
    }
    
    public Cursor getLimitItems(int start,int end){
        
        String sql = "SELECT * FROM NoteItems LIMIT "+start+","+end;
        
        sql_db.beginTransaction();
        try {
            cursor = sql_db.rawQuery(sql,null);
            cursor.moveToFirst();
            
        } finally{
            sql_db.endTransaction();
        }
        return cursor;
    }
    
}
 

以上,实现了对数据库增删改查的逻辑,其中不得不提到一个Cursor类,Cursor类能够方便的操作数据库。更多关于Cursor的使用,推荐一篇文章,Cursor的使用

 

至此,Android数据库的操作,基本上基础的东西就是这些了,如果有其他的,想到了再补上。

 

多记录一点,常常回头来看,会进步的。

Android Sqlite的使用

标签:

原文地址:http://www.cnblogs.com/lan4/p/4274382.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!