Android学习(26) -- 数据存储之SQLite数据库的创建
来源:互联网 发布:匈牙利 基督之盾 知乎 编辑:程序博客网 时间:2024/05/05 08:23
SQLite数据库
- 轻量级关系型数据库
创建数据库需要使用的api:SQLiteOpenHelper
必须定义一个构造方法:
//arg1:数据库文件的名字//arg2:游标工厂//arg3:数据库版本public MyOpenHelper(Context context, String name, CursorFactory factory, int version){}
- 数据库被创建时会调用:onCreate方法
- 数据库升级时会调用:onUpgrade方法
创建数据库
//创建OpenHelper对象MyOpenHelper oh = new MyOpenHelper(getContext(), "person.db", null, 1);//获得数据库对象,如果数据库不存在,先创建数据库,后获得,如果存在,则直接获得SQLiteDatabase db = oh.getWritableDatabase();
- getWritableDatabase():打开可读写的数据库
- getReadableDatabase():在磁盘空间不足时打开只读数据库,否则打开可读写数据库
getWritableDatabase() 和 getReadableDatabase() 方法都可以获取一个用于操作数据库的SQLiteDatabase实例。其中 getReadableDatabase() 方法中会调用 getWritableDatabase()方法。
其中getWritableDatabase() 方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用的是getWritableDatabase() 方法就会出错。
getReadableDatabase() 方法则是先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。如果该问题成功解决,则只读数据库对象就会关闭,然后返回一个可读写的数据库对象。
在创建数据库时创建表
public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL("create table person (_id integer primary key autoincrement, name char(10), phone char(20), money integer(20))");}
数据库创建、创建表
public class MyOpenHelper extends SQLiteOpenHelper { public MyOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor stub } //数据库创建时,此方法会调用 @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table person(_id integer primary key autoincrement, name char(10), salary char(20), phone integer(20))"); } //数据库升级时,此方法会调用 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { System.out.println("数据库升级了"); }}
单元测试
public class TestCase extends AndroidTestCase { //此时测试框架还没有初始化完毕,没有虚拟上下文对象 public void test(){ //getContext():获取一个虚拟的上下文 MyOpenHelper oh = new MyOpenHelper(**getContext()**, "people.db", null, 1); //如果数据库不存在,先创建数据库,再获取可读可写的数据库对象,如果数据库存在,就直接打开 SQLiteDatabase db = oh.getWritableDatabase(); //如果存储空间满了,那么返回只读数据库对象// SQLiteDatabase db = oh.getReadableDatabase(); } }
0 0
- Android学习(26) -- 数据存储之SQLite数据库的创建
- Android学习(27) -- 数据存储之SQLite数据库的增删改查
- Android数据存储之SQLite数据库存储
- Android数据存储之SQLite数据库存储
- Android数据存储之SQLite数据库存储
- Android数据存储之:SQLite数据库存储
- Android 数据存储之SQLite数据库存储
- Android数据存储之SQLite数据库存储
- Android学习笔记034之数据存储—SQLite数据库
- Android学习笔记三十四之数据存储—SQLite数据库
- Android数据的四种存储方式之SQLite数据库
- Android 数据存储之 SQLite嵌入式数据库
- Android数据存储之Sqlite数据库
- Android 数据存储 之 SQLite数据库详解
- Android 数据存储 之 SQLite数据库详解
- Android 数据存储 之 SQLite数据库详解
- Android 数据存储 之 SQLite数据库详解
- Android 数据存储 之 SQLite数据库详解
- c++学习(一) 数据类型
- 关于 BFS 中 打印路径的问题
- Boosting与Bagging
- 【UNET自学日志】Part5 解决延迟产生的画面不流畅问题
- 查看Linux系统的硬件配置及查看CPU、内存运行情况
- Android学习(26) -- 数据存储之SQLite数据库的创建
- XML error parsing SOAP payload on line 2: Invalid document end
- Isight软件调用matlab
- CentOS6 在VirtualBox中实现全屏和根据窗口大小自动调整分辨率 | Install Guest additions and run fullscreen mode on VirtualB
- 高精度加法
- Struts+spring+Hibernate+Mysql--环境搭建
- 关于自考这件事儿~
- 深入理解JavaScript模块化编程:RequireJS
- 大话设计模式-抽象工厂模式