Sqlite数据库存储和Android单元测试

1..路径 /data/data/packageName/database/xxx.db

2.特点

>  存储有一定关系结构的数据

> 应用卸载时自动删除

3.Sqlite的特点:

> 小

> 快

4.相关API

1).SQLiteOpenHelper: 数据库操作的抽象帮助类

> SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version) : 构造方法,指定数据库文件名和版本号

> abstract void onCreate(SQLiteDatabase db) : 用于创建表

> abstract void onUpgrade() : 用于版本更新

> SqliteDatabase getReadableDatabase() : 得到数据库连接

2). SqliteDatabase : 代表与数据库的连接的类

> long insert() : 用于执行 insert SQL, 返回 id 值 

> int update() : 用于执行 updateSQL

> int delete() : 用于执行 delete SQL

> Cursor query() : 用于执行 select SQL, 返回包含查询结果数据的Cursor

> void execSql(sql) : 执行 sql 语句


> beginTransaction() : 开启事务

> setTransaction() : 设置事务是成功的

> endTransaction() : 结束事务,可能提交事务或回滚事务

> openDatabase(String path, CursorFactory factory, int flags) : 得到数据库连接

3). Cursor : 包含所有查血结果记录的结果集对象(光标,游标)

> int getCount() : 匹配的总记录数

> boolean moveToNext() : 将游标移动到下一条记录的前面

> Xxx getXxx(columnIndex) : 根据字段下标得到对应值

> int getColumnIndex(columnname) : 根据字段名得到对应的下标

5.Android中的 junit 测试

1). 添加配置信息

<application>

<!--使用android测试包-->

<uses-library android:name="android.test.runner" />

</application>

<!-- android:targetPackage的值应与manifest的package的值一致-->

<instrumentation android:name="android.test.InstrumentationTestRunner"  android:targetPackage="com.atguigu.t4_storage" />

2).编写测试类

class StudentTest extends AndroidTestCase


一.创建一个DataBaseHelper DataBaseHelper是一个访问SQLite的助类,提供两个方面的功能 1.getReadableDatebase(),getWriteableDatabase()可以获取SQLiteDatabase对象,通过 2.提供了onCreate()和onUpdate()两个回调函数,允许我们常见和升级数据库是进行使用 A、 在SQLiteOpenHelper的子类当中,必须要有的构造函数 B、该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDataBase对象的时候onCreate 二、创建一个实体person类并且给字段和封装 三、创建一个业务类对SQL的CRUD操作 1.getWritableDatabase()和getReadableDatabase()的区别 ,两个方法都可以获取一个用于操作数据库SQLiteDatabase实例 2.execSQL(增,删,改都是这个方法)和close();android内部有缓存可关闭也不关闭也行,查询rawQuery是方法 3.在分页有到Cursor(游标)取游标下一个值cursor.moveToNext(),用游标对象接数据 "select * from person limit ?,?" person不能加上where 关键字 4.在删除注意:sb.deleteCharAt(sb.length() - 1); 四、AndroidCRUD业务对SQLite的CRUD操作 1.ContentValues对象的使用 2.android内部insert添加数据的方法,而且values这个不给值也必须要执行,而主键是不是null的其他字段的值是为null 3.insert update query delete 五、单元测试类要注意的 AndroidCRUDService curdService = new AndroidCRUDService(this.getContext()); /* * 注意:getContext必须在我们使用前已经注解进去的,在使用前要实力化,而且是使用后才有上下文 *一般设置为局部对象 */ 六、AndroidManifest.xml的配置 <!-- 配置用户类库android.test.runner测试 --> package jll.sqlitedb; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; /** * *@author Administrator DataBaseHelper是一个访问SQLite的助类,提供两个方面的功能 * 1.getReadableDatebase(),getWriteableDatabase()可以获取SQLiteDatabase对象,通过 * 2.提供了onCreate()和onUpdate()两个回调函数,允许我们常见和升级数据库是进行使用 */ public class DataBaseHelper extends SQLiteOpenHelper { // 给一个默认的SQLite数据库名 private static final String DataBaseName = "SQLite_DB"; private static final int VERSION = 2; // 在SQLiteOpenHelper的子类当中,必须要有的构造函数 public DataBaseHelper(Context context, String name, CursorFacto
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值