不适合保存一些复杂的数据,解析不方便
context.openFileOutPut(fileName,MODE_PRIVATE/MODE_APPEND)
可以拿到一个文件输出流,然后操作,MODE_PRIVATE表示新写入的内容会覆盖旧的内容,MODE_APPEND表示会添加到后面。
注意:文件名不能包括路径,默认存储在data/data/包名/files/目录下
context.openFileInPut(fileName)
注意:同上
更新数据库的表
onCreate方法只有在创建数据库(xx.db)的时候才会执行,所以不能直接在onCreate中执行在onUpgrade中执行,先把存在的表删除,然后重新执行创建 db.execSQL('drop table if exists XXX(表名)'); onCreate(db); 需要更新构造方法中的版本号,比上一个大就ok query()方法参数对应的SQL部分tablefrom table_namecolumnsselect column1,column2selectionwhere column = valueselectionArgswhere column = valuegroupBygroup by columnhavinghaving column = valueorderByorder by column1,column2对bean进行表管理的时候无所谓,如果要进行增删改查,需要继承DataSupport
更新数据最简单的更新已存在的,直接save即可,那么什么是已存在的呢? model.save();之后通过查询获取到的model上一中方法只能对已存储的更新,限制大还可以这样做 Model model=new Model(); //... model.updateAll(String... 条件);model.updateAll("name = ? and author = ?","名字","作者");==注意==
java中的数据类型都有默认值,例如int的默认值是0如果创建一个User,setName,但是不setAge,这样age依旧是0,LitePal认为没有设置age,所以就不更新age那么创建一个User,setAge(0),跟默认值大小一样,所以LitePal依旧认为没有设置age,所以也不会更新,这种情况下可以这样写:book.setToDefault("age");int 默认值0 boolean默认值false删除数据
model.delete(); 也是针对已存在的数据,这个已存在在上面已经说过了DataSupprot.deleteAll(Model.class,”price <”,”15”);//不指定条件代表要删除所有数据查询数据查询所有List<Model> models=DataSupport.findAll(Model.class);Model model=DataSupport.findFirst(Model.class);Model model=DataSupport.findLast(Model.class);更多查询 利用select查询指定列DataSupport.select(“列名1”,”列名2”).find(Model.class);利用where查询DataSupport.where(“pages >”,”15”).find(Model.class);DataSupport.order(“pages desc”).find(Model.class);//排序 desc=降序 asc/不写=升序DataSupport.limit(3).find(Model.class);//前三条数据DataSupport.limit(3).offset(1).find(Model.class);//查询三条数据,偏移1,所以结果是第二三四条数据