SQLife的初步理解

1.为什么要用SQLife

在安卓程序中需要在网络中保存一些比较复杂的文件,比如qq的聊天记录,用SP设计又太麻烦了,但是如果使用SQLife进行数据存储就十分方便

2.什么是SQLife

SQLife是一种轻型的数据库,是遵守ACID(增删改查)的关系型数据库管理系统

3.如何用SQLife创建数据库和数据表

首先新建一个类继承SQLiteOpenHelper实现它的几个方法
onCreate()创建
onUpgrade()修改
还有改造参数
表的建立规则为
crate table 表明称{
Id integer(int类型为Integer类型储存) primary(主键) key autoincrement(自动增长) not null(不为空),
name text(文本类型),
price real(浮点类型),
}
在代码中是这样实现的:

  @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(sql);
    }

String sql="create table student(" +
            "id integer primary key autoincrement not null," +
            "name text," +
            "height real" +
            ")";

4.如何添加数据

先从EditView得到要添加的数据

        String name =main5_name.getText().toString();
        int age=Integer.parseInt(main5_psd.getText().toString());
        ContentValues values=new ContentValues();
        values.put("name",name);
        values.put("age",age);
        MySQliftHelper mySQliftHelper=new MySQliftHelper(this,"student_et",null,1);
        /*第一个参数上下文环境
        *第二个参数数据库名
        *第三给参数游标
        *第四个参数是SQLife的版本号
        */
        SQLiteDatabase sqLiteDatabase=mySQliftHelper.getWritableDatabase();
        sqLiteDatabase.insert("student",null,values);
        /*第一个参数表名
        *第二个参数游标
        *第三给参数ContentValues 类型,通过ContentValues 添加数据
        */

5.如何删除数据和修改数据

从EditView 中得到姓名,根据姓名删除数据

 String name=main5_name.getText().toString();
        MySQliftHelper mySQliftHelper=new MySQliftHelper(this,"student_et",null,1);
        SQLiteDatabase sqLiteDatabase=mySQliftHelper.getWritableDatabase();
        //调用.delete方法删除数据
        sqLiteDatabase.delete("student","name=? and age=?",new String[]{name,age});
        /*第一个参数表名
        *第二个参数是列名"列名=?"
        *第三给参数是String数组,new String[]{要查找的值}
        /

从EditView 中得到姓名和年龄,根据姓名和年龄删除数据

String name=main5_name.getText().toString();
String age=main5_age.getText().toString();
        MySQliftHelper mySQliftHelper=new MySQliftHelper(this,"student_et",null,1);
        SQLiteDatabase sqLiteDatabase=mySQliftHelper.getWritableDatabase();
        sqLiteDatabase.delete("student","name=? and age=?",new String[]{name,age});
        /*第一个参数表名
        *第二个参数是列名"列名=? and 第二个列名"
        *第三给参数是String数组,new String[]{要查找的姓名,要查找的年龄}
        /

如果要清空全部

sqLiteDatabase.delete("student",null,null);

就行了
修改和删除差不多

String name=main5_name.getText().toString();
        String age=main5_psd.getText().toString();
        MySQliftHelper mySQliftHelper=new MySQliftHelper(this,"student_et",null,1);
        SQLiteDatabase sqLiteDatabase=mySQliftHelper.getWritableDatabase();
        ContentValues values=new ContentValues();
        values.put("name","sb");
        //调用.update修改数据
        sqLiteDatabase.update("student",values,"name=? and age=?",new String[]{name,age});
        //第二个参数是ContentValues并且通过它修改数据

7.如何查询数据

这里我写了最简单的从控制台输出

studentList.clear();
        MySQliftHelper mySQliftHelper=new MySQliftHelper(this,"student_et",null,1);
        SQLiteDatabase sqLiteDatabase=mySQliftHelper.getWritableDatabase();
        //设置游标打印数据
        Cursor cursor=sqLiteDatabase.query("student",null,null,null,null,null,null);
        cursor.moveToFirst();//游标移动的第一位
        do{
            String name=cursor.getString(1);
            int i=cursor.getInt(cursor.getColumnIndex("id"));
            int age=cursor.getInt(cursor.getColumnIndex("age"));
            Log.e(TAG,i+"-"+name+"-"+age);
        }while (cursor.moveToNext())

你可能感兴趣的:(初级安卓开发)