安卓使用SQLite数据库

目录

理论:

SQLite构成

SQLite的整体结构图

 SQLite数据类型

创建安卓应用

基于Empty Activity模板创建安卓应用CreateDeleteDB

 将背景图片拷贝到drawable目录

打开字符串资源文件 strings.xml输入代码:

打开主布局资源文件 activity_main.xml输入代码:

打开主界面类MainActivity输入代码:

运行应用,查看效果:


理论:

SQLite构成


SQLite由SQL编译器、内核、后端以及附件几个部分构成。SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),使得调试、修改和扩展SQLite的内核变得更加方便,所有SQL语句都被编译成易读的、可以在SQLite虚拟机中执行的程序集。

 SQLite数据类型

类型 说明
NULL 空值
INTEGER 整型值
REAL 浮点值
TEXT 字符串文本
BLOB 二进制对象 [Binary Large Object]

创建安卓应用

基于Empty Activity模板创建安卓应用CreateDeleteDB

 将背景图片拷贝到drawable目录

打开字符串资源文件 strings.xml输入代码:

具体代码:

<resources>
    <string name="app_name">创建和删除数据库</string>
    <string name="create_db">创建数据库</string>
    <string name="delete_db">删除数据库</string>
</resources>

打开主布局资源文件 activity_main.xml输入代码:

 

具体代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btn_create_db"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:onClick="doCreateDB"
        android:text="@string/create_db"
        android:textSize="20dp" />

    <Button
        android:id="@+id/btn_delete_db"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:onClick="doDeleteDB"
        android:text="@string/delete_db"
        android:textSize="20dp" />
</LinearLayout>

打开主界面类MainActivity输入代码:

具体代码:

package net.zyt.createdeletedb;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private static final String DB_NAME_PREFIX="student";//数据库名前缀
    private static final int MODE= Context.MODE_PRIVATE;//文件访问模式
    private int count;//数据库计时器
    private SQLiteDatabase db;//sqlite数据库对象

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //利用布局资源文件设置用户界面
        setContentView(R.layout.activity_main);

        //获取应用当前数据库个数
        count=databaseList().length;
    }
    //创建数据库
    public void doCreateDB(View view){
        //数据库计数器累加
        count++;
        //定义数据库名
        String dbname=DB_NAME_PREFIX+count+".db";
        try {
            // 打开或创建数据库
            db = openOrCreateDatabase(dbname, MODE, null);
            // 提示用户创建成功
            Toast.makeText(this, "恭喜,数据库【" + dbname + "】创建成功!", Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            // 提示用户创建失败
            Toast.makeText(this, "遗憾,数据库【" + dbname + "】创建失败!", Toast.LENGTH_SHORT).show();
        }
    }
    //删除数据库(删除全部)
    public void doDeleteDB(View view){
        //获取数据库名数组
        String[] dbnames=databaseList();
        //判断是否有数据库可删除
        if (dbnames.length>0){
            //遍历数组,按名称删除数据库
            for (String dbname:dbnames){
                //删除数据库
                deleteDatabase(dbname);
            }
        //数据库计算器归零
            count=0;
            //提示用户删除成功
            Toast.makeText(this,"恭喜,数据库被全部删除!",Toast.LENGTH_SHORT).show();
    }else{
            Toast.makeText(this,"遗憾,没有数据库可删除!",Toast.LENGTH_SHORT).show();
        }
    }
}

运行应用,查看效果:

猜你喜欢

转载自blog.csdn.net/hollow_future/article/details/128282644