ssm怎么抛出因为数据库设置了数据唯一时,当添加操作时的报错异常,请详细说明,并列出代码
时间: 2024-02-17 17:03:13 浏览: 118
在 SSM 框架中,如果数据库设置了某个字段为唯一索引,那么当我们进行插入操作时如果该字段值已存在,就会抛出 `DuplicateKeyException` 异常。
下面是抛出 `DuplicateKeyException` 异常的示例代码:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public void addUser(User user) {
try {
userDao.addUser(user);
} catch (DuplicateKeyException e) {
// 捕获并处理 DuplicateKeyException 异常
throw new RuntimeException("添加用户失败,用户名已存在!");
}
}
}
```
在上面的代码中,我们先在 `userDao.addUser(user)` 方法上进行了 try-catch 处理,当发生 `DuplicateKeyException` 异常时,我们就抛出了一个运行时异常,并在异常信息中提示了用户添加失败的原因。
接下来是 `UserDao` 中的 `addUser` 方法示例代码:
```java
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void addUser(User user) {
String sql = "INSERT INTO user(username, password, age) VALUES (?, ?, ?)";
jdbcTemplate.update(sql, user.getUsername(), user.getPassword(), user.getAge());
}
}
```
在上面的代码中,我们直接使用了 Spring 提供的 `JdbcTemplate` 来执行 SQL 语句,如果发生了 `DuplicateKeyException` 异常,就会被捕获并抛出给上一层的 `UserServiceImpl`。
阅读全文