您的位置:首页 > 移动开发 > Android开发

一看就会Android之SQLite数据库的使用思路

2015-10-24 15:07 429 查看


SQLite数据库适用于小型手机APP的数据存储,如果是为某个网站开发手机客户端app,那么它所公用的数据库就不是SQLite了,而是服务器端安装的MySQL或者其他比较大的数据库,此时要进行数据访问就要进行网络编程,使用Socket等知识。

在实际的开发中通常使用SQLiteOpenHelper的子类来管理数据库的链接,使用此方法如果数据库以及数据库表还不存在,系统会自动调用onCreate(SQLiteDatabase
db)方法来完成创建,此外如果创建SQLiteOpenHelper的子类的实例时传入的版本号高于之前的版本号,系统会自动调用onUpgrade()方法来更新数据库。

1.SQLiteOpenHelper的子类的作用是用来初始化数据库,即第一次使用时的建库和建表,并且允许应用程序通过该子类的实例通过调用getWritableDatabase()方法或者getReadableDatabase()方法来获取SQLiteDatabase对象db,从而就可以利用该对象db来操作数据库了(CRUD);

例如如下的数据库操作工具类:

public
classDBOpenHelper
extends SQLiteOpenHelper{

//定义数据库的名称和数据库版本号

private
static
final String
DBNAME =
"acount.db3";

private
static
final
int
VERSION = 1;

//定义创建表的sql语句
String
sql_flag =
"createtable tb_flag(_id integer primary key autoincrement,flag varchar(20))";

//构造方法

public DBOpenHelper(Contextcontext) {

super(context,
DBNAME,
null,
VERSION);

}

@Override

public
voidonCreate(SQLiteDatabase db) {

//第一次使用数据库时执行该方法,创建4张表

db.execSQL(sql_flag);

}

@Override

public
voidonUpgrade(SQLiteDatabase arg0,
int oldVersion,
intnewVersion) {

//该方法在数据库的版本发生变化时会被调用

System.out.println("数据库版本发生了改变!");

}

}

2.以上创建了数据库管理类DBOpenHelper之后,在dao层的各个类中就可以使用如下来创建数据库的SQLiteDatabase对象db了:

public
classInaccountDAO {

private DBOpenHelper
helper;//创建DBOpenHelper对象

private SQLiteDatabase
db;//创建SQLiteDatabase对象

//定义构造方法,在通过构造方法创建InaccountDAO对象的过程中,同时初始化了helper对象

public InaccountDAO(Contextcontext){

helper =
newDBOpenHelper(context);

}

//1.添加收入信息记录,参数为收入信息对象,返回值为空

public
voidadd(Tb_inaccount inaccount){

//初始化db对象

db =
helper.getReadableDatabase();

//执行添加的操作

//或者直接使用helper.getReadableDatabase().execSQL(……);这样就不用声明db对象了

db.execSQL("insertinto
tb_inaccount (_id,money,time,type,handler,mark)values(null,?,?,?,?,?)",

newObject[]{inaccount.getMoney(),inaccount.getTime(),inaccount.getType(),

inaccount.getHandler(),inaccount.getMark()

});

}

3.然后再每个activity中创建dao层对象时,传入参数Context,就可以调用各个方法了:

InaccountDAOinaccountDAO =
new InaccountDAO(AddInaccount.this);

//调用指定的方法返回list集合等类型结果

Listlist = inaccountDAO.XXX();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: