自己闲着没事,就写了个Demo,用注解把SQLite的数据库接口类和接口实现类抽出来。代码写完插入一条数据时,发现报错了。错误信息如下:
从报错的信息看,应该是id字段出了问题。id我在这里设置成了主键自增长。但是错误信息显示我插入数据库时,_id=0。问题是我的数据库已经有了一条信息,如果再插入时,这个id 正常情况下应该自增的。现在还是0,那就有问题了。
既然知道是id出了问题,那就直接定位过去。我当时的实体类注解是这样写的,上图:
id设置了主键自增长,标注上已经给了true。那么正常情况下,插入时它就应该自增。看了一圈没发现错误,于是就开启了吾将上下而求索的道路。网上翻了一堆这样的错误,清一色几乎全是说注解类应该设true
但是我已经添加了啊,问题估计不是在这。后来我看了下数据库 integer PRIMARY KEY autoincrement 于是我试着把id的类型改成了Integer类型,奇迹出现了,重新运行一下,插入成功,错误解决了。
这种坑真是防不胜防啊,记录一下给有需要的朋友参考。