复制的基本方法是1使用getResources()openRawResource方法获得res/raw目录中资源的 InputStream对象,2然后将该InputStream对象中的数据写入其他的目录中相应文件中。3 在Android SDK中可以使用SQLiteDatabaseopenOrCreateDatabase方法来打开任意目录中的SQLite数据库文件基本思路,总结来说, 应该是这样子的。先判断是用户是否有SD卡,(PS:虽然绝大部分用户手机是带SD卡的,但我们也必须考虑一下没有SD卡用户的感受)如果没有SD卡,则把数据库拷贝到用户的手机的data内存中,如果有SD卡,则把数据库拷贝到SD卡中。当然更好的建议,应该是这样子的, 不是在程序中拷贝数据库,而是在程序首次运行时,代码建立数据库(在SD卡上或用户手机内存Data区),然后再住这个数据库中填充数据。
android 中SQliteDatabase数据库使用SQLiteOpenHelper辅助类来创建SQLite数据库视图,如下代码:
create view 表名 as 定义
SQLiteOpenHelper类是一个辅助类,用于创建或打开数据库。
该类的使用方法一般是自定义一个子类,继承自SQLiteOpenHelper,并覆写其中最关键的两个方法:onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)。当新建一个数据库时会调用前者,一般在里面做一些创建表或视图的 *** 作。数据库版本升级时则会调用后者。
定义好子类后(假如叫SqlHelper),只要调用SqlHelper对象的getReadableDatabase()方法或getWritableDatabase()方法即可返回一个SQLiteDatabase对象。如果是第一次调用,则会创建数据库。随后可使用SQLiteDatabase对象的方法进行数据 *** 作,如:execSQL(), insert(), update(), query(), rawQuery(), delete()等。
这种方式通常连接一个外部的数据库,第一个参数就是数据库文件,这个数据库不是当前项目中生成的,通常放在项目的Assets目录下,当然也可以在手机内,如上面参数那个目录,前提是那个文件存在且你的程序有访问权限。
另一种使用数据库的方式是,自己创建数据库并创建相应的数据库表,参考下面的代码:
public class DatabaseHelper extends SQLiteOpenHelper {
//构造,调用父类构造,数据库名字,版本号(传入更大的版本号可以让数据库升级,onUpgrade被调用)
public DatabaseHelper(Context context) {
super(context, DatabaseConstantDATABASE_NAME, null, DatabaseConstantDATABASE_VERSION);
}
//数据库创建时调用,里面执行表创建语句
@Override
public void onCreate(SQLiteDatabase db) {
dbexecSQL(createVoucherTable());
}
//数据库升级时调用,先删除旧表,在调用onCreate创建表
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
dbexecSQL("DROP TABLE IF EXISTS " + DatabaseConstantTABLE_NAME);
onCreate(db);
}
//生成 创建表的SQL语句
private String createVoucherTable() {
StringBuffer sb = new StringBuffer();
sbappend(" CREATE TABLE ")append(DatabaseConstantTABLE_NAME)append("( ")append(“ID”)
append(" TEXT PRIMARY KEY, ")
append(“USER_ID”)append(" INTEGER, ")append(“SMS_CONTENT”)append(" TEXT ) ");
return sbtoString();
}
} 继承SQLiteOpenHelper并实现里面的方法
之后:
//得到数据库助手类
helper
=
new
DatabaseHelper(context);
//通过助手类,打开一个可读写的数据库连接
SQLiteDatabase
database
=
helpergetReadableDatabase();
//查询表中所有记录
databasequery(DatabaseConstantTABLE_NAME,
null,
null,
null,
null,
null,
null);
android读取数据库可以使用sqlite一些api进行读取,实例如下:
/查找一条数据
@param uid
/
public User find(Integer uid){
SQLiteDatabase db=dbOpenHelpergetReadableDatabase(); //创建数据库辅助类
Cursor cursor =dbrawQuery("select from user where uid=", new String[]{uidtoString()}); //创建一个游标
if(cursormoveToFirst()){ //循环遍历查找数组
int uid2=cursorgetInt(cursorgetColumnIndex("uid"));
String uname=cursorgetString(cursorgetColumnIndex("uname"));
String uaddress=cursorgetString(cursorgetColumnIndex("uaddress"));
User user=new User();
usersetUid(uid2);
usersetUname(uname);
usersetUaddress(uaddress);
return user;
}
cursorclose();
return null;
}
以上就是关于android如何使用数据库文件全部的内容,包括:android如何使用数据库文件、如何在android中使用sqlite数据库、android 如何连接数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)