SQLite

SQLite

  • 为什么要用SQLite
  • 什么是SQLite
  • 如何创建数据库和数据表
  • 如何添加数据
  • 如何删除数据
  • 如何修改数据
  • 如何查询数据

为什么要用SQLite

  1. SharedPreferencens是以XML形式存储数据的,只适合存储基本数据类型的数据。
  2. 文件存储的内容在提取(解析)数据,相对复杂。
  3. 当文件量大,结构复杂时,容易出错,效率低下,Android中提供了SQLite数据存储,帮助我们解决这些问题。

什么是SQLite

  1. SQLite数据库存储是Android系统提供的数据存储方式之一。
  2. SQLite是转为嵌入式设备设计的一款轻量级数据库。
  3. SQLite占用资源非常低,在嵌入式设备中只需要几百K的内存。
  4. SQLite支持标准SQL语法,遵循数据库的ACID事务。
  5. SQLite不需要安装,不需要用户密码就可以使用。

如何创建数据库和数据表

  1. 新建类继承SQLiteOpenHelper
  2. 实现构造方法
  3. 重写onCreate
  4. 重写onUpgrade
  5. 实例化SQLiteOpenHelper的子类对象。
  6. 调用getReadableDatabase方法或者getWritableDatabase方法。
private String sql="create table student(" +  
            "id integer primary key autoincrement," +  
            "name text," +  
            "age text" +  
            ")";  
    public MyDBhelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {  
        super(context, name, factory, version);  
    }  

    @Override  
    public void onCreate(SQLiteDatabase sqLiteDatabase) {  
            sqLiteDatabase.execSQL(sql);//此方法只会在第一次创建时执行,只会执行一次。
    }  

    @Override  
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {  

    }  

如何添加数据

private void addStudent() {  
        MyDBhelper dBhelper=new MyDBhelper(this,"student_db",null,1);  
        SQLiteDatabase sqLiteDatabase=dBhelper.getWritableDatabase();  
        ContentValues contentValues=new ContentValues();  
        contentValues.put("name",student_name.getText().toString());  
        contentValues.put("age",student_age.getText().toString());  
        sqLiteDatabase.insert("student",null,contentValues);  
    }  

如何删除数据

private void delStudent() {  
        dBhelper=new MyDBhelper(this,"student_db",null,1);  
        sqLiteDatabase=dBhelper.getWritableDatabase();  
        String name=student_name.getText().toString();  
        String age=student_age.getText().toString();  
        sqLiteDatabase.delete("student","name=?",new String[]{name});  
    }  

如何修改数据

private void modifyStudent() {  
        dBhelper = new MyDBhelper(this, "student_db", null, 1);  
        sqLiteDatabase = dBhelper.getWritableDatabase();  
        ContentValues contentValues = new ContentValues();  
        String name = student_name.getText().toString();  
        String age = student_age.getText().toString();  
        contentValues.put("name", "bbb");  
        sqLiteDatabase.update("student", contentValues, "name=?", new String[]{name});  
    }  

如何查询数据

public void listStudent() {  
        studentList.clear();  
        Cursor cursor = sqLiteDatabase.query("student", null, null, null, null, null, null);  
        cursor.moveToFirst();  
        do {  
            String name = cursor.getString(cursor.getColumnIndex("name"));  
            int age = cursor.getInt(cursor.getColumnIndex("age"));  
            int id = cursor.getInt(cursor.getColumnIndex("id"));  
            Log.e(TAG, "listStudent: " + id + "-" + name + "-" + age);  
            studentList.add(new Student(id, name, age));  
        } while (cursor.moveToNext());  
        Student_Adapater adapater = new Student_Adapater(studentList, this);  
        student_listview.setAdapter(adapater);  
    }  
阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页