SQLite

一、为什么要用SQLite

SQLite不需要配置,这意味着不需要安装或管理。

一个完整的SQLite数据库是存储在一个单一的跨平台的磁盘文件。

SQLite是非常小的,是轻量级的,完全配置时小于400kb,省略可选功能配置时小于250kb。

SQLite是自给自足逇,这意味着不需要任何外部的依赖。

SQLite事务是完全兼容ACID的,允许多个进程或县城安全访问。

二、什么是SQLite

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

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

三、如何创建数据库和数据表

想要创建数据库和数据表的话,我们先要创建出一个类来继承SQLiteOpenHelper这个抽象类

SQLiteOpenHelper类提供了两个方:onCreate(SQLiteDataBase sqldatabase)和onUpgrade(SQLiteDataBase sqldatabase,int i,int i1


当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取用于操作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用,在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据。onUpgrade()方法在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号。

public class MyDBhelper extends SQLiteOpenHelper{

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值