Android使用Sqlite存储数据用法示例
本文实例讲述了Android使用Sqlite存储数据的方法。分享给大家供大家参考,具体如下:
一般在开发程序中,经常使用数据的存储功能,如在使用Delphi开发程序时,存储程序的简单设置的INI文件,在C#开发中有时也需要存储简单的设置,个人一般存储在XML中,也在INI中存储过,但是不如XML使用方便,那么这些都是简单的数据存储功能,在Android中也支持这样的文件存储,但是现在这里主要说的还是使用SQLite存储数据,SQLite是一种跨平台的数据库,是单文件式的,如咱们平常见的最多的Access数据库,但是他有比Access更好的平台支持,并且支持分页,现在主要是用于嵌入式的开发。
在开发过程中其实可以直接声明数据库对象来进行存储管理的,代码如下:
SQLiteDatabasesqlitedb;//数据库对象 sqlitedb=this.openOrCreateDatabase(datebaseName,MODE_PRIVATE,null); //执行代码: SqlString="createtable"+tableName+"(_idintegerprimarykey,numinteger,datatext)"; 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(Contextcontext,Stringname,CursorFactoryfactory,intversion){
super(context,name,factory,version);
//TODOAuto-generatedconstructorstub
}
publicDBHelper(Contextcontext,StringdBName){
super(context,dBName,null,DB_VERSION);
}
@Override
publicvoidonCreate(SQLiteDatabasedb){
//TODOAuto-generatedmethodstub
}
publicvoidonCreate(SQLiteDatabasedb,StringcreateDBSql){
//TODOAuto-generatedmethodstub
db.execSQL(createDBSql);
}
@Override
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidonOpen(SQLiteDatabasedb){
//TODOAuto-generatedmethodstub
super.onOpen(db);
}
publicvoidInsertintoDB(SQLiteDatabasedb,Stringsql)
{
db.execSQL(sql);
}
publicCursoropendb(SQLiteDatabasedb,Stringsql){
returndb.rawQuery(sql,null);
}
}
在这里只做了一个简单的写作,没有写太多方法这个只是一个引导,可以对这个类进行扩展,这样使用起来更方便一些。
下面是一个简单的调用:
//声明
SQLiteDatabasedb=null;
DBHelperdbhelper=null;
//实例化
dbhelper=newDBHelper(this,"DBName");
//方法
voidCreateTable(){
Stringsql="CreateTableifnotexists"+TABLE_NAME+"("+ID+"textnotnull,"+NAME+"textnotnull);";
dbhelper.onCreate(db,sql);
}
voidInsertDB(Stringid,Stringname){
db=dbhelper.getWritableDatabase();
Stringsql="insertinto"+TABLE_NAME+"("+ID+","+NAME+")values('"+id+"','"+name+"')";
dbhelper.InsertintoDB(db,sql);
}
voidgetDB(){
db=dbhelper.getReadableDatabase();
Stringsql="select*from"+TABLE_NAME;
Cursorcursor=dbhelper.opendb(db,sql);
Stringtext="";
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();
}
在此只是提供一下简单的参考!欢迎批评指正!
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android操作SQLite数据库技巧总结》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。