我是靠谱客的博主 鳗鱼眼神,这篇文章主要介绍安卓开发之SQLite数据库的简单使用前言一、使用步骤二、测试,现在分享给大家,希望可以做个参考。

文章预览

  • 前言
  • 一、使用步骤
    • 1、MySqliteOpenHelper.java
    • 2、MainActivity.java
    • activity_main.xml
  • 二、测试

前言

SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。

它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。

一、使用步骤

1、MySqliteOpenHelper.java

该类继承SQLiteOpenHelper抽象类

实现其中的两个方法
onCreate():用来初始化数据库
onUpgrade():用来更新数据库

我写的这个类使用了单例模式

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.derry.myproject.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import androidx.annotation.Nullable; /** * MySqliteOpenHelper 工具类 单例模式(1.构造函数私有化 2.对外提供函数) */ public class MySqliteOpenHelper extends SQLiteOpenHelper { // 2.对外提供函数 单例模式 private static SQLiteOpenHelper mInstance; public static synchronized SQLiteOpenHelper getInstance(Context context) { if (mInstance == null) { mInstance = new MySqliteOpenHelper(context, "zzuli.db", null, 1); // 以后想要数据库升级 修改成2 修改成3 } return mInstance; } // 1.构造函数私有化 private MySqliteOpenHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } // 创建表 表数据初始化 数据库第一次创建的时候调用 第二次发现有了 就不会重复创建了,也意味着:次函数只会执行一次 // 数据库初始化时用的 @Override public void onCreate(SQLiteDatabase db) { // 创建表:persons表 _id name // 主键: primary key 必须唯一的 // 自动增长数字:例如:1 2 3 4 5 6 autoincrement //_id标准的写法(要求1) 只能使用 主键只能是Integer类型的(要求2) // id 不标准 String sql = "create table persons(_id integer primary key autoincrement, name text)"; db.execSQL(sql); } // 数据库升级用的 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }

2、MainActivity.java

包含了基本的建表以及增删改查的操作

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package com.derry.myproject; import androidx.appcompat.app.AppCompatActivity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.os.Bundle; import android.util.Log; import android.view.View; import com.derry.myproject.db.MySqliteOpenHelper; // SQLite增删改查 public class MainActivity3 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); } /** * 生成DB文件 * @param view */ public void createDB(View view) { SQLiteOpenHelper helper = MySqliteOpenHelper.getInstance(this); // (helper.getWritableDatabase() / helper.getReadableDatabase()) databases 文件夹的创建,靠下面这句话 SQLiteDatabase readableDatabase = helper.getReadableDatabase(); } /** * 查询 * @param view */ public void query(View view) { SQLiteOpenHelper helper = MySqliteOpenHelper.getInstance(this); SQLiteDatabase db = helper.getReadableDatabase(); // 确保数据库打开成功,才能放心操作,规范 if (db.isOpen()) { // 数据库打开成功 返回true 进入if // 返回游标 Cursor cursor = db.rawQuery("select * from persons", null); // 迭代游标 往下面移动来遍历数据 while(cursor.moveToNext()) { // 偷懒的写法 // int _id = cursor.getInt(0); // String name = cursor.getString(1); // 规范写法 int _id = cursor.getInt(cursor.getColumnIndex("_id")); String name = cursor.getString(cursor.getColumnIndex("name")); Log.d("derry", "query: _id:" + _id + " name:" + name); } // 一定记得关闭游标 否则耗费性能 规范写法 cursor.close(); // 数据库也要关闭 规范写法 db.close(); } } /** * 插入数据到数据库 * @param view */ public void insert(View view) { SQLiteOpenHelper helper = MySqliteOpenHelper.getInstance(this); SQLiteDatabase db = helper.getWritableDatabase(); if (db.isOpen()) { // 确保数据库打开成功,才能放心操作,规范 // 插入语句 String sql = "insert into persons(name) values('韭菜盖饭')"; db.execSQL(sql); // 规范:必须关闭 数据库 db.close(); } } /** * 修改 修改第5条数据 为: 李连杰 * @param view */ public void update(View view) { SQLiteOpenHelper helper = MySqliteOpenHelper.getInstance(this); SQLiteDatabase db = helper.getWritableDatabase(); if (db.isOpen()) { // 确保数据库打开成功,才能放心操作,规范 // 修改语句 String sql = "update persons set name =? where _id =?"; db.execSQL(sql, new Object[]{"张国荣", 5}); // 规范:必须关闭 数据库 db.close(); } } /** * 删除 第4条数据 * @param view */ public void delete(View view) { SQLiteOpenHelper helper = MySqliteOpenHelper.getInstance(this); SQLiteDatabase db = helper.getWritableDatabase(); if (db.isOpen()) { // 确保数据库打开成功,才能放心操作,规范 // 删除语句 String sql = "delete from persons where _id =?"; db.execSQL(sql, new Object[]{4}); // 规范:必须关闭 数据库 db.close(); } } }

activity_main.xml

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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=".MainActivity3" android:orientation="vertical"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="生成DB文件" android:onClick="createDB" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="查询" android:onClick="query" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="插入" android:onClick="insert" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="修改" android:onClick="update" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="删除" android:onClick="delete" /> </LinearLayout>

二、测试

在这里插入图片描述

最后

以上就是鳗鱼眼神最近收集整理的关于安卓开发之SQLite数据库的简单使用前言一、使用步骤二、测试的全部内容,更多相关安卓开发之SQLite数据库内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(99)

评论列表共有 0 条评论

立即
投稿
返回
顶部