怎样使用sqlite expert管理android手机sqlite数据库
答案:2 悬赏:0 手机版
解决时间 2021-02-18 04:12
- 提问者网友:咪咪
- 2021-02-17 19:22
怎样使用sqlite expert管理android手机sqlite数据库
最佳答案
- 五星知识达人网友:执傲
- 2021-02-17 19:42
在网上找了大把大把的资料、还是没能怎么弄清楚关于SQLite升级。固把一些网上找到的资料跟自己摸索出来的东西一起发出来。望有厉害的前辈能够指点一二。
先上网上一些高手的资料:blog/yaya_soft/article/details/17089353 、 /topic/1127838。
其中我所在的情况跟第三位前辈所遇到的情况一样, 先说Android SQLite吧, Android系统本身自带了一个建立SQLite的工具SQLiteOpenHelper、我们只要继承它,里面有几个重写的方法。
为了方便快捷、我只列出了onCreate方法跟onUpgrade方法。 onCreate方法是我们第一次创建数据库的时候会调用,onUpgrade()是我们数据库版本号不一样的时候会调用。网上很多资料都说如果要进行数据库升级,那就直接在onUpgrade里面写你所需要的进行的操作。比如:
至于里面代码具体的作用可以参照上面第一 第二个链接,里面有详细解释。
本人的情况是:本人使用外带的可视化工具直接把数据库跟表都已经建立好了,直接复制在raw目录下面。就没有通过系统自带的方法来建立数据库跟表。于是网上找资料一直不明白他们所谓的 在onUpgrade里面进行升级。 因为本人代码压根就没onUpgrade方法可以使用。 完了在网上找到各种资料、最终明白:无论你是用系统自带的SQLiteOpenHelper工具建立数据库跟表、还是使用外带工具。如果你要进行数据库升级。你所需要的操作都是一样的。只是系统自带的里面有onUpgrade()方法直接调用。而用外带工具的话你肯定也有一个自己写的SQLite操作类、只是使用自己写的操作类的话、onUpgrade()方法也是我们自己写。 反正里面要进行的操作都是一样的。
现在就看看如何进行数据库升级。
关于这块代码、如果你使用自己写的SQLite操作类,那你一看就明白。我们只需要得到db对象。就可以使用 db.execSQL("ALTER TABLE Subscription ADD COLUMN Activation BLOB"); 这个和SQLiteOpenHelper里面onUpgrade()方法里面的操作是一样的;同样是升级数据库的操作。
接下来就说说怎么判断数据库需要升级、这个就是涉及到版本匹配了、
再看这块代码、我们只要拿到db对象、就可以拿到db对应的版本、同时也可以更新db 的版本。完了我们可以参照上面链接中第三位前辈的方法、把我们最新的数据库版本定义在versionCode在AndroidManifest.xml文件中。 这样你最新数据库版本跟以前数据库版本都有了 、就可以判断更新不更新。这里解释下关于外带数据库的一些事情: 外带数据即我们通过sqlite expert professional可视化 工具建立一个sqlite.db文件、同时把文件放在raw目录下、我们每次进行数据库操作的时候就会先把raw目录下的sqlite.db复制到手机里面的路径下(如果手机路径里面存在sqlite.db就不复制)、完了以后每次取数据库都是从手机路径里面取的。如果我们raw目录下的sqlite.db进行了更新(我们自己把数据表改下、直接替换 ).同时我们的apk版本进行升级更新的时候覆盖安装apk。我们手机目录下的sqlite.db是不会更新的,还是旧版本。 但是我们raw目录下的sqlite.db是新版本。这个时候也不会再复制到手机。 这就需要我们把手机目录下的sqlite.db替换成raw目录下的。 写到这里我又想起一个事情:以前有位同事问为什么要把raw目录下的sqlite.db复制到手机、然后又操作手机路径下的sqlite.db 这不是多此一举吗。他说可以把sqlite.db放在assets目录下、不复制到手机路径。直接就是操作assets目录下的sqlite.db,这样每次数据库更新就直接替换assets目录下的sqlite.db。 我不知道放在assets目录下的好处、同时也不知道放在raw 然后复制到手机路径的好处。 这些我都不知道(望高人指点), 我只知道反正就是不能直接替换salite.db , 直接替换的话就是把旧版本的sqlite.db删除、再安装新版本的sqlite.db。
如果这样操作的话好像以前的数据都会丢失、就好像卸载重装一样。 无论何种方式我们要想保留数据都要进行数据的转移。关于数据转移前面给的链接中有。这里就不多讨论了。 发这篇文章只是自己搞这块的时候,一直被网上说的在onUpgrade()方法中直接更新搞糊涂了。 在这里记下来、免得下次不记得。
先上网上一些高手的资料:blog/yaya_soft/article/details/17089353 、 /topic/1127838。
其中我所在的情况跟第三位前辈所遇到的情况一样, 先说Android SQLite吧, Android系统本身自带了一个建立SQLite的工具SQLiteOpenHelper、我们只要继承它,里面有几个重写的方法。
为了方便快捷、我只列出了onCreate方法跟onUpgrade方法。 onCreate方法是我们第一次创建数据库的时候会调用,onUpgrade()是我们数据库版本号不一样的时候会调用。网上很多资料都说如果要进行数据库升级,那就直接在onUpgrade里面写你所需要的进行的操作。比如:
至于里面代码具体的作用可以参照上面第一 第二个链接,里面有详细解释。
本人的情况是:本人使用外带的可视化工具直接把数据库跟表都已经建立好了,直接复制在raw目录下面。就没有通过系统自带的方法来建立数据库跟表。于是网上找资料一直不明白他们所谓的 在onUpgrade里面进行升级。 因为本人代码压根就没onUpgrade方法可以使用。 完了在网上找到各种资料、最终明白:无论你是用系统自带的SQLiteOpenHelper工具建立数据库跟表、还是使用外带工具。如果你要进行数据库升级。你所需要的操作都是一样的。只是系统自带的里面有onUpgrade()方法直接调用。而用外带工具的话你肯定也有一个自己写的SQLite操作类、只是使用自己写的操作类的话、onUpgrade()方法也是我们自己写。 反正里面要进行的操作都是一样的。
现在就看看如何进行数据库升级。
关于这块代码、如果你使用自己写的SQLite操作类,那你一看就明白。我们只需要得到db对象。就可以使用 db.execSQL("ALTER TABLE Subscription ADD COLUMN Activation BLOB"); 这个和SQLiteOpenHelper里面onUpgrade()方法里面的操作是一样的;同样是升级数据库的操作。
接下来就说说怎么判断数据库需要升级、这个就是涉及到版本匹配了、
再看这块代码、我们只要拿到db对象、就可以拿到db对应的版本、同时也可以更新db 的版本。完了我们可以参照上面链接中第三位前辈的方法、把我们最新的数据库版本定义在versionCode在AndroidManifest.xml文件中。 这样你最新数据库版本跟以前数据库版本都有了 、就可以判断更新不更新。这里解释下关于外带数据库的一些事情: 外带数据即我们通过sqlite expert professional可视化 工具建立一个sqlite.db文件、同时把文件放在raw目录下、我们每次进行数据库操作的时候就会先把raw目录下的sqlite.db复制到手机里面的路径下(如果手机路径里面存在sqlite.db就不复制)、完了以后每次取数据库都是从手机路径里面取的。如果我们raw目录下的sqlite.db进行了更新(我们自己把数据表改下、直接替换 ).同时我们的apk版本进行升级更新的时候覆盖安装apk。我们手机目录下的sqlite.db是不会更新的,还是旧版本。 但是我们raw目录下的sqlite.db是新版本。这个时候也不会再复制到手机。 这就需要我们把手机目录下的sqlite.db替换成raw目录下的。 写到这里我又想起一个事情:以前有位同事问为什么要把raw目录下的sqlite.db复制到手机、然后又操作手机路径下的sqlite.db 这不是多此一举吗。他说可以把sqlite.db放在assets目录下、不复制到手机路径。直接就是操作assets目录下的sqlite.db,这样每次数据库更新就直接替换assets目录下的sqlite.db。 我不知道放在assets目录下的好处、同时也不知道放在raw 然后复制到手机路径的好处。 这些我都不知道(望高人指点), 我只知道反正就是不能直接替换salite.db , 直接替换的话就是把旧版本的sqlite.db删除、再安装新版本的sqlite.db。
如果这样操作的话好像以前的数据都会丢失、就好像卸载重装一样。 无论何种方式我们要想保留数据都要进行数据的转移。关于数据转移前面给的链接中有。这里就不多讨论了。 发这篇文章只是自己搞这块的时候,一直被网上说的在onUpgrade()方法中直接更新搞糊涂了。 在这里记下来、免得下次不记得。
全部回答
- 1楼网友:孤老序
- 2021-02-17 21:12
1. 启动sqlite expert后,点击左上角新增数据库,然后在弹出的对话框中点击浏览
2. 指定数据库存放的路径,并且给数据库命名,后缀名建议设置为.db
3. 其他的保持默认设置,然后点 ok
4. 左侧显示了刚创建的数据库
5. 点击上方菜单的新增表按钮,然后在 table name那里输入表名,然后点击下方的add来添加表字段
6. 在弹出的对话框中设置字段名(name),字段类型(type),字段长度(size),是否可空(not null),然后点击ok
7. 依次类似添加其他字段,创建好字段后点击下方的apply
8. 点击上方的data,然后点击 + 来手动添加一行数据
9. 新增了一行
10. 双击新增的那行数据来进行编辑
11. 依次类似可以添加多条数据记录
12. 点击上方的 dll 可以看到表结构的 sql 语句脚本
13. 点击 design--index--add来添加主键索引,勾选primary,然后选择需要作为主键的字段,点击add,再点击ok
14. 依次类似可以添加其他的特性字段
15. 然后点击ok
16. 最后会显示设置index的列,然后点击下方的apply来确认设置
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯