SQLite 的使用(一)

来源:互联网 发布:mysql delete语句 编辑:程序博客网 时间:2024/06/05 05:50

     最近项目不是很忙,刚好在看代码的时候,看到了数据库这一块,感觉好长时间没用,也都忘记了,也就顺便复习一下。

     由于android中google给我们提供了SQLiteOpenHelper这个类来帮助我们操作数据库,所以我们第一步自然是要继承这个类:

public class DBHtlper extends SQLiteOpenHelper {    public DBHtlper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {        super(context, name, factory, version);    }    @Override    public void onCreate(SQLiteDatabase sqLiteDatabase) {        //创建一个表,id 主键,自动增长 username、password 字符类型        String sql = "create table user(id integer primary key autoincrement,username varchar(20) not null,password varchar(20) not null);";        sqLiteDatabase.execSQL(sql);    }    @Override    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {        sqLiteDatabase.execSQL("DROP TABLE IF EXISTS user");        onCreate(sqLiteDatabase);    }}
    主要重写oncreate和onupgrade这两个方法,oncreate一般用于创建数据库表,onupgrade主要用于数据库升级的操作。还必须要重写4个参数的构造函数,第一个参数是Context上下文,第二个参数是创建数据库的时候,数据库的名称,第三个参数CursorFactory指定在执行查询时获得一个游标实例的工厂类,设置为null,代表使用系统默认的工厂类,第四个参数是数据库的版本。

    然后创建一个SQL帮助类,分别执行增、删、改、查的操作:

<span style="font-family:SimSun;font-size:14px;">    public SQLiteUtils(Context context) {        //创建数据库Person.db        dbHtlper = new DBHtlper(context, "Person.db", null, 1);    }    /**     * 插入数据     *     * @param user     */    public void insertData(User user) {        String sql = "insert into user(username,password) values(?,?)";        //获得数据库的操作        SQLiteDatabase database = dbHtlper.getWritableDatabase();        database.execSQL(sql, new Object[]{user.getUsername(), user.getPassword()});        database.close();    }    /**     * 更新数据     *     * @param user     */    public void updateData(User user) {        String sql = "update user set username = ?,password = ? where id = ?";        SQLiteDatabase database = dbHtlper.getWritableDatabase();        database.execSQL(sql, new Object[]{user.getUsername(), user.getPassword(), user.getId()});        database.close();    }    /**     * 删除数据     *     * @param user     */    public void deleteData(User user) {        String sql = "delete from user where id = ? or username = ?";        SQLiteDatabase database = dbHtlper.getWritableDatabase();        database.execSQL(sql, new Object[]{user.getId(), user.getUsername()});        database.close();    }    /**     * 查询     */    public User selectData(String userName) {        User user = null;        String sql = "select * from user where username like ?";        SQLiteDatabase database = dbHtlper.getReadableDatabase();        Cursor cursor = database.rawQuery(sql, new String[]{"%"+userName+"%"});        while (cursor.moveToNext()) {//只取第一条            user = new User();            user.setId(cursor.getInt(cursor.getColumnIndex("id")));            user.setUsername(cursor.getString(cursor.getColumnIndex("username")));            user.setPassword(cursor.getColumnName(cursor.getColumnIndex("password")));            database.close();            return user;        }        return user;    }</span>
    然后就可以直接调用啦!就这么简单~

0 0