安卓中SQLite的简单使用

一、创建类继承自SQLiteOpenHelper

SQLiteOpenHelper 是安卓中创建数据库的一个帮助类,至少实现其中的onCreate和onUpgrade方法。
SQLiteOpenHelper 的方法:

方法 作用
onCreate(SQLiteDatabase db) 创建数据库时调用
onUpgrade( SQLiteDatabase db,int oldVersion , int newVersion ) 更新数据库时调用
getReadableDatabase() 创建或打开一个只读数据库
getWritableDatabase() 创建或打开一个可写数据库

SQLiteOpenHelper的使用:


public class MySQLiteOpenHelper extends SQLiteOpenHelper{
    private final static String DATABASE_NAME = "person.db";
    private final static int DATABASE_VERSION = 1;
    private final static String TABLENAME = "person";
    private final static string ID = "id" ;
    private final static String NAME= "name";
    private final static String NUMBER= "number";

    public MySQLiteOpenHelper(Context context,  CursorFactory factory) {
        super(context, DATABASE_NAME, factory, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //创建数据库语句
        String sql = "create table " + TABLE_NAME +" ( " + ID +" INTEGER primary key autoincrement, "
                + NAME+ " text, "+ NUMBER+ " text );" ;
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String sql = "DROP TABLE IF EXISTS " + TABLE_NAME ;
        db.execSQL(sql);
        onCreate(db);
    }
}

二、其他常用数据库方法:

1 . 获取游标


public Cursor getCursor() {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
        return cursor;
    }

Cursor 的常用方法:

方法 作用
getCount() 数据总数
getColumnIndex(String columnName) 获取列索引
isFirst() 是否第一个条目
isLast() 是否最后条目
moveToFirst() 移动到第一个条目
moveToLast() 移动到最后条目
moveToNext() 移动到下一条
moveToPrevious() 移动到前一条

2 . 插入数据


/** * * @param column_1 * @param column_2 * @return */
    public long insert ( String name, String number){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues(); //数据项
        values.put( NAME, name);
        values.put( NUMBER,  number);
        long row = db.insert(TABLE_NAME, null, values);
        return row;
    }

或用数据库语句来执行:

public long insert(String name , int number){
    //插入操作的SQL语句
    String sql = "insert into person(name, number) values ('" + name + "' , '" + number + "');" ;
    return db.execSQL(sql);//执行SQL语句
}

3 . 删除数据

/** * * @param delColumnValue 要删除的数据项中COLUMN_1 的值 */
public void deleteByName(String name){
    SQLiteDatabase db = this.getWritableSQLiteDatabase();
    String where = NAME+ "=?";  //删除的条件参数
    String[] whereValues = { name};  //条件参数的值
    db.delete(TABLENAME, where, whereValues);
}

或用数据库语句来执行:

public void delete(String name){
    String sql= "delete from person where name= '" + name + "' ;" ;
    db.execSQL(sql);
}

4 . 数据修改


    /** * * @param column_1_value修改的查询条件(字段值) * @param column_2 修改的字段 * @param column_2_value 修改的字段的值 */
    public void update( String name, String number){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(NUMBER, number);
        String whereClause = NAME+ " = ?";  //查询条件参数
        String[] whereArgs= { name}; //查询条件的参数值
        db.update(TABLE_NAME, values, whereClause , whereArgs);
    }

用数据库语句来执行:

public void update( String  name, String number){
    String sql = "update [person] set number= '" + number + "' where name = '"+ name +"' ;" ;
    db.execSQL(sql);
}

你可能感兴趣的:(数据库,android,sqlite)