阿里云国际站注册教程:安卓sqlite数据库实验报告

实验目的

  1. 了解SQLite数据库的使用方法。
  2. 熟练掌握 SQLiteOpenHelper 的使用方法。
  3. 实现一个简单的安卓 SQLite 数据库程序。

实验环境

  • Android Studio
  • Android 真机或模拟器

实验步骤

  1. 新建一个 Android 项目,取名为 SQLiteDemo。
  2. 在 AndroidManifest.xml 中添加以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

这些权限用于访问文件系统,进行数据库的读写操作。

  1. 在 app/build.gradle 文件中添加以下依赖:
dependencies {
    // SQLite 数据库
    implementation 'androidx.sqlite:sqlite:2.1.0'
}
  1. 在 MainActivity.java 文件中创建一个名为 MyDatabaseHelper 的内部类,继承自 SQLiteOpenHelper,并重写其 onCrate() 方法。代码如下:
public class MainActivity extends AppCompatActivity {

    public static final String DB_NAME="BookStore.db";

    private SQLiteDatabase db;

    private Button createDatabase;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        createDatabase = findViewById(R.id.create_database);
        createDatabase.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MyDatabaseHelper dbHelper = new MyDatabaseHelper(MainActivity.this, DB_NAME, null, 1);
                db = dbHelper.getWritableDatabase();
            }
        });

    }

    class MyDatabaseHelper extends SQLiteOpenHelper {

        public static final String CREATE_BOOK = "create table Book ("
                + "id integer primary key autoincrement, "
                + "author text, "
                + "price real, "
                + "pages integer, "
                + "name text)";

        public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
            super(context, name, factory, version);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(CREATE_BOOK);
            Toast.makeText(MainActivity.this, "Create succeeded", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL("drop table if exists Book");
            onCreate(db);
        }

    }

}

这个类主要实现了 SQLiteOpenHelper 类,用于创建一个名为 Book 的表格。其中 onCreate() 方法用于创建表格,onUpgrade() 方法用于更新表格。同时,在 MainActivity 的 onCreate() 方法中,设置了一个创建数据库的按钮,并为其设置了点击事件,点击后调用 MyDatabaseHelper 的 getWritableDatabase() 方法来获取一个可写的数据库对象。

  1. 在 activity_main.xml 中添加一个按钮视图,如下所示:
<Button
    android:id="@+id/create_database"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:text="Create Database"
    android:textSize="20sp" />
  1. 运行程序,点击 Create Database 按钮,程序会在 /data/data/包名/databases/ 目录下创建一个 BookStore.db 的数据库文件。在命令行中执行以下命令,可以查看该数据库中的表:
$ adb -s <device id> shell
$ cd /data/data/包名/databases/
$ sqlite3 BookStore.db
sqlite> .table
Book

至此,安卓 SQLite 数据库的实验完成。

一、实验目的

1.了解SQLite数据库的基本概念和使用方法。

2.能够使用SQLite数据库进行数据存储和基本的CRUD操作。

3.掌握SQLite数据库的特点和使用场景。

二、实验内容

1.SQLite数据库的基本概念介绍

SQLite是一种轻量级的关系型数据库管理系统,它被广泛用于嵌入式系统和移动设备中。SQLite使用SQL语言进行操作,但与大部分数据库不同的是,它没有独立的服务进程,而是直接使用应用程序的内存,因此也不需要独立的部署和维护。

2.安装SQLite数据库

SQLite不需要安装,只需要引入相应的库即可使用。在Android中,我们需要使用SQLiteOpenHelper类进行数据库的创建和升级。

3.使用SQLite数据库进行数据存储和基本的CRUD操作

在Android中,SQLite数据库存储在/data/data/应用包名/databases/目录下,我们可以通过SQLiteOpenHelper类进行数据库的创建和升级。CRUD操作指的是:

C:create,即插入数据。

R:retrieve,即查询数据。

U:update,即更新数据。

D:delete,即删除数据。

4.SQLite数据库的特点和使用场景

SQLite的特点主要有:

(1)轻量级、快速、易用。

(2)嵌入式架构,不需要独立的服务进程,省去了服务器的维护管理和开销。

(3)支持大部分标准SQL语法,具有较高的兼容性。

(4)可靠性高,支持事务和数据的完整性,能够确保数据的正确性。

(5)跨平台,适用于各种操作系统和开发语言。

SQLite的使用场景主要有:

(1)嵌入式系统、移动设备等资源受限环境中的数据存储和管理。

(2)小型应用程序的数据管理,如日志、配置等。

(3)单机应用程序的数据管理,如桌面应用程序、游戏等。

三、实验步骤

1.创建一个新的Android项目,命名为SQLiteDemo。

2.在build.gradle文件中引入SQLite依赖库:

dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
//引入SQLite依赖库
implementation 'androidx.sqlite:sqlite:2.1.0'

}

3.创建一个继承自SQLiteOpenHelper的数据库帮助类:

public class DBHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "my.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "user";

public DBHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    String sql = "CREATE TABLE " + TABLE_NAME + " (" +
            "_id INTEGER PRIMARY KEY AUTOINCREMENT," +
            "name TEXT NOT NULL," +
            "age INTEGER NOT NULL," +
            "sex INTEGER NOT NULL)";
    db.execSQL(sql);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
    onCreate(db);
}

}

4.创建一个MainActivity,并在onCreate方法中创建一个数据库实例:

public class MainActivity extends AppCompatActivity {

private SQLiteDatabase db;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    DBHelper dbHelper = new DBHelper(this);
    db = dbHelper.getWritableDatabase();
}

}

5.实现数据的CRUD操作:

//插入数据
private void insertData() {

阿里云国际站注册教程:安卓sqlite数据库实验报告
ContentValues values = new ContentValues();
values.put("name", "张三");
values.put("age", 18);
values.put("sex", 0);
db.insert("user", null, values);

}

//查询数据
private void queryData() {

Cursor cursor = db.query("user", null, null, null, null, null, null);
while (cursor.moveToNext()) {
    String name = cursor.getString(cursor.getColumnIndex("name"));
    int age = cursor.getInt(cursor.getColumnIndex("age"));
    int sex = cursor.getInt(cursor.getColumnIndex("sex"));
    Log.d("MainActivity", "name=" + name + ", age=" + age + ", sex=" + sex);
}
cursor.close();

}

//更新数据
private void updateData() {

ContentValues values = new ContentValues();
values.put("age", 20);
db.update("user", values, "name=?", new String[]{"张三"});

}

//删除数据
private void deleteData() {

db.delete("user", "name=?", new String[]{"张三"});

}

6.在界面上增加四个按钮,分别调用四个操作方法:

<Button

android:id="@+id/btn_insert"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="插入数据"
android:onClick="onClickInsert"/>

<Button

android:id="@+id/btn_query"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查询数据"
android:onClick="onClickQuery"/>

<Button

android:id="@+id/btn_update"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="更新数据"
android:onClick="onClickUpdate"/>

<Button

android:id="@+id/btn_delete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="删除数据"
android:onClick="onClickDelete"/>

7.实现按钮对应的操作方法:

public void onClickInsert(View view) {

insertData();

}

public void onClickQuery(View view) {

queryData();

}

public void onClickUpdate(View view) {

updateData();

}

public void onClickDelete(View view) {

deleteData();

}

8.运行程序,点击按钮进行数据的操作。

四、实验总结

通过本次实验,我了解了SQLite数据库的基本概念、使用方法和特点,掌握了SQLiteOpenHelper的使用和CRUD操作的实现方法,同时也学会了如何引入SQLite依赖库。SQLite具有轻量级、快速、易用、可靠性高、兼容性好、跨平台等特点,适用于嵌入式系统、移动设备和小型应用程序的数据存储和管理。

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/158996.html

Like (0)
luotuoemo的头像luotuoemo
Previous 2024年3月10日 06:03
Next 2024年3月10日 06:19

相关推荐

  • 苏州阿里云代理商:阿里云域名双12活动

    苏州阿里云代理商将在双12活动期间推出多项优惠活动,重点是针对阿里云域名的促销。具体活动内容如下: 域名注册优惠:在双12期间,所有新注册的阿里云域名将享受折扣优惠,价格更加优惠。 域名续费优惠:针对已经在阿里云注册的域名,苏州阿里云代理商将推出续费优惠活动,续费域名的用户可享受一定的折扣优惠。 域名转移优惠:如果您是其他平台的域名用户,希望将域名转移到阿里…

    2023年12月22日
    7100
  • 企业对阿里云企业邮箱定制化的功能创新期望和实际应用效果评估?

    企业对阿里云企业邮箱定制化的功能创新期望和实际应用效果评估 引言 在信息化时代,企业邮箱已经成为企业内部与外部沟通的重要工具之一。阿里云企业邮箱以其稳定、安全、易用等特点受到众多企业的青睐。然而,随着企业对沟通效率与信息安全的需求逐步提升,越来越多的企业希望邮箱服务提供更加定制化的功能,以满足特定业务需求。本文将围绕企业对阿里云企业邮箱的功能创新期望、实际应…

    2024年10月29日
    3200
  • 阿里云客服报名成功技巧

    报名阿里云客服职位成功的技巧如下: 了解职位要求:阅读职位描述和要求,确保自己具备相关技能和经验。 准备个人简历和求职信:将个人信息、教育经历、工作经验和技能等清晰地展示在个人简历和求职信中,突出与客服工作相关的素质和能力。 强调沟通和服务能力:阿里云客服工作需要良好的沟通和服务能力,因此在简历和求职信中强调自己的沟通技巧、解决问题的能力和客户导向思维。 准…

    2023年9月19日
    8600
  • 绍兴阿里云代理商:access 2010 数据库引擎

    绍兴阿里云代理商可以提供Access 2010数据库引擎服务。Access 2010是Microsoft Office套件中的一部分,它是一种关系型数据库管理系统。Access 2010数据库引擎可以让用户在阿里云上快速创建和管理数据库。 作为阿里云代理商,他们可以为客户提供安装、配置和维护Access 2010数据库引擎的服务。他们可以根据客户的需求和规模…

    2024年2月5日
    9100
  • 阿里云计算盈利了吗

    阿里云计算有限公司是从何时开始盈利的 从阿里soft分解那天吧 未来的云计算都是如何盈利的? 未来的云计算都是如何盈利的,像华为云计算、阿里云等等,希望说明白一些。 非云计算模式:1000台服务器(计算、存储等),供1个特定用户使用,平均30%的负荷。云计算: 1000台服务器(计算、存储等),供1 0个用户使用,平均70%的 负荷 。这样你就知道怎么赚钱了…

    2023年8月27日
    9100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/