安卓中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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值