接下来我们继续学习使用LitePal进行数据的增删改查的操作:
v
- 增加数据
想要存储一条数据到Album表当中,存储两条数据到song中
//使用LitePal增加数据
Album album = new Album();
album.setName("album");
album.setPrice(10.99f);
album.save();
Song song1 = new Song();
song1.setName("song1");
song1.setDuration(320);
song1.setAlbum(album);
song1.save();
Song song2 = new Song();
song2.setName("song2");
song2.setDuration(356);
song2.setAlbum(album);
song2.save();
可以看到数据已经添加成功,并且album和song进行了关联。
现在我们如果要保存一个集合,是不是需要这样遍历每一个对象然后再添加进去呢,那不是太麻烦了?
LitePal提供一个方法可以直接添加集合
DataSupport.saveAll(songsList);
- 删除数据
删除数据需要调用DataSupport中的delete()方法,
DataSupport.delete(Song.class, id);
或者批量删除数据,表示持续时间大于350的都会被删除
DataSupport.deleteAll(Song.class, “duration > ?” , “350”);
- 修改数据
最简单的方式时通过find()和save()两个方法来修改数据,就是先找出你要修改的数据,修改后进行保存。其中find()有许多相似的方法,比如findFirst(),findLast(),findAll(),用法大同小异,只是功能不一样,具体可以查看源码。
Album albumToUpdate = DataSupport.find(Album.class, 1);
albumToUpdate.setPrice(20.99f); // 提高价格
albumToUpdate.save();
第二种方法需要new出对象后调用update方法
Album albumToUpdate = new Album();
albumToUpdate.setPrice(20.99f); // raise the price
albumToUpdate.update(id);
第三种可以加限定条件:
Album albumToUpdate = new Album();
albumToUpdate.setPrice(20.99f); // raise the price
albumToUpdate.updateAll("name = ?", "album");
- 查询数据
还记不记得之前传统的查询方式,我的妈妈咪呀,那个参数一长串,而使用LitePal就简单很多,细心的朋友可能已经注意到了,我们在更新数据的时候已经使用了查询方法,对,就是
Album albumToUpdate = DataSupport.find(Album.class, 1);
是不是简单到哭
再看看如何查询整个表
List<Song> allSongs = DataSupport.findAll(Song.class);
使用聚合函数的查询方式
List<Song> songs = DataSupport.where("name like ?", "song%").order("duration").find(Song.class);
好了,总体上关于数据库的内容结束了,如果还有细节上的问题,我会再修改的,最后感谢郭神的教程,以及开源框架LitePal