采用将项目中的sqlite文件拷到android内存卡上的固定位置,先判断位置上是否存在sqlite文件,不存在则复制文件。 sqlite可放在res的raw目录下,亦可放在assets下,放在assets下,可新建其他层次目录,本例选择assets
1首先,添加sdcard权限在AndroidManifestxml
<uses-permission android:name="androidpermissionWRITE_EXTERNAL_STORAGE" />
在activity中有如下代码
2Java代码
button2setOnClickListener(new ButtonOnClickListener() {
@Override
publicvoid onClick(View arg0) {
try{
String DATABASE_PATH = androidosEnvironmentgetExternalStorageDirectory()getAbsolutePath()
+ "/testdb"; //将要存放于的文件夹
String DATABASE_FILENAME = "testDatabasedb"; //文件名
String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;
File dir = new File(DATABASE_PATH);
// 如果/sdcard/testdb目录中存在,创建这个目录
if (!direxists())
dirmkdir();
// 如果在/sdcard/testdb目录中不存在
// testdb文件,则从asset\db目录中复制这个文件到
// SD卡的目录(/sdcard/testdb)
if (!(new File(databaseFilename))exists()) {
// 获得封装testDatabasedb文件的InputStream对象
AssetManager asset=getAssets();
InputStream is=assetopen("db/testDatabasedb");
FileOutputStream fos = new FileOutputStream(databaseFilename);
byte[] buffer = newbyte[8192];
int count = 0;
// 开始复制testDatabasedb文件
while ((count = isread(buffer)) > 0) {
foswrite(buffer, 0, count);
}
fosclose();
isclose();
assetclose();
}
SQLiteDatabase mSQLiteDatabase=openOrCreateDatabase(databaseFilename, ActivityMODE_PRIVATE, null);//有则打开,没有创建
Cursor cur=mSQLiteDatabaserawQuery("select from table1", null);
if(cur!=null){
if(curmoveToFirst()){
do{
int idColumnIndex=curgetColumnIndex("id");
int numColumnIndex=curgetColumnIndex("num");
int dataColumnIndex=curgetColumnIndex("data");
int id=curgetInt(idColumnIndex);
int num=curgetInt(numColumnIndex);
String data=curgetString(dataColumnIndex);
Systemoutprintln("id:"+id+";num:"+num+";data:"+data);
}while(curmoveToNext());
curclose();
}
}
mSQLiteDatabaseclose();//关闭数据库连接
}catch(Exception e){
eprintStackTrace();
}
//deleteDatabase("testDatabasedb");//删除数据库
}
});
假设libxml2 库放在 /user/lib 目录下,则可以像下面这种方式包含libxml2 这个库
在你的pro文件中,加入下面这一行:
LIBS += /user/lib/libxml2lib
然后在你工程中包含libxml2的头文件。
可以试下,我还没试过。好久没用Linux了。
如果上面的方法不管用,你可以考虑直接使用qt提供的xml解析类 QXmlReader
用QXmlReader 可以很方便地对xml进行解析,具体使用方法见qt 的帮助文档
以上就是关于qt怎么连接已经存在的sqlite3数据库全部的内容,包括:qt怎么连接已经存在的sqlite3数据库、哪位大侠知道 Linux 下的 QT 下怎样访问 libxml2 的库 求教了。。。先拜谢。。、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)