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;

 

网站地图xml地图