SQLite 的使用(一)

前端之家收集整理的这篇文章主要介绍了SQLite 的使用(一)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

由于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>
然后就可以直接调用啦!就这么简单~ 原文链接:https://www.f2er.com/sqlite/198888.html

猜你在找的Sqlite相关文章