第七讲Android中的SQLite

简介: 第七讲Android中的SQLite

1.SQLite的简介

SQLite,是一款轻型的数据库,它的设计目标是嵌入式产品,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

Android中使用SQLiteDatabase代表数据库,并且提供一系列的方法来操作数据。


20200926204654330.png

2.SQLite的操作

1.创建或者打开数据库


database = SQLiteDatabase.openOrCreateDatabase(path + "/mydb.db",
                null);


2.创建数据库表

 String createSQL = "CREATE TABLE EMPLOYEE(" +
                        "ID INTEGER PRIMARY KEY AUTOINCREMENT," +
                        "NAME TEXT," +
                        "SALARY FLOAT)";
                database.execSQL(createSQL);//执行SQL语句
                break;

3.插入数据

  ContentValues newData = new ContentValues();
                //添加数据时,第一个参数必须同数据库表中字段名称一致
                newData.put("name", "张三");
                newData.put("salary", 4000.0f);
                //第二个参数是当第三个参数为null时起作用
                long rowId = database.insert("employee",null, newData);
                Log.e("新插入的记录的id",rowId+"");
                break;

4.查询数据库表

 Cursor result = database.query("EMPLOYEE",null,
                        null,null,null,null,null);
                //将游标移动到第一条记录
                if (result.moveToFirst()){
                    ArrayList<Employee> employees = new ArrayList<>();
                    do {
                       Employee employee = new Employee();
                       //getColumnIndex方法区分字段名的大小写
                       employee.setName(result.getString(
                               result.getColumnIndex("NAME")));
                       employee.setSalary(result.getFloat(
                               result.getColumnIndex("SALARY")));
//                        Log.e("职工信息",employee.toString());
                        employees.add(employee);
                    }while (result.moveToNext());
                    Log.e("AAA", employees.toString());
                }
                break;

5.修改数据

 ContentValues updateData = new ContentValues();
                updateData.put("SALARY", 5000.0f);
                int row = database.update("EMPLOYEE",updateData,
                        "name=?", new String[]{"张三"});
                Log.e("修改的行数", row + "");
                break;

6.删除数据

   int rowNum = database.delete("EMPLOYEE",
                        "ID=?",new String[]{"3"});
                Log.e("删除的条数",rowNum+"");
                break;


3.SQLite中事务的处理

1.事务处理


 //处理事务
                //开启数据库事务
                database.beginTransaction();
                //事务操作
                try {
                    for (int i = 0; i < 3; i++){
                        ContentValues values = new ContentValues();
                        values.put("name","李四");
                        values.put("salary",3000.0f);
                        database.insert("employee",null,values);
                    }
                    database.setTransactionSuccessful();//设置事务成功执行
                }finally {
                    //结束事务
                    //判断:如果执行了setTransactionSuccessful方法就提交事务
                    //否则回滚事务
                    database.endTransaction();
                }
                break;


4.SQLiteOpenHelper类


Android提供SQLiteOpenHelper类来管理数据库。主要负责数据库的创建、版本更新,一般情况通过创建它的子类并扩展onCreate()和onUpgrade()方法来实现。

使用步骤:

1.自定义MyDBHelper类继承自SQLiteOpenHelper类


public class MyDBHelper extends SQLiteOpenHelper {
    public MyDBHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        //创建数据库表,第一次打开数据库时调用,仅执行一次
        String createSQL = "CREATE TABLE EMPLOYEE(" +
                "ID INTEGER PRIMARY KEY AUTOINCREMENT," +
                "NAME TEXT," +
                "SALARY FLOAT)";
        db.execSQL(createSQL);//执行SQL语句
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //更新数据库时执行
        Log.e("MyDBHelper","onUpgrade");
    }
}


2.用MyHelper来创建数据库


 MyDBHelper myDBHelper = new MyDBHelper(this,
                "employee.db", null, 3);//数据库的版本号
        database = myDBHelper.getWritableDatabase();
相关文章
|
7月前
|
存储 数据库连接 数据库
Android数据存储:解释SQLite数据库在Android中的使用。
Android数据存储:解释SQLite数据库在Android中的使用。
98 0
|
6月前
|
数据库 Android开发 数据安全/隐私保护
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
292 2
|
6月前
|
SQL 存储 数据库
48. 【Android教程】数据库:SQLite 的使用
48. 【Android教程】数据库:SQLite 的使用
116 1
|
6月前
|
存储 缓存 数据库
Android之SQLite数据库使用详解
Android之SQLite数据库使用详解
|
6月前
|
存储 数据库 Android开发
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
224 0
|
API 数据库 Android开发
Android 中SQLite数据库的使用详解
Android 中SQLite数据库的使用详解
115 0
|
7月前
|
XML 数据库 数据安全/隐私保护
Android App规范处理中版本设置、发布模式、给数据集SQLite加密的讲解及使用(附源码 超详细必看)
Android App规范处理中版本设置、发布模式、给数据集SQLite加密的讲解及使用(附源码 超详细必看)
84 0
|
7月前
|
SQL 数据库 数据安全/隐私保护
Android Studio App开发中数据库SQLite的解析及实战使用(包括创建数据库,增删改查,记住密码等 附源码必看)
Android Studio App开发中数据库SQLite的解析及实战使用(包括创建数据库,增删改查,记住密码等 附源码必看)
597 0
|
Shell 数据库 开发工具
(超详细)android中SqLite数据库的使用(一文包懂包会)
(超详细)android中SqLite数据库的使用(一文包懂包会)
342 0
|
SQL 安全 数据库
Android -SQLite 的增删改查(CRUD)
Android -SQLite 的增删改查(CRUD)
140 0