我正在尝试将用户插入SQLite数据库。我有两个独特的列,那些是用户名和电子邮件。当我尝试插入用户和表已包含该用户名或电子邮件时,它会引发错误。当我抓住错误并打印消息时,它说。
09-28 16:20:30.079 5249-5249 / com.example.miljanrakita.shoppingapplication D / RegisterActivity:registerUser:UNIQUE约束失败:users.email(代码2067)
这是我需要users.email的部分。因为如果电子邮件已经存在,那么这就是消息,如果它是用户名,那么它将是users.username,这就是我将如何知道这些已经存在的信息。有没有机会从例外中获得这个派对?我不想拆分字符串或类似的东西,或者有多个select语句来检查电子邮件或用户名是否已经存在。
这是addUser方法。
@Override
public void addUser(User user) throws SQLiteException {
mDatabase.insertOrThrow(UserTable.NAME, null, getContentValues(user));
}
这是将此方法调用addUser并处理异常
的方法private boolean registerUser() {
try {
User user = new User(username, password, name, surname, address, email, phone);
UserProvider.getSingleton(getApplicationContext()).getUserProvider().addUser(user);
} catch (SQLiteException exception) {
return false;
}
return true;
}