SQLiteException获取哪个值是唯一的

时间:2017-09-28 14:30:19

标签: java android sqlite

我正在尝试将用户插入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;
}

0 个答案:

没有答案