用SQLite存储数据

SQLite是一个开源的嵌入式数据库引擎,支持SQL92标准,可在多种操作系统上运行。它以单个文件形式存在,采用B-Tree数据结构,支持轻量级、独立、隔离的特性,并具有动态数据类型。SQLiteOpenHelper是Android中用于数据库操作的帮助类,用于创建、升级数据库。常见操作包括添加、删除、修改和查询数据。在实际应用中,应注意数据库的安全性和权限管理,如避免直接存储密码。
摘要由CSDN通过智能技术生成

SQLite

SQLite是D. Richard Hipp 用C语言编写的开源嵌入式数据库引擎。它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行。
SQLite虽然很小,
但是支持高达2TB大小的数据库,
SQLite以单个文件的形式存在,
以B-Tree的数据结构形式存储在磁盘

Features:
轻量级 - 一个动态库,单文件
独立 - 没有依赖,无需安装
隔离 -全部在一个文件夹里,方便管理和维护
跨平台
多语言接口
安全性 - 事务 // 通过数据库上的独占性和共享锁来实现独立事务处理;多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据

SQLite的数据类型:
-NULL, INTEGER, REAL, TEXT, BLOB/-空值,整型值,浮点值,字符串值,二进制对象

动态数据类型(弱引用)
-当某个值插入到数据库时,SQLite将会检查它的类型,如果该类型于关联的列不匹配,SQLite会尝试将值转换成该列的类型,如果不能转换,则该值将作为本身的类型存储。

-资源占用少,性能良好,管理零成本
-没有可用于SQLite的网络服务器,只能通过网络共享可能存在文件锁定或性能问题
-只提供数据级的锁定
-没有用户账户概念,而是根据文件系统确定所有数据库的权限

SQLiteDatabase:
常用方法:
这里写图片描述

新建一个DatabaseButtonActivity,创建一个对一个的页面
新建一个package,package下新建一个类
public class DatabaseHelper extends SQLiteOpenHelper {

public DatabaseHelper(Context context) {
    super(context, "test.db", null, 1); //version cannot be '0'
}

@Override
public void onCreate(SQLiteDatabase db) {

    db.execSQL("create table user(username varchar(20), password(60) not null);");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {


}

}

数据的基本操作
Att:数据库里尽量不要存放密码,如果有需要,一定要加密
提常量是ctrl+shift+c,不要又忘了啊喂!

After watching the 1st video, I’ve got two errors, one is about the letter case of SqLite, another lies below, version number cannot be 0, or 1, at least not after video one.

public DatabaseHelp
SQLite 是一种轻型的关系型数据库管理系统,适用于嵌入式设备和移动设备。使用 SQLite 存储数据需要以下步骤: 1. 导入 SQLite 库:在你的项目中导入 SQLite 库,可以使用系统自带的 SQLite 库,也可以使用第三方库。 2. 创建数据库:在代码中使用 SQLiteOpenHelper 类创建数据库,并指定数据库的名称和版本号。 3. 创建表:在数据库中创建表,定义表的结构和字段。 4. 插入数据使用 SQL 语句向表中插入数据。 5. 查询数据使用 SQL 语句查询数据。 6. 更新数据使用 SQL 语句更新数据。 7. 删除数据使用 SQL 语句删除数据。 下面是一个简单的示例代码: ```java public class DBHelper extends SQLiteOpenHelper { // 数据库名称 public static final String DB_NAME = "my_db"; // 数据库版本号 public static final int DB_VERSION = 1; // 表名 public static final String TABLE_NAME = "my_table"; // 字段名 public static final String COLUMN_ID = "id"; public static final String COLUMN_NAME = "name"; public static final String COLUMN_AGE = "age"; // 创建表的 SQL 语句 private static final String CREATE_TABLE_SQL = "CREATE TABLE " + TABLE_NAME + " (" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_NAME + " TEXT, " + COLUMN_AGE + " INTEGER)"; public DBHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表 db.execSQL(CREATE_TABLE_SQL); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 升级数据库 db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } public void insertData(String name, int age) { SQLiteDatabase db = getWritableDatabase(); ContentValues values = new ContentValues(); values.put(COLUMN_NAME, name); values.put(COLUMN_AGE, age); db.insert(TABLE_NAME, null, values); db.close(); } public List<Person> queryData() { List<Person> list = new ArrayList<>(); SQLiteDatabase db = getReadableDatabase(); Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null); if (cursor != null) { while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex(COLUMN_ID)); String name = cursor.getString(cursor.getColumnIndex(COLUMN_NAME)); int age = cursor.getInt(cursor.getColumnIndex(COLUMN_AGE)); Person person = new Person(id, name, age); list.add(person); } cursor.close(); } db.close(); return list; } public void updateData(int id, String name, int age) { SQLiteDatabase db = getWritableDatabase(); ContentValues values = new ContentValues(); values.put(COLUMN_NAME, name); values.put(COLUMN_AGE, age); db.update(TABLE_NAME, values, COLUMN_ID + "=?", new String[]{String.valueOf(id)}); db.close(); } public void deleteData(int id) { SQLiteDatabase db = getWritableDatabase(); db.delete(TABLE_NAME, COLUMN_ID + "=?", new String[]{String.valueOf(id)}); db.close(); } } ``` 在这个示例代码中,我们创建了一个 DBHelper 类,继承自 SQLiteOpenHelper 类。在 onCreate() 方法中创建了一个表,包含 id、name 和 age 三个字段。在 insertData() 方法中插入数据使用 queryData() 方法查询数据使用 updateData() 方法更新数据使用 deleteData() 方法删除数据使用 SQLiteDatabase 类获取数据库对象,使用 ContentValues 类封装数据使用 Cursor 类查询数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值