Android开发之Sqlite的使用

Android系统提供Sqlite小型关系数据库来存储数据。要使用该数据库首先要写一个类继承SQLiteOpenHelper类,重写该类的onCreate方法和onUpgrade方法。

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

public class DBHelper extends SQLiteOpenHelper{
//版本控制 public DBHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { System.out.println("onCreate"); db.execSQL("create table user(id varchar(20) , name varchar(20) , phoneNumber varchar(20))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { System.out.println("onUpdate"); } }


为了得到数据库调用getReadableDatabase()方法。如果数据库第一次被创建则调用DBHelper重写的onCreate方法。当系统发现版本发生变化的时候则会调用onUpgrade方法,在这里我们可以做一些表的结构的修改。

//创建了一个DatabaseHelper对象,并生成数据库文件
DBHelper helper = new DBHelper(MainActivity.this, "user_db", null, 3);
//getReadableDatabase函数会调用helper的onCreate方法
SQLiteDatabase database = helper.getReadableDatabase();

 

调用insert方法,就可以将数据插入到数据库当中
第一个参数:表名称
第二个参数:SQl不允许一个空列,如果ContentValues是空的,那么这一列被明确的指明为NULL值
第三个参数:ContentValues对象

class BtnInsertListener implements OnClickListener{
    @Override
    public void onClick(View arg0) {
        //创建ContentValues对象
        ContentValues values = new ContentValues();
        values.put("id", 1);
        values.put("name", "cjx");
        values.put("phoneNumber", "159xxxxxxxx");
        DBHelper helper = new DBHelper(MainActivity.this, "user_db", null, 1);
        SQLiteDatabase database = helper.getWritableDatabase();
        database.insert("user", null, values);
        
    }
}


调用SQLiteDatabase对象的delete方法进行删除操作
第一个参数String:表名
第二个参数String:条件语句
第三个参数String[]:条件值

class BtnDeleteListener implements OnClickListener{
    @Override
    public void onClick(View arg0) {
        DBHelper helper = new DBHelper(MainActivity.this, "user_db", null, 3);
        SQLiteDatabase database = helper.getWritableDatabase();
        database.delete("user", "id=?", new String[]{ "1" });
    }
}


调用update方法
第一个参数String:表名
第二个参数ContentValues:ContentValues对象
第三个参数String:where字句,相当于sql语句where后面的语句,?号是占位符
第四个参数String[]:占位符的值

class BtnUpdateListener implements OnClickListener{
    @Override
    public void onClick(View arg0) {
        DBHelper helper = new DBHelper(MainActivity.this, "user_db", null, 3);
        SQLiteDatabase database = helper.getWritableDatabase();    
        ContentValues values = new ContentValues();
        values.put("name", "chen");
        database.update("user", values, "id=?", new String[]{ "1" });
    }
}

 

调用SQLiteDatabase对象的query方法进行查询,返回一个Cursor对象:由数据库查询返回的结果集对象
第一个参数String:表名
第二个参数String[]:要查询的列名
第四个参数String[]:查询条件的参数
第五个参数String:对查询的结果进行分组
第六个参数String:对分组的结果进行限制
第七个参数String:对查询的结果进行排序

class BtnSelectListener implements OnClickListener{
    @Override
    public void onClick(View arg0) {
        DBHelper helper = new DBHelper(MainActivity.this, "user_db", null, 3);
        SQLiteDatabase database = helper.getWritableDatabase();    
        Cursor cursor = database.query("user"
                , new String[]{ "id" , "name" , "phoneNumber" }
                ,"id=?"
                ,new String[]{ "1" }
                , null
                , null
                , null);
        while( cursor.moveToNext() ){
            String id=cursor.getString(cursor.getColumnIndex("id"));
            System.out.println(id);
            String name=cursor.getString(cursor.getColumnIndex("name"));
            System.out.println(name);
        }   
    }
}

 

另外可以使用adb进入android模拟器查看android系统中刚被创建的sqlite数据库,同时也可以对该数据库进行管理。

进入android操作系统

# adb shell


 进入自己新建的项目

# cd data/data/com.example.sqlite


进入user_db数据库

# sqlite3 user_db


提示符由 # 变成 sqlite> 接下来可以执行一些sql命令,对数据库进行管理了!

sqlite>.schema
sqlite>select * from user;

 

posted @ 2014-04-20 22:11  chen2013  阅读(302)  评论(0编辑  收藏  举报