SQLite

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

    为什么要用SQLite

    不需要一个单独的服务器进程或操作的系统(无服务器的)。
    SQLite 不需要配置,这意味着不需要安装或管理。
    一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。
    SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。
    SQLite 是自给自足的,这意味着不需要任何外部的依赖。
    SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。
    SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。
    SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。
    SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。

什么是SQLite

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。

就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

如何创建数据库和数据表

先自定义一个类继承自SQLiteOpenHelper
创建一个构造方法
重写两个创建数据库的方法onCreate()和onUpgrade(),分别是创建和更新数据库。

public class DBOpenHelper extends SQLiteOpenHelper {
    public DBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
CREATE TABLE database_name.table_name(
   column1 datatype  PRIMARY KEY(one or more columns),
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
);

添加数据

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);  
    }  

你可能感兴趣的:(SQLite)