使用FinalDb操作数据库出现SqliteConstraintException异常
来源:互联网 发布:提高阅读速度软件 编辑:程序博客网 时间:2024/05/18 03:06
package com.aaagamewater;public class UserData { public UserData() { } public int getId() { return id; } public void setId(int id) { this.id = id; } @Override public String toString() { StringBuilder sb=new StringBuilder(); sb.append("您好,你的手机信息如下:\n"); sb.append("PhoneNumber:"+getPhoneNumber()+"\n"); sb.append("Ip:"+getIp()+"\n"); sb.append("Os:"+getOs()+"\n"); sb.append("Cpu:"+getCpu()+"\n"); sb.append("ProcessorSum:"+getProcessorSum()+"\n"); sb.append("RawMemory:"+getRawMemory()+"\n"); return sb.toString(); } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip; } public String getOs() { return os; } public void setOs(String os) { this.os = os; } public String getCpu() { return cpu; } public void setCpu(String cpu) { this.cpu = cpu; } public String getProcessorSum() { return processorSum; } public void setProcessorSum(String processorSum) { this.processorSum = processorSum; } public String getRawMemory() { return rawMemory; } public void setRawMemory(String rawMemory) { this.rawMemory = rawMemory; } private int id;//不需要无码给他设定值,框架会自动设定值// @Id(column="phoneNumber")//当bean里面没有id字段,就需要使用这个注解映射其他的字段作为主键 private String phoneNumber; private String ip; private String os; private String cpu; private String processorSum; private String rawMemory;} FinalDb finalDb=FinalDb.create(this); UserData u1=new UserData(); u1.setCpu("545"); u1.setIp("552"); u1.setOs("2250"); u1.setPhoneNumber("22551"); u1.setProcessorSum("2252"); u1.setRawMemory("552236"); finalDb.save(u1); finalDb.save(u1);03-15 13:17:13.402: E/SQLiteLog(1097): (1555) abort at 15 in [INSERT INTO com_aaagamewater_UserData (processorSum,ip,rawMemory,phoneNumber,os,cpu) VALUES ( ?,?,?,?,?,?)]: UNIQUE constraint failed: com_aaagamewater_UserData.phoneNumber
终于找到原因了,是因为之前使用的这个类是这样的
package com.aaagamewater;public class UserData { public UserData() { } @Override public String toString() { StringBuilder sb=new StringBuilder(); sb.append("您好,你的手机信息如下:\n"); sb.append("PhoneNumber:"+getPhoneNumber()+"\n"); sb.append("Ip:"+getIp()+"\n"); sb.append("Os:"+getOs()+"\n"); sb.append("Cpu:"+getCpu()+"\n"); sb.append("ProcessorSum:"+getProcessorSum()+"\n"); sb.append("RawMemory:"+getRawMemory()+"\n"); return sb.toString(); } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip; } public String getOs() { return os; } public void setOs(String os) { this.os = os; } public String getCpu() { return cpu; } public void setCpu(String cpu) { this.cpu = cpu; } public String getProcessorSum() { return processorSum; } public void setProcessorSum(String processorSum) { this.processorSum = processorSum; } public String getRawMemory() { return rawMemory; } public void setRawMemory(String rawMemory) { this.rawMemory = rawMemory; } @Id(column="phoneNumber")//当bean里面没有id字段,就需要使用这个注解映射其他的字段作为主键 private String phoneNumber; private String ip; private String os; private String cpu; private String processorSum; private String rawMemory;}
手机号做的主键,由于更改为id作为主键,但是之前的那张表已经建立了,表的结构不会变化,现在把类的结构更改了,id为主键,插入的手机相同就会出现SqliteConstraintException异常,解决办法就是把之前的表结构删除掉(drop而不是delete),再使用的时候会重新再新建这张表(名字一样),但是结构不一样
0 0
- 使用FinalDb操作数据库出现SqliteConstraintException异常
- android数据库操作出现的 android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
- 使用android快速开发框架afinal的FinalDb操作android数据库
- 使用android快速开发框架afinal的FinalDb操作android数据库
- 使用android快速开发框架afinal的FinalDb操作android数据库
- 使用android快速开发框架afinal的FinalDb操作android数据库
- 使用android快速开发框架afinal的FinalDb操作android sqlite数据库
- 使用android快速开发框架afinal的FinalDb操作android数据库
- 使用android快速开发框架afinal的FinalDb操作android数据库
- 使用android快速开发框架afinal的FinalDb操作android数据库
- Afinal开发框架中的FinalDb操作sqlite数据库
- Android Afinal框架学习(一) FinalDb 数据库操作
- Android Afinal框架学习(一) FinalDb 数据库操作
- FinalDb操作sqlite的数据库(增删改查)
- Android FinalDb使用
- Android数据库GreenDAO3.2.2的使用(五,SQLiteConstraintException因为主键报错)
- SQLiteConstraintException在androidMediaProvider数据库中的分析
- PHP 使用PDO操作数据库异常
- sleep()和wait()的区别?
- 实现关闭ssh继续运行程序---tmux
- android wifi调试(无线调试) 一步到位
- Raft算法完全理解手册
- 结构体 struct sockaddr_in, struct sockaddr, struct in_addr
- 使用FinalDb操作数据库出现SqliteConstraintException异常
- .NET中的六个重要概念:栈、堆、值类型、引用类型、装箱和拆箱
- Openwrt学习总结(一)之开发环境的搭建
- 利用Lucene对大文件进行预处理(可运行)
- 【Visual C++】游戏编程学习笔记之七:键盘输入消息
- opendaylight学习笔记
- c++ primer -- 顺序容器
- Struts+Spring之Spring注入失败
- PVOID 型指针