android mysql sqlite_Android :SQLlite数据库 使用手册

8e3f294e2828

前言

在Android开发中,主要的数据存储有5种,具体如下

8e3f294e2828

示意图

其中,SQLite数据库的存储方式 非常常用

今天我将带大家全面了解关于Android SQLite数据库的操作(增、删、查、改)

目录

8e3f294e2828

目录

1. SQLlite数据库 简介

8e3f294e2828

示意图

2. SQLiteOpenHelper类

2.1 简介

8e3f294e2828

示意图

2.2 SQLiteOpenHelper类 常用方法

/**

* 创建数据库

*/

// 1. 创建 or 打开 可读/写的数据库(通过 返回的SQLiteDatabase对象 进行操作)

getWritableDatabase()

// 2. 创建 or 打开 可读的数据库(通过 返回的SQLiteDatabase对象 进行操作)

getReadableDatabase()

// 3. 数据库第1次创建时 则会调用,即 第1次调用 getWritableDatabase() / getReadableDatabase()时调用

// 在继承SQLiteOpenHelper类的子类中复写

onCreate(SQLiteDatabase db)

// 4. 数据库升级时自动调用

// 在继承SQLiteOpenHelper类的子类中复写

onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)

// 5. 关闭数据库

close()

/**

* 数据库操作(增、删、减、查)

*/

// 1. 查询数据

(Cursor) query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)

// 查询指定的数据表返回一个带游标的数据集。

// 各参数说明:

// table:表名称

// colums:列名称数组

// selection:条件子句,相当于where

// selectionArgs:条件语句的参数数组

// groupBy:分组

// having:分组条件

// orderBy:排序类

// limit:分页查询的限制

// Cursor:返回值,相当于结果集ResultSet

(Cursor) rawQuery(String sql, String[] selectionArgs)

//运行一个预置的SQL语句,返回带游标的数据集(与上面的语句最大的区别 = 防止SQL注入)

// 2. 删除数据行

(int) delete(String table,String whereClause,String[] whereArgs)

// 3. 添加数据行

(long) insert(String table,String nullColumnHack,ContentValues values)

// 4. 更新数据行

(int) update(String table, ContentValues values, String whereClause, String[] whereArgs)

// 5. 执行一个SQL语句,可以是一个select or 其他sql语句

// 即 直接使用String类型传入sql语句 & 执行

(void) execSQL(String sql)

3. 具体使用

使用步骤 = 自定义数据库子类(继承SQLiteOpenHelper类)、创建数据库 & 操作数据库(增、删、查、改)

下面,我将逐一介绍每个步骤

3.1 自定义数据库子类(继承 SQLiteOpenHelper 类)

/**

* 创建数据库子类,继承自SQLiteOpenHelper类

* 需 复写 onCreat()、onUpgrade()

*/

public class DatabaseHelper extends SQLiteOpenHelper {

// 数据库版本号

private static Integer Version = 1;

/**

* 构造函数

* 在SQLiteOpenHelper的子类中,必须有该构造函数

*/

public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,

int version) {

// 参数说明

// context:上下文对象

// name:数据库名称

// param:一个可选的游标工厂(通常是 Null)

// version:当前数据库的版本,值必须是整数并且是递增的状态

// 必须通过super调用父类的构造函数

super(context, name, factory, version);

}

/**

* 复写onCreate()

* 调用时刻:当数据库第1次创建时调用

* 作用:创建数据库 表 & 初始化数据

* SQLite数据库创建支持的数据类型: 整型数据、字符串类型、日期类型、二进制

*/

@Override

public void onCreate(SQLiteDatabase db) {

// 创建数据库1张表

// 通过execSQL()执行SQL语句(此处创建了1个名为person的表)

String sql = "create table person(id integer primary key autoincrement,name varchar(64),address varchar(64))";

db.execSQL(sql);

// 注:数据库实际上是没被创建 / 打开的(因该方法还没调用)

// 直到getWritableDatabase() / getReadableDatabase() 第一次被调用时才会进行创建 / 打开

}

/**

* 复写onUpgrade()

* 调用时刻:当数据库升级时则自动调用(即 数据库版本 发生变化时)

* 作用:更新数据库表结构

* 注:创建SQLiteOpenHelper子类对象时,必须传入一个version参数,该参数 = 当前数据库版本, 若该版本高于之前版本, 就调用onUpgrade()

*/

@Override

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

// 参数说明:

// db : 数据库

// oldVersion : 旧版本数据库

// newVersion : 新版本数据库

// 使用 SQL的ALTER语句

String sql = "alter table person add sex varchar(8)";

db.execSQL(sql);

}

}

3.2 创建数据库:getWritableDatabase()、getReadableDatabase()

// 步骤1:创建DatabaseHelper对象

// 注:此时还未创建数据库

SQLi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值