android中访问已有的sqlite数据库

这个问题也困扰了我好久。经过多方尝试终于解决。
仅供向我这样的初学者参考。

1.先将已有的.db文件拷贝到android默认的目录下。
很多人就在这里挡住了,怎么copy呢?这里就要用到android自带的tools  工具了。【详细介绍可参考:http://hi.baidu.com/_java/blog/item/df0a8c34d5b4ffbfd0a2d3e9.html
首先,查询默认目录有哪些.db
        [开始 - cmd  -输入adb shell --回车(也可开始 - adb shell)] 这样启动了adb.exe窗口
        ls:显示目录
        cd 目录名  :进入目录,有人问那返回上一目录是什么?回答cd ..(注意cd后有一空隔)   
        通过连续的ls,cd就能看到我们默认db目录是在/data/data/[你的包名]如com.android/databases/   
好,知道目录径了,下面把我们的.db拷贝到下面。
        [开始 - cmd ]进入普通cmd窗口。
        输入:adb push D:/feiv.db /data/data/com.android/databases/feiv.db [将本地文件拷贝到默认android目录]
               adb pull /data/data/com.android/databases/feiv.db D:/feiv.db  [当然这个是拷出来啦]
        一点注意:是[/data]而不是[data]
经过上面的操作后,你再在adb.exe窗口里输入ls就能看到刚拷进去的文件了。
2.好了,有.db了,现在就是在代码里用就可以了。
用法很多地方也有介绍
我这里用this.sqliteDb = mcontext.openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null);
openOrCreateDatabase()这个方法是打开一个db,如果没有的话,则会创建。


对了,还值得提一点,就是android 里用simpleCursorAdapter要求表里字段必须有"_id"这样的字段[ 不知道Android平台为什么这样设计?],不然查询报错。而我们导入进去的表里可能没有含有_id这样的字段,所以必须修改或增加。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一.创建一个DataBaseHelper DataBaseHelper是一个访问SQLite的助类,提供两个方面的功能 1.getReadableDatebase(),getWriteableDatabase()可以获取SQLiteDatabase对象,通过 2.提供了onCreate()和onUpdate()两个回调函数,允许我们常见和升级数据库是进行使用 A、 在SQLiteOpenHelper的子类当,必须要有的构造函数 B、该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDataBase对象的时候onCreate 二、创建一个实体person类并且给字段和封装 三、创建一个业务类对SQL的CRUD操作 1.getWritableDatabase()和getReadableDatabase()的区别 ,两个方法都可以获取一个用于操作数据库SQLiteDatabase实例 2.execSQL(增,删,改都是这个方法)和close();android内部有缓存可关闭也不关闭也行,查询rawQuery是方法 3.在分页有到Cursor(游标)取游标下一个值cursor.moveToNext(),用游标对象接数据 "select * from person limit ?,?" person不能加上where 关键字 4.在删除注意:sb.deleteCharAt(sb.length() - 1); 四、AndroidCRUD业务对SQLite的CRUD操作 1.ContentValues对象的使用 2.android内部insert添加数据的方法,而且values这个不给值也必须要执行,而主键是不是null的其他字段的值是为null 3.insert update query delete 五、单元测试类要注意的 AndroidCRUDService curdService = new AndroidCRUDService(this.getContext()); /* * 注意:getContext必须在我们使用前已经注解进去的,在使用前要实力化,而且是使用后才有上下文 *一般设置为局部对象 */ 六、AndroidManifest.xml的配置 <!-- 配置用户类库android.test.runner测试 --> package jll.sqlitedb; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; /** * *@author Administrator DataBaseHelper是一个访问SQLite的助类,提供两个方面的功能 * 1.getReadableDatebase(),getWriteableDatabase()可以获取SQLiteDatabase对象,通过 * 2.提供了onCreate()和onUpdate()两个回调函数,允许我们常见和升级数据库是进行使用 */ public class DataBaseHelper extends SQLiteOpenHelper { // 给一个默认的SQLite数据库名 private static final String DataBaseName = "SQLite_DB"; private static final int VERSION = 2; // 在SQLiteOpenHelper的子类当,必须要有的构造函数 public DataBaseHelper(Context context, String name, CursorFacto

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值