今天在APP中增加一个添加项目的功能,项目的主键为整数,要让它自增长。
既然要自增长,那么在代码里面就不用给ID字段赋值。但是调试的时候发现不行,提示主键重复,观察了输出,不赋值的话,ID默认为0,于是每次都为0,就重复了:
Source source = new Source(); source.setname(dict.getname());//ID没有赋值 SourceManager.get(this).insert(source);
ContentValues cv = new ContentValues(); System.out.println("ID: " + source.getID());//输出,ID每次都是0 cv.put(ColUMN_ID,source.getID()); cv.put(ColUMN_name,source.getname());
ID没有赋值,为什么是0呢?那就是Java的默认int为0了,所以,在对象层面,就算不赋值,ID也默认是0。
因此,要从数据库 *** 作层面来解决:
//cv.put(ColUMN_ID,source.getID()); v.put(ColUMN_name,source.getname());
ContentValue赋值时取消对ID字段的赋值即可。
问题解决,可以自增长了。
总结
AndroID中,让sqlite主键自增长的条件如下:
1. 数据库中,设置字段为INTEGER,Primary,autoincrement。
2. Java代码中,ContentValue赋值时忽略主键字段。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。
总结以上是内存溢出为你收集整理的Android sqlite设置主键自增长的方法教程全部内容,希望文章能够帮你解决Android sqlite设置主键自增长的方法教程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)