- 由于项目需要开始学习sqlite
一开始先学习使用的是 android ormlite 操作 从最基本的建表增删改查一路走来 磕磕碰碰很多 都是在内存中操作sqlite 只能通过sqlitestudio工具进行查看 不能导出 并且应用卸载数据表就丢失
最终考虑在sd卡中操作sqlite 但是ormlite 并没有这方面的接口 很苦恼 经过几天的百度和乱啃也写出了一个暂时没有bug的逻辑方法 总体来说代码量比较多 操作起来比较麻烦一些 mmp 我现在得回头一点一点修改 希望一切顺利
今天简单的学习了郭神的LitePal以后发现以前的难题都不叫事 不过感叹以前的付出总没有白费 也确实看到了自己的不足 还是得多学习
- 对于LitePal的整理如下:
大雄童鞋的整理很到位
为了加深印象这里主要从大雄童鞋
那再整理下后续迭代的版本,也是在第一行代码中未涉及到的:
LitePal 1.3.1发布了,从此支持图片存储!
http://mp.weixin.qq.com/s/7tDifDvOHr7YI7zCS9fpmQ
你们要的多数据库功能终于来了
http://mp.weixin.qq.com/s/C7nbJXOS9lYPgOda-8Pw0A
LitePal 1.5.0版本发布,你想要的都在这里
http://mp.weixin.qq.com/s/GXPkrkiHk4MWNnpCLzTf_Q
LitePal 1.6.0版本来袭,数据加解密功能保障你的应用数据安全
https://mp.weixin.qq.com/s/TSp36cnKLxUmAHjT86UCrQ
- 1.6.0版本有自己需要的数据库保存SD卡的更新 很开心 并且有数据库的加密 也不怕SD卡的数据出现安全问题
基本的操作:
- gradle中添加相应依赖:
//由郭霖开源的 Android 数据库框架 此处用于sqlite
compile 'org.litepal.android:core:1.6.1'
compile files('libs/SQLiteStudioRemote.jar')
添加 assests 文件夹并且新建 litepal.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<!--修改存储路径SD卡-->
<storage value="Mystudy" />
<!--数据库名-->
<dbname value="BookStore"></dbname>
<!--数据库版本号-->
<version value="3"></version>
<!--映射模型,稍后用到-->
<list>
<mapping class = "com.sdhmw.com.mystudy.Book"></mapping>
<mapping class = "com.sdhmw.com.mystudy.Category"></mapping>
</list>
</litepal>
- 配置文件中添加
android:name="org.litepal.LitePalApplication"
<application
android:name="org.litepal.LitePalApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
有些程序可能会有自己的Application,并在这里配置过了。 比如说有一个MyApplication,这时只需要修改一下MyApplication的继承结构,让它不要直接继承Application类,而是继承LitePalApplication类,就可以使用一切都能正常工作了
还有一种更复杂的情况暂时没遇到
参考:https://blog.csdn.net/guolin_blog/article/details/38556989
- 创建javabean 对象(面向对象思想)
//CRUD操作必须继承DataSupport
public class Book extends DataSupport{
//表关联
private Category category;
public Category getCategory() {
return category;
}
public void setCategory(Category category) {
this.category = category;
}
private int id;
private String author;
private double price;
private int pages;
private String name;
然后就可以操作数据库建表CRUD了