一般在开发程序中,经常使用数据的存储功能,如在使用Delphi开发程序时,存储程序的简单设置的INI文件,在C#开发中有时也需要存储简单的设置,个人一般存储在XML中,也在INI中存储过,但是不如XML使用方便,那么这些都是简单的数据存储功能,在Android中也支持这样的文件存储,但是现在这里主要说的还是使用SQLite存储数据,SQLite是一种跨平台的数据库,是单文件式的,如咱们平常见的最多的Access数据库,但是他有比Access更好的平台支持,并且支持分页,现在主要是用于嵌入式的开发。
在开发过程中其实可以直接声明数据库对象来进行存储管理的,代码如下:
SQLiteDatabase sqlitedb;//数据库对象
sqlitedb=this.openOrCreateDatabase(datebaseName, MODE_PRIVATE,null);
//执行代码:
SqlString="create table"+tableName
+"(_id integer primary key,num integer,data text)";
sqlitedb.execSQL(SqlString);
这种方式需要我们处理的内容更多一些,个人感觉不是太方便,就像我们开发C#的程序使用SqlHelper一样,在Android平台中也提供了一个类似的类:
SQLiteOpenHelper 这样类
我们可以通过实现这个类来完成我们的操作,这样更简单和高效:
代码如下:
importandroid.content.Context;
importandroid.database.Cursor;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteOpenHelper;
importandroid.database.sqlite.SQLiteDatabase.CursorFactory;
publicclassDBHelperextendsSQLiteOpenHelper {
privatestaticfinalintDB_VERSION=1;
publicDBHelper(Context context, String name, CursorFactory factory,
intversion) {
super(context, name, factory, version);
//TODO Auto-generated constructor stub
}
publicDBHelper(Context context, String dBName) {
super(context, dBName,null, DB_VERSION);
}
@Override
publicvoidonCreate(SQLiteDatabase db) {
//TODO Auto-generated method stub
}
publicvoidonCreate(SQLiteDatabase db, String createDBSql) {
//TODO Auto-generated method stub
db.execSQL(createDBSql);
}
@Override
publicvoidonUpgrade(SQLiteDatabase db,intoldVersion,intnewVersion) {
//TODO Auto-generated method stub
}
@Override
publicvoidonOpen(SQLiteDatabase db) {
//TODO Auto-generated method stub
super.onOpen(db);
}
publicvoidInsertintoDB(SQLiteDatabase db,String sql)
{
db.execSQL(sql);
}
publicCursor opendb(SQLiteDatabase db,String sql) {
returndb.rawQuery(sql,null);
}
}
在这里只做了一个简单的写作,没有写太多方法这个只是一个引导,可以对这个类进行扩展,这样使用起来更方便一些。
下面是一个简单的调用:
//声明
SQLiteDatabase db=null;
DBHelper dbhelper=null;
//实例化
dbhelper=newDBHelper(this,"DBName");
//方法
voidCreateTable() {
String sql="Create Table if not exists"+TABLE_NAME+"("+ID
+"text not null ,"+NAME+"text not null );";
dbhelper.onCreate(db, sql);
}
voidInsertDB(String id, String name) {
db=dbhelper.getWritableDatabase();
String sql="insert into"+TABLE_NAME+"("+ID+","+NAME
+") values('"+id+"','"+name+"')";
dbhelper.InsertintoDB(db, sql);
}
voidgetDB() {
db=dbhelper.getReadableDatabase();
String sql="select * from"+TABLE_NAME;
Cursor cursor=dbhelper.opendb(db, sql);
String text="";
while(cursor.moveToNext()) {
for(inti=0; i<cursor.getColumnCount(); i++) {
text+=cursor.getString(i);
}
text+="\n";
}
Toast
.makeText(this, cursor.getCount()+"\n"+text,
Toast.LENGTH_LONG).show();
}