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);  
    }  
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值