通过.table命令来查看数据库里面的表
通过pragma table_info<表名> 命令来查看表的结构
LitePal支持的类型 int、short、long、float、double、boolean、String和Date
建表(博客2)
https://guolin.blog.csdn.net/article/details/38556989
1.创建实体类(数据库表)
2.将它配置到映射列表当中。编辑assets目录下的litepal.xml文件,在<list>标签中加入News模型类的声明
3.对数据库任何的操作实体类都会被自动创建出来
使用LitePal升级表:字段删除和添加(博客3)
https://guolin.blog.csdn.net/article/details/39151617
1.修改实体类
2.litepal.xml文件中版本号加1
表与表之间的关联关系一共有三种类型,一对一、多对一、和多对多(博客4)
https://guolin.blog.csdn.net/article/details/39207945
一对一:表示两个表中的数据必须是一一对应的关系
多对一:表示一张表中的数据可以对应另一张表中的多条数据
多对多:表示两张关联表中的数据都可以对应另一张表中的多条数据
一对一、多对一通过外键来建立,一对一的时候外键加在哪一张表上都可以,但多对一的时候关键必须要加在多方的表中
多对多的情况只能是借助中间表来完成了。也就是说,我们需要多建立一张表,这张表没什么其它作用,就是为了存放news表和category表之间的关联关系的
总结:即一对一关联的实现方式是用外键,多对一关联的实现方式也是用外键,多对多关联的实现方式是用中间表
使用LitePal建立表关联:在表对象中声明好他们相互之间的引用关系,
LitePal的存储操作(博客5)
https://guolin.blog.csdn.net/article/details/39345833
LitePal要求所有的实体类都要继承自DataSupport这个类
添加:save() saveThrows() saveAll()方法,专门用于存储集合数据的 这些方法执行之后会自动给表添加一个id
使用LitePal修改数据(博客6)
https://guolin.blog.csdn.net/article/details/40083685
静态的update()方法接收三个参数,第一个参数是Class,传入我们要修改的那个类的Class就好,第二个参数是ContentValues对象,这三个参数是一个指定的id,表示我们要修改哪一行数据。
updateAll()方法表示修改多行记录,其中第一个参数仍然是Class,第二个参数还是ContentValues对象,第三个参数是一个conditions数组,用于指定修改哪些行的约束条件,返回值表示此次修改影响了多少行数据
使用LitePal删除数据(博客6)
delete()方法接收两个参数,第一个参数是Class,传入我们要删除的那个类的Class就好,第二个参数是一个指定的id,表示我们要删除哪一行数据。
deleteAll()方法接收两个参数,第一个参数是Class,传入我们要删除的那个类的Class就好,第二个参数是一个conditions数组,用于指定删除哪些行的约束条件,返回值表示此次删除了多少行数据,用法和updateAll()方法是基本相同的
DataSupport类中提供了一个isSaved()方法,这个方法返回true就表示该对象是经过持久化的,返回false则表示该对象未经过持久化
使用LitePal查询数据(博客7)
https://guolin.blog.csdn.net/article/details/40153833
查询news表中id为1的这条记录。News news = DataSupport.find(News.class, 1);
获取news表中的第一条数据 News firstNews = DataSupport.findFirst(News.class);
获取news表中的最后一条数据 News lastNews = DataSupport.findLast(News.class);
news表中id为1、3、5、7的数据都查出来。 List<News> newsList = DataSupport.findAll(News.class, 1, 3, 5, 7);或者long[] ids = new long[] { 1, 3, 5, 7 }; List<News> newsList = DataSupport.findAll(News.class, ids);
连缀查询
List<News> newsList = DataSupport.where("commentcount > ?", "0").find(News.class);
List<News> newsList = DataSupport.select("title", "content").where("commentcount > ?", "0").find(News.class);
List<News> newsList = DataSupport.select("title", "content")
.where("commentcount > ?", "0")
.order("publishdate desc").find(News.class);
List<News> newsList = DataSupport.select("title", "content")
.where("commentcount > ?", "0")
.order("publishdate desc").limit(10).find(News.class);
List<News> newsList = DataSupport.select("title", "content")
.where("commentcount > ?", "0")
.order("publishdate desc").limit(10).offset(10)
.find(News.class);
激进查询
News news = DataSupport.find(News.class, 1, true);
List<Comment> commentList = news.getCommentList();
原生查询
Cursor cursor = DataSupport.findBySQL("select * from news where commentcount>?", "0");
使用LitePal的聚合函数(博客8)
https://guolin.blog.csdn.net/article/details/40614197
LitePal中一共提供了count()、sum()、average()、max()和min()这五种聚合函数