加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite 的使用(一)

发布时间:2020-12-12 19:30:42 所属栏目:百科 来源:网络整理
导读:最近项目不是很忙,刚好在看代码的时候,看到了数据库这一块,感觉好长时间没用,也都忘记了,也就顺便复习一下。 由于android中google给我们提供了 SQLiteOpenHelper 这个类来帮助我们操作数据库,所以我们第一步自然是要继承这个类: public class DBHtlpe

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

由于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,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>
然后就可以直接调用啦!就这么简单~

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读