Android数据库——LitePal
2016-04-21 10:20
627 查看
一,快速配置
1,引入Jar包或源码
首先我们需要将LitePal的jar包引入到项目当中,可以点击这里查看LitePal的最新版本
2, 配置litepal.xml
在项目的assets目录下面新建一个litepal.xml文件
3,配置LitePalApplication
由于操作数据库时需要用到Context,而我们显然不希望在每个接口中都去传一遍这个参数,那样操作数据库就显得太繁琐了。因此,LitePal使用了一个方法来简化掉Context这个参数,只需要在AndroidManifest.xml中配置一下LitePalApplication,所有的数据库操作就都不用再传Context了,如下所示:
如果有自己的Application,继承它就行了。
二,建表
其中id这个字段可写可不写,因为即使不写这个字段,LitePal也会在表中自动生成一个id列,毕竟每张表都一定要有主键的嘛。
根据LitePal的数据类型支持,可以进行对象关系映射的数据类型一共有8种,int、short、long、float、double、boolean、String和Date。只要是声明成这8种数据类型的字段都会被自动映射到数据库表中,并不需要进行任何额外的配置。
如果News类中有一个字符串字段我并不想让它映射到数据库表中,这该怎么办呢?对此,LitePal同样采用了一种极为轻量的解决方案,只有声明成private修饰符的字段才会被映射到数据库表中,如果你有某一个字段不想映射的话,只需要将它改成public、protected或default修饰符就可以了。
然后编辑litepal文件
三,存储
四,查询数据
查询news表中id为1的这条记录
获取news表中的第一条数据或者最后一条数据:
查询所有的
连缀查询
五,修改数据
修改id为1的
将title=上海的所有新闻全部改掉
六,删除数据
删除id为1的
删除title为**的所有新闻
1,引入Jar包或源码
首先我们需要将LitePal的jar包引入到项目当中,可以点击这里查看LitePal的最新版本
dependencies { compile 'org.litepal.android:core:1.3.1' }
2, 配置litepal.xml
在项目的assets目录下面新建一个litepal.xml文件
<?xml version="1.0" encoding="utf-8"?> <litepal> <dbname value="demo" ></dbname> <version value="1" ></version> <list> <mapping class="com.test.model.Reader"></mapping> <mapping class="com.test.model.Magazine"></mapping> </list> </litepal>
3,配置LitePalApplication
由于操作数据库时需要用到Context,而我们显然不希望在每个接口中都去传一遍这个参数,那样操作数据库就显得太繁琐了。因此,LitePal使用了一个方法来简化掉Context这个参数,只需要在AndroidManifest.xml中配置一下LitePalApplication,所有的数据库操作就都不用再传Context了,如下所示:
<manifest> <application android:name="org.litepal.LitePalApplication" ... > ... </application> </manifest>
如果有自己的Application,继承它就行了。
二,建表
public class News extends DataSupport{ private int id; private String title; private String content; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
其中id这个字段可写可不写,因为即使不写这个字段,LitePal也会在表中自动生成一个id列,毕竟每张表都一定要有主键的嘛。
根据LitePal的数据类型支持,可以进行对象关系映射的数据类型一共有8种,int、short、long、float、double、boolean、String和Date。只要是声明成这8种数据类型的字段都会被自动映射到数据库表中,并不需要进行任何额外的配置。
如果News类中有一个字符串字段我并不想让它映射到数据库表中,这该怎么办呢?对此,LitePal同样采用了一种极为轻量的解决方案,只有声明成private修饰符的字段才会被映射到数据库表中,如果你有某一个字段不想映射的话,只需要将它改成public、protected或default修饰符就可以了。
然后编辑litepal文件
<litepal> <dbname value="demo"></dbname> <version value="1"></version> <list> <mapping class="com.app.liulongbing.green.News"></mapping> </list> </litepal>
三,存储
private void add() { News news = new News(); news.setTitle("test"); news.setContent("1234"); news.save(); }
四,查询数据
查询news表中id为1的这条记录
News news= DataSupport.find(News.class,1);
获取news表中的第一条数据或者最后一条数据:
News news= DataSupport.findFirst(News.class); News news= DataSupport.findLast(News.class);
查询所有的
List<News> allNews=DataSupport.findAll(News.class);
连缀查询
List<News> newsList = DataSupport.select("title", "content") .where("commentcount > ?", "0") .order("publishdate desc").limit(10).offset(10) .find(News.class);
五,修改数据
修改id为1的
News news=new News(); news.setTitle("上海"); news.update(1);
将title=上海的所有新闻全部改掉
News news=new News(); news.setTitle("上海今天下雨"); news.updateAll("title=?","上海");
六,删除数据
删除id为1的
DataSupport.delete(News.class,1);
删除title为**的所有新闻
DataSupport.deleteAll(News.class, "title = ?", "**");
相关文章推荐
- Android事件分发机制(二)
- Android.os包中一些类的使用
- Linphone-android 3.9.1 编译
- android源码解析之(十二)-->系统启动并解析Manifest的流程
- android studio 编译错误 :Duplicate failed copide in APK META-INF/NOTICE.txt解决办法
- Android、iOS支持的音频格式
- android 代码设置editText的 drableRight和drableRight的点击事件
- android 布局间设置分隔线
- Android中XML文件的读写
- Android开发中libs包下面的mips、armeabi、armeabi-v7a和x86
- adb常用命令和logcat使用
- android 常见问题
- android 常见问题汇总
- Android Bitmap换背景颜色
- android jni开发
- Android开发:shape和selector和layer-list的(详细说明)
- Android Studio打包混淆问题总结
- android permission权限与安全机制解析
- Android 基础(二)、开发环境
- Closeable