您的位置:首页 > 移动开发 > Android开发

关于Android数据库开发中LitePal的配置和使用

2018-01-18 20:39 447 查看
在使用LitePal进行Android数据库开发时,总结了一些会遇到的问题:

1、配置LitePal环境

(1)下载LitePal框架的jar包,地址http://download.csdn.net/download/qq_25436193/10212942

(2)在Android studio中导入jar包,如图



(3)然后一定要,Add as library,如图



我这里add过了,可以参考下

(4)然后,在assets目录下新建litepal.xml文件,如图



(5)最后,在配置文件中添加:android:name="org.litepal.LitePalApplication"

2、创建数据库

(1)新建News类:作为数据库中的表结构

(2)得到数据库:SQLiteDatabase db = Connector.getDatabase();

(3)这里通过adb和sqlite3来查询数据库信息

步骤:配置好path;adb root;adb shell;cd data/data/com.example.diy.litepaltest/databases;

sqlite3 News.db(打开数据库News.db);.table(查看数据库中的表);.schema(查看建表信息);pragma
table_info(News)(查看表的数据结构);

3、数据库操作

(1)插入数据

LitePal要求所有的实体类都必须继承自DataSupport类,然后就可以进行CRUD,如图



News news = new News();
news.setTitle("this is title3");
news.setContent("this is content3");
news.setPublishDate(new Date());
news.save();


(2)查询数据

a.查询News表中id为1的记录:News news = DataSupport.find(News.class,1);

b.查询News表中第一条数据:News firstNews =
DataSupport.findFirst(News.class);

c.查询News表中最后一条数据:News lastNews =
DataSupport.findLast(News.class);

d.查询News表中所有数据:List<News>
newsList = DataSupport.findAll(News.class);

e.查询News表中所有评论数大于0的数据:List<News>
newsList = DataSupport.where("commentcount >?", "0").find(News.class);

f.查询title和content两列数据:List<News>
newsList = DataSupport.select("title","content").where("commentcount >?", "0").find(News.class);

......

(3)表关联

在News表中添加:private
List<Comment> commentList = new ArrayList<>();

在Comment表中添加:private
News news = new News();

最后insert数据时

Comment comment1 = new Comment();
comment1.setContent("好评!");
comment1.setPublishDate(new Date());
comment1.save();
Comment comment2 = new Comment();
comment2.setContent("赞一个!");
comment2.setPublishDate(new Date());
comment2.save();

News news = new News();
news.getCommentList().add(comment1);
news.getCommentList().add(comment2);
news.setTitle("新闻标题2");
news.setContent("新闻内容2");
news.setPublishDate(new Date());
news.setCommentCount(news.getCommentList().size());
news.save();

(4)更新数据

ContentValues values = new ContentValues();
values.put("title","这是另一个标题");
DataSupport.update(News.class,values,2);

(5)删除数据

DataSupport.delete(News.class,1);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: