标题:
Litepal使用的注意点
[打印本页]
作者:
51黑bing
时间:
2016-3-22 19:42
标题:
Litepal使用的注意点
Litepal
使用的注意点(仅仅列出一些常见的):
1
、当调用
DataSupport
的
save()
方法一直返回错误(
false
)的时候,很有可能是我们的
javabean
对象以及对应的配置有误,错误有可能如下:
bean
对象以及
bean
对象的父类,内部类,一切
bean
对象文件里面出现过的类,一定要继承
DataSupport
类,并且在
litepal.xml
文件中配置。不继承,不配置,都会报错。
如果
bean
对象添加了成员变量
id
,那么
id
一定要是
int
或者
long
类型,其他类型均会报错。
如果我们的对象只有一个成员
id
,例如我们的
BaseBean
经常就是只有一个成员
id
,那么项目运行起来,在创建基本表的时候依然会报错。原因是:不管是否添加
id
,
litepal
都会自动为我们添加
id
这个属性,因此表明
litepal
的一个
bean
对象不能只有一个名字为
id
成员。如果是有一个
id
,那么
litepal
在底层生成
SQL
语句的时候,会生成“
id integer primary keyautoincrement ,
”这是一句不完整的
SQL
语句,因此会报错。
2
、
save()
方法一直返回错误(
false
)的时候,异常信息都是警告而不是错误,因此需要切换
LogCat
的过滤。
3
、对于
findAll()
方法,它返回的是
List<Bean
对象
>
,因此需要我们去强制转换为
ArrayList<T>
,不然在
add
等操作的时候会报错,因为我们使用的都是
List
的实现类而不是
List
接口本身。强转如果不指定泛型
T
的时候
Android Studio
会提示没有类型检查的警告,但是我们可以忽略。
4
、
bean
对象的所有成员变量的名字都不能和
SQL
的一且关键字冲突,原因也很简单,
litepal
在底层生成
SQL
语句的时候会把成员变量的名字拼成
SQL
语句。
5
、成员如果是
booleana;
其中
a
是我举例子用的名字,生成
get
以及
set
方法的时候,
Android Studio
会把
get
方法名定义为“
public boolean isA(boolean a)
”,我们自己不要手贱把它改为
getA
,否则
litepal
也会报找不到方法的错。
6
、额,最后一点是数据库的问题,因为
id
属性是默认自增长的,如果项目中自定义的
ID
不是自增长的话,最好自己再定义一个
ID
。比如商城项目中的商品
ID
,如果用户不是按照逐次增长的形式添加商品的话,商品被
save()
的时候,一开始是
ID+1
的,知道
ID
满足与已存在的商品
ID
自增长的规律的时候才能正确判断商品已存在。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1