目录
理论:
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();
}
}
}
运行应用,查看效果: