Android 进阶 1、sqlite数据库

这篇具有很好参考价值的文章主要介绍了Android 进阶 1、sqlite数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在我们学会了Android的基本使用之后就需要往高处发展了,毕竟水往高处流,很多时候我们学习一门技术感觉没有收获都是因为还没到那个层次,当你一步步往上走的时候就会渐渐发现自己收获的越来越多,进步也就会越来越快了,废话不多说,回到正题;

1、认识数据库

安卓中的数据库sqlite是一个微型的、跨平台和弱类型的数据库,他的体积很小,只有几百kb,我们可以再Android的SDK文件夹下面找到他:

Android 进阶 1、sqlite数据库

 其实和一些主流的数据库mysql 不太一样,他可以在一个列中存放不同的数据类型,但是它的sql语言是一样的;

在这个位置我们可以打开cmd,然后输入sqlite3,就可以执行一个命令行的数据库操作器,要注意的是他的一些命令是不一样的,跟其他的数据库比较起来,他创建或者打开数据库使用的是.open,在每一个关于数据库命令下面,都需要在前面加上一个点号,而在每一个sql命令下面都需要在后面加上一个分号;

.open StudentInfo

我记得sql server、MySQL打开数据库都是use 数据库名,但是这里不是这样的,而且这个小点不能忘了;还有很多的数据库命令,比如退出:

.exit
.quit

使用.table可以查看当前数据库下面的所有表;

pragma table_info(表名)

这个可以查看数据表结构;

对于sql语句的话相信大家都多多少少接触过了,这里我就不过多赘述;

在我们安装好了Android studio的时候其实就已经自带了这个数据库,他用来存放一些简单的数据还是没有问题的;

2、使用数据库

我们可以在网上下载一个sqlite的可视化工具可以看到数据库里面的表:  

Android 进阶 1、sqlite数据库

很多数据库都是拥有自己的可视化管理工具的,MySQL有navicat、sql server 有MMSM;

sqlite的就是sqlitestudio,安装好之后我们就只需要将我们创建的数据库拖动到这个程序里面他就会打开了:

Android 进阶 1、sqlite数据库

· 创建帮助类

当然我们只用sqlitestudio是没有什么作用的,需要通过敲代码的方式实现数据的增删改查,Android提供了几个类来帮助我们实现这些操作:

我们主要就了解两个重要的类

1)、SQLiteOpenHelper

这是一个帮助抽象类,没有实例,我们可以通过继承的方式来实例化一个子类:

package com.example.apptest01;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class SqliteHelper extends SQLiteOpenHelper {
    private String CREATE_TABLE_STUDENTINFI="CREATE TABLE Users(" +
            "userId integer primary key AutoIncrement, userName text,age integer,passWord text)";
    public SqliteHelper(Context context){
        //参数:上下文、数据库名、工厂类、版本
        super(context,"StudentInfo.db",null,1);

    }
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL(CREATE_TABLE_STUDENTINFI);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

这个子类需要创建数据库和继承父类的构造方法,首先需要写一个构造方法,将上下文传进去,super一下父类的构造方法,然后就是接口方法oncreate,在里面执行创建数据表的sql命令;

2)、SQLiteDatabase

这是sql实现增删改查的工具类,可以通过这个类下面的方法来实现sql操作,但是这个类需要通过帮助类get到:

sqliteHelper = new SqliteHelper(this);
       sqLiteDatabasewriter = sqliteHelper.getWritableDatabase();
       sqLiteDatabaseReader = sqliteHelper.getReadableDatabase();
//条件删除
sqLiteDatabasewriter.delete("Users","userId=?",new String[]{id+""});
//修改
 sqLiteDatabasewriter.update("Users",contentValues,"userId=?",new String[]{cid});
//添加
sqLiteDatabasewriter.insert("Users",null,contentValues);
//查询
sqLiteDatabasewriter.query("Users",null,"userId=?",new String[]{arrayList.get(i)+""},

· 查询

那么我们知道了通过创建帮助类来创建执行类,然后使用执行类就可以实现数据的增删改查,这里我们先通过查询来讲解一下具体的实现过程:

 cursor = sqLiteDatabasewriter.query("Users",null,"userId=?",new String[]{arrayList.get(i)+""},
                null,null,null);
                if(cursor.moveToNext()){
                    id = cursor.getInt(cursor.getColumnIndex("userId"));
                    name = cursor.getString(cursor.getColumnIndex("userName"));
                    pwd = cursor.getString(cursor.getColumnIndex("passWord"));
                    age = cursor.getInt(cursor.getColumnIndex("age"));
                }

我们获取操作类的方法有两个,一个是reader一个是writer,这里既然是查询数据我们用reader就可以,当然使用writer也是无伤大雅;

使用query方法进行数据的查询,他有一些参数,第一个是表名,第二个列名,还是看这个明白一点:

Android 进阶 1、sqlite数据库

有分组,分页,排序,筛选,很多参数,但是一般我们就是用到选项selection和表名就可以了;

他的返回值是一个cursor游标对象,相当于一个指针,可以通过while遍历的方式来获取到查询到的结果集;

关于cursor对象我们需要清楚他的两个方法,get类型() 和 getColumnIndex("列名"),前者的作用是通过后者的返回值实现查询到具体的数据,后者是通过列名查询到记录对应的索引,也就是说两者结合使用就可以实现查询到具体的数据,当然这个是需要咋while遍历里面实现的;

· 添加

添加数据同样结合这操作类的使用:

ContentValues contentValues = new ContentValues();;

contentValues.clear();
        contentValues.put("userId",et_id.getText().toString());
        contentValues.put("userName",et_name.getText().toString());
        contentValues.put("passWord",et_password.getText().toString());
        contentValues.put("age",et_age.getText().toString());
        long result = sqLiteDatabasewriter.insert("Users",null,contentValues);

        if(result == 1){
            Toast.makeText(this,"记录完成",Toast.LENGTH_LONG).show();
        }else{
            Toast.makeText(this,"记录失败",Toast.LENGTH_LONG).show();
        }

        showData();
        arrayAdapter.notifyDataSetChanged();

这里又使用了一个新的对象,就是ContentValues 这个对象用于存放键值对,通过put方法,存放着与数据表中列名对应的数据,然后将其使用操作类的insert方法就可以将数据成功添加到数据表中了;

这里需要注意insert的三个参数,第一个是表名,第二个一般为null,第三个就是键值对数据了,这类统一使用contentvalues对象;

Android 进阶 1、sqlite数据库

· 删除

删除操作也是结合这操作类使用:

sqLiteDatabasewriter.delete("Users","userId=?",new String[]{id+""});

Android 进阶 1、sqlite数据库

 这里要注意如何使用选项的问题whereClause其实就是条件,在sql里面对应的就是where,可以使用占位符?的方式,然后后面new String[]{}传参,也可以一步到位;

· 适配器复习

这里需要复习一下适配器,我们适配器是用来将数据显示到界面上的,那么当数据改变是我们如何刷新显示呢?

arrayAdapter.notifyDataSetChanged();

只需要调用一下这个方法,记住存放数据的对象可是一个全局变量;

我们大概使用到数据库的操作就这些,当然是使用的比较多的增删改查,为什么要使用适配器呢?

还记得之前我们讲过适配器吗,它是用来将数据显示到页面上的,因为我们从数据库中拿到数据之后终究是需要显示到页面上,所以数据库是必不可少的一个对象;文章来源地址https://www.toymoban.com/news/detail-498289.html

到了这里,关于Android 进阶 1、sqlite数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android studio 连接SQLite数据库 +创建数据库+创建数据库表

    Android studio 之数据库的使用 连接创建SQLite 大家好,欢迎来到寒依。 相信看啦我的教程 当老师问你在学习Android studio 数据库使用过程中遇到什么困难,分享一下你的感悟和解决方法 的时候,你可以直接大胆的说出来: “老师我没有遇到问题,看啦寒依的教程 畅行无阻” 我

    2024年02月02日
    浏览(51)
  • Android studio引入外部SQLite数据库,获取数据库列表数据

    准备好Android studio和一个创建管理数据库的软件,推荐SQLite Expert Professional或者Navicat Premium。这里以SQLite Expert Professional为例。 1.穿件sqlite数据库,按照自己的项目要求定义数据库和相应的数据表 1.在main目录下创建assets文件,将准备好的sqlite数据库文件放入这个目录下 解释:

    2024年02月08日
    浏览(52)
  • Android Studio使用SQLite数据库

    1.能使用SQLiteDatabase类操作数据库与表 2.能使用SQLiteDatabaseHelper类操作数据库与表 无论是安卓应用还是苹果应用,都提供了本地轻量级数据库——SQLite,可以创建和删除数据库,还能对数据表进行增删改查操作。 SQLite由SQL编译器、内核、后端以及附件几个部分构成。SQLite通过

    2024年02月01日
    浏览(44)
  • Android开发——SQLite数据库的使用

    1、SQLite的特性 SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。

    2024年02月15日
    浏览(43)
  • Android中SQLite数据库查询详解

    SQLite在线教程网址https://www.yiibai.com/sqlite table :表名。相当于select *** from table语句中的table 。如果是多表联合查询,可以用逗号将两个表名分开。 columns :要查询出来的列名(字段),全部查询就写null。相当于 select *** from table语句中的 ***部分 。如果是查询多个参数,可以用

    2024年01月16日
    浏览(50)
  • Android中SQLite数据库增删改查/使用ListView显示数据库内容(有完整源码)

    android作业笔记 编写SQLite数据库相关操作的代码,实现下图中的功能(第一排按钮布局没有调整屏幕大小适配…不过下面那一排加了 android:layout_weight=“1”) SQLite展示 先上源码:https://gitee.com/meng-fanyang/SQLiteWork 里边有三个分支,对应这不同的写法: master主分支是写的可以说

    2024年02月09日
    浏览(43)
  • Android使用SQLite数据库实现基本的增删改查

    目录 一、创建activity_main和MainActivity界面 二、实现查询/删除功能创建activity_delete和DeleteActivity 三、实现添加功能创建activity_add和AddActivity  四、实现更新功能创建activity_update和UpdateActivity 五、创建user_data类、userInfo类和增加权限 总结 activity_main如图:  MainActivity如下 layout界面

    2024年02月08日
    浏览(48)
  • Android Studio 使用SQLite数据库来创建数据库+创建数据库表+更新表再次往表添加字段

    目录 一.前言 二.SQLite数据库介绍 1.什么是SQLite数据库 2.特点 3.SQLite 操作API 4.SQLite数据类型 三.SQlite数据库的使用 1.创建类继承SQLiteOPenHelper 2.创建数据库 3.创建数据库表 4.更新表添加字段 完整代码 扩展 总结 我们在使用Android进行开发的时候不可避免的要使用到数据,那么就需

    2024年02月08日
    浏览(53)
  • 【数据库】数据库绪论,你都会了吗

    数据(Data) Q: 什么是数据 A: 数据(Data)是数据库中存储的基本对象。数据包括数字、文字、图形、图像、音频、视频、学生的档案记录等 数据库(Database) Q: 什么是数据库 A: 数据库(Database)是长期储存在计算机内、有组织的、可共享的大量数据的集合。 Q: 数据库

    2024年01月16日
    浏览(49)
  • 【Android Studio】安卓APP期末作品记录之连接sqlite数据库以及简单的sqlite增删改查

    期末作品要求使用数据库,我自己折腾了一会,又看了很多博主发的文章,终于成功了,特此记录:使用SQLiteDatabase和SQLiteOpenHelper连接已有sqlite数据库。 第一步,导入sqlite数据库 因为我已经创建好了一个sqlite数据库,所以第一步得将我的数据库导入项目中 在app — src — ma

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包