第七讲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();
相关文章
|
9月前
|
存储 缓存 数据库
Android之SQLite数据库使用详解
Android之SQLite数据库使用详解
|
9月前
|
数据库 Android开发 数据安全/隐私保护
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
318 2
|
9月前
|
存储 数据库 Android开发
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
264 0
|
9月前
|
SQL 存储 数据库
48. 【Android教程】数据库:SQLite 的使用
48. 【Android教程】数据库:SQLite 的使用
165 1
|
10月前
|
存储 数据库连接 数据库
Android数据存储:解释SQLite数据库在Android中的使用。
Android数据存储:解释SQLite数据库在Android中的使用。
111 0
|
10月前
|
XML 数据库 数据安全/隐私保护
Android App规范处理中版本设置、发布模式、给数据集SQLite加密的讲解及使用(附源码 超详细必看)
Android App规范处理中版本设置、发布模式、给数据集SQLite加密的讲解及使用(附源码 超详细必看)
100 0
|
10月前
|
SQL 数据库 数据安全/隐私保护
Android Studio App开发中数据库SQLite的解析及实战使用(包括创建数据库,增删改查,记住密码等 附源码必看)
Android Studio App开发中数据库SQLite的解析及实战使用(包括创建数据库,增删改查,记住密码等 附源码必看)
701 0
|
Shell 数据库 开发工具
(超详细)android中SqLite数据库的使用(一文包懂包会)
(超详细)android中SqLite数据库的使用(一文包懂包会)
374 0
|
SQL 安全 数据库
Android -SQLite 的增删改查(CRUD)
Android -SQLite 的增删改查(CRUD)
162 0
|
API 数据库 Android开发
Android 中SQLite数据库的使用详解
Android 中SQLite数据库的使用详解
132 0

热门文章

最新文章

  • 1
    Android历史版本与APK文件结构
  • 2
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 3
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 4
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 5
    【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
  • 6
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 7
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 8
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
  • 9
    Android实战经验之Kotlin中快速实现MVI架构
  • 10
    即时通讯安全篇(一):正确地理解和使用Android端加密算法