Android安卓——数据存储之数据库存储

本文详细介绍了在安卓开发中使用SQLite数据库进行数据存储的方法,包括SQLite数据库的简介、命令行操作和代码创建数据库。重点讲解了如何利用SQLiteOpenHelper进行数据库的增删查改,并给出了相关代码示例。
摘要由CSDN通过智能技术生成

在安卓开发中,对于用户端数据的存储常使用SQLite数据库。通常使用SQLite数据库在安卓开发中进行数据的增删查改操作。
本次讲解将会先介绍SQLite数据库,在读者对该数据库有了一定的了解之后,展开在安卓应用中对SQLite的使用。

一、SQLite数据库
1、SQLite数据库简介
(1)、SQLite数据库是一个开源的嵌入式关系数据库
(2)、特点:


  • 更加适用于嵌入式系统,嵌入到使用它的应用程序中去。
  • 占用非常少的内存,运行高效可靠,可移植性好。
  • 提供了零配置运行模式。
  • 屏蔽了数据库使用和管理的复杂性,程序仅需进行最基本的数据操作,其他操作可以交给进程内部的数据库引擎完成。
  • 使用模块化设计由八个独立的模块构成,这些独立模块又构成了三个主要的子系统。
  • 接口由SQLite C API组成,因此无论是应用程序、脚本,还是库文件,最终都是通过接口与SQLite交互。
  • 核心代码有C编写,大概有三万多行。

综上,我们可以对SQLite数据库有个大概的了解,并应该知道安卓开发中使用该数据库的原因。
学习过其他数据库的同学应该知道,对数据的操作包括两种,有 代码的动态操作,和 命令行的直接操作。当然SQLite数据库的命令行操作不是重点我们就大概的讲解一下怎么进入吧,后续操作跟一般数据库的相似。
二、SQLite数据库的命令行操作

首先,讲解一下SQLite数据库自带的一个基于命令行的SQL命令执行工具——sqlite3。
sqlite3工具被集成在Android系统中,用户在Linux的命令行界面中输入sqlite3,启动。
启动Linux的命令行界面的方法是在CMD中打开你在安卓中下载SDK的地址,在打开SDK下的flatform-tools目录,输入adb shell命令,可进入。操作过程如下图:
这里写图片描述
当然,这里很明显的出现查到不到设备的这个错误。所以这里应该注意,把虚拟机启动起来再来查找。

三、代码建库

在编程实现时,一般将所有对数据库的操作都封装在一个类中,因此只要调用这个类,就可以完成对数据库的添加、更新、删除和查询等操作。此处我将链接数据库单独放到一个类中。
这个类继承SQLiteOpenHelper。

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

    /**
     * Created by ASUS on 2017/11/9.
     */

    public class DBHelpler extends SQLiteOpenHelper{
   

    public static final String SQL = "create table Student(id integer primary key autoincrement, name text,age integer,height integer)";

    public DBHelpler(Context context) {
        /**构造函数
         * 上下文环境context
         * Stud.db是数据库名
         * 1是数据库版本
         */
        super(context,"Stud.db",null,1);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        /**
         * 写创建数据库的SQL语句
         */
        db.execSQL(SQL);
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {
        /**
         * 升级调用该方法
         * 如果检测到版本升级了,系统进行调用该方法。
         * 删除原来的表再新建
         */
        db.execSQL("drop table Student");
        onCreate(db);
    }
}

之后所有要链接数据库的增删查改操作可以直接调用该类就可以了。
程序开发人员不应直接调用onCreate()和onUpgrade()函数,而应该是SQLiteOpenHelper类来决定何时调用这两个函数。而SQLiteOpenHelper类的getWritableDatabase()函数getReadableDatabase()函数可以直接调用的。
1、getWritableDatabase()函数:用来建立和打开可读写的数据库对象,一旦函数调用成功了,数据库对象将被缓存,任何需要使用数据库对象时都可以调用这个方法获取到数据库对象。但是在不用的时候一定要调用close()函数关闭数据库。
2、getReadableDatabase()函数:用来调用只读的文件。
对于连接数据库进行操作,有些学过javaWeb开发的同学是比较了解的,此处就不难学习了。我将所有增删查改的种类汇总了一下,写出了个例子,代码放下面了,每一部分的代码都做出了注释。
这里写图片描述
在布局的最下面加入了一个ListView来显示查询结果。
布局文件如下(相对布局):

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.asus.sqlite.MainActivity">
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/name_tv"
            android:text=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值