当前位置:   article > 正文

Android开发——SQLite数据库的使用_android数据库

android数据库

Android开发——SQLite数据库的使用

一、认识SQLite

1、SQLite的特性

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。
SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite是直接访问其存储文件。
SQLite不需要额外的配置以及轻量化是最大的优点

2、SQLite的适用场景

(1)嵌入式设备:它可以在资源有限的设备上运行,不需要独立的服务器。
(2)测试和原型开发:SQLite可以快速创建和测试应用程序的原型,因为它不需要安装或配置服务器。

二、SQLite在Android开发中的应用

在Android中应用程序需要处理大量并发连接、高并发读写等高负载场景,SQLite可能会表现出性能瓶颈,不如传统的关系型数据库管理系统(RDBMS),因此不建议在这些场景中使用SQLite。
所以SQLite可以用在单机程序上,不适用联网数据。

1、工具类的编写

先继承系统给的SQLiteOpenHelper类,建立一个表。这里我建立了一个username和password。

public class DatabaseHelper extends SQLiteOpenHelper {
    public static final String USER="create table user("+"id integer primary key autoincrement,"+"username text,"+ "password text)";
    private Context mContext;
    public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,int vertion){
        super(context,name,factory,vertion);
        mContext=context;
    }
    @Override
    public void onCreate(SQLiteDatabase db){
        System.out.println(USER);
        db.execSQL(USER);
    }
    @Override
    public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在onCreate方法里面,防止第一次点击的时候,没有user.db这个文件,因此写了一个创建db文件的代码。

2、信息的插入

我们向表中插入数据,我们需要一行插入进表,这样数据写入更有效率。
首先我们需要先定义一个容器对象,用于储存多条信息。

ContentValues values=new ContentValues();
values.put("username","lemon");
values.put("password","123456");
  • 1
  • 2
  • 3

.put()函数中,第一个参数是表头的名称,第二个参数为输入的值。
在插入数据之前,需要先声明一个SQLite的对象。此处采用.getWritableDatabase()方法指以写的方式打开数据库。同理以读的方式打开数据库为.getReadableDatabase()

SQLiteDatabase db=dbHelper.getWritableDatabase();
  • 1

当需要组装的数据输入完成后,就可以进行下一步插入了。这里使用SQLite的命令insert进行操作。

db.insert("user",null,values);
  • 1

.insert()函数中第一个数据为表的名称,最后一个为内容。
最后清空values容器对象中的数据即可。

values.clear();
  • 1

完整代码:

SQLiteDatabase db=dbHelper.getWritableDatabase();
ContentValues values=new ContentValues();
values.put("username","lemon");
values.put("password","123456");
db.insert("user",null,values);
values.clear();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3、信息的读取

当我们需要实现登录功能,此时需要从数据库中读取内容。我们先需要建立一个数据库对象,以读的方式打开,并指定数据库的位置。

SQLiteDatabase db=dbHelper.getReadableDatabase();
Cursor cursor=db.query("user",null,null);
  • 1
  • 2

.query()函数第一个参是表名,第二个是第一个表头,第三个是第二个表头。当表头为null的时候为全部读取。
读取出来的内容也需要一个临时存储,用于用户输入的进行比较。

String name=cursor.getString(cursor.getColumnIndex("username"));
     //比对用户信息
     if (name.equals(user)){
        String ps=cursor.getString(cursor.getColumnIndex("password"));
     if (ps.equals(password)){}
  • 1
  • 2
  • 3
  • 4
  • 5

其中.getColumnIndex()函数是在读取指定的表头下内容。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/267244
推荐阅读
相关标签
  

闽ICP备14008679号