SQLite是止前最流行的数据库软件,它支持SQL语言,可以非常好的提升软件的性能,开源性也极好,东坡这里附上安卓Android sqlite万能数据库,有需要的欢迎下载!
安卓Android sqlite万能数据库特色介绍
安卓里常用的存储有方法中少不了数据库的使用,主要是对单表的操作,多表的操作此处不涉及。每次使用数据库都会有繁琐的代码要写,大致思路是继承自SQLiteOpenHelper写一个数据库操作子类,然后重写onCreate方法,写上数据库的建表语句,重写onUpgrade方法,写上数据库的升级执行代码,此外还有繁琐的增、删、改、查语句。每次建一张表都要做这些重复的工作,能不能用一种通用的方法,把这些繁琐的事务交给程序自动去完成呢?代码里告诉你答案。
android操作sqlite数据库操作心得
写一下android操作数据库中的一些准备。
首先,配一下adb的环境变量,因为每次都要到adb的目录下去启动实在太麻烦了,下面是具体步骤,当然也可以该其他文件,我习惯改这个,可以改完后可以source一下使它生效。
1、sudogedit/etc/profile
2、将下面的两句加到上面打开的文件里
exportANDROID_HOME=/home/sdk文件路径
exportPATH=$PATH:$ANDROID_HOME/platform-tools
3、重启电脑,大功告成!!
adb配好以后,我们最好还要给手机里的数据库访问的权限,一般在/data/data/包名/database里面,用adbshell进入后su获得手机root权限,然后给权限chmod。
要读数据库文件的话就用命令sqlite3数据库文件,其中的数据库可以直接在adbshell中运行sqlite3,但我按照网上弄的就是不能在adbshell中打开sqlite3数据库,说命令没有找到,我该传的文件都传了,没办法,只有在eclipse里的ddms的fileexplore里把数据库文件到处然后在Linux终端里运行sqlite3数据库来看了。
还有要注意的是写sql语句时一定要注意"select*from"+TABLE_NAME中的from和引号要留有空格,不然的话就连在一起了。
下面的有一个知识要讲一下,sqlite的增加,删除等操作都挺简单的,麻烦的就是查询操作,一般都借用Cursor来保存查询数据,一开始我没怎么注意这是一个指针类型,指向数据库里的数据,而我一开始写的时候把数据库的关闭操作写在了Cursor操作的前面,也就是说先把数据库关闭了再对Cursor对象进行操作,这样的话就造成了Cursor的空指针,也就注定杯具了好久。。。
常见问题
1、为什么要把已存在数据库文件放在res/raw文件夹下, 放在其它地方可以吗?
如果放在res/raw文件夹下,数据库文件在apk打包的时候就必须确定并且不可更改,否则每次都要重新编译生成apk,在使用的时候会很麻烦,所以最好是将数据库文件放置在sd卡的某个位置。
经过验证得知,数据库文件可以放置到其它位置,例如sd卡的某个位置,至于放在什么位置根据具体情景来觉得,上面的代码只是一个例子而已,当然放在不同的位置,访问文件的时候的方式也不一样。当然注意要访问sd卡的时候一定要在AndroidManifest.xml文件中添加访问sd卡的权限。
2、上面的代码没有判断已存在的数据库文件是否存在?一是为了代码的严谨性考虑,二是因为在特殊的机子上可能不需要之前已经存在的数据库,希望自己配置并生成数据库,此时就不需要复制之前的数据库。
这个问题根据实际情景来决定是否需要判断已存在的数据库文件是否存在,判断的时候根据数据库文件放置的位置不同而不同,另外如果防止在res/raw文件夹下没有办法判断数据库文件是否存在,因为访问res/raw文件夹下的文件使用的方法是R.raw.xxx,如果文件不存在,没办法得到数据库文件的对象,所以也就没办法判断,补充一个知识res/raw文件夹下的文件的绝对路径是”android.resource://”+ getPackageName() + R.raw.xxx。
- PC官方版
- 安卓官方手机版
- IOS官方手机版