LitePal在查询方面提供了非常丰富的API,本文记录了如何使用litepal进行数据库操作,怎么配置就不说了。
简单查询
- 查询user表中id为1的这条记录,同时也可以同时传递多个id,或者一个数组
User user = Litepal.find(User.class, 1);
List<User> userList = Litepal.findAll(User.class, 1, 3, 5, 7);
//传递一个数组
long[] ids = new long[] { 1, 3, 5, 7 };
List<User> userList = LitePal.findAll(User.class, ids);
- 查询user表中的第一条记录,最后一条记录
User first = LitePal.findFirst(User.class);
User last = LitePal.findLast(User.class);
- 查询user表中所有的数据
List<User> users = LitePal.findAll(User.class);
连缀查询
- 查询具有特殊条件的内容,如在user表中名字为张三的全部数据:
List<User> nameList = LitePal.where("name = ?","张三").find(User.class);
- 模糊查询,查询名字中带张字的全部数据:
List<User> nameList = LitePal.where("name like ?","%" + "张" + "%").find(User.class);
这里的条件写法和sql语句差不多
- 降序 desc 升序 asc方法查询,如查询名称为张三的人并将查询结果安年龄降序排列
List<User> list = LitePal.where("name = ?","张三").order("age desc").find(User.class);
- 范围查询,如只查询符合名称为张三的前10条数据,或者只查询第11到第20这10条数据
List<User> nameList = LitePal.where("name = ?","张三").limit(10).find(User.class);
//偏移量设置为10,表示从10开始(不包含)查询接下来10条数据
List<User> nameList = LitePal.where("name = ?","张三").limit(10).offset(10).find(User.class);
如何删除
- 首先通过Id方法删除单条数据:
LitePal.delete(User.class,2);
- 然后针对性的删除,删除名字为张三的数据:
LitePal.deleteAll(User.class,"name = ?" ,"张三");
- 最后可以通过模糊的方法删除,删除名字中带张字的数据:
LitePal.deleteAll(User.class,"name like ?" , "%" + "张" + "%");
- 删除年龄小于20的数据:
LitePal.deleteAll(User.class,"price < ?","20");
如何修改
- 通过id修改数据:
User user = new User();
user.set("name","王五");
LitePal.update(User.class,values,2);
- 针对性的修改,把名字为张三的全部数据改为王五:
User user = new User();
user.set("name","王五");
LitePal.updateAll(User.class,values,"name = ?","王五");
- 模糊方法修改,修改名字中带王字的全部数据改为张三:
User user = new User();
user.set("name","王五");
LitePal.updateAll(User.class,values,"name like ?","%" + "张三" + "%");
如何添加一条数据
(如果你已经配置好了的话)
User user = new User();
user.setUsername("xxx");
user.setPassword("xxx");
user.save();
此外,litepal还提供了一个saveOrUpdate方法,来实现不存在则添加,已存在则修改的方法,类适于这样
User user = new User();
user.setUsername("xxx");
user.setPassword("xxx");
user.saveOrUpdate("id = ?",id);