一、前言
我们在开发的过程当中如果没有权限去修改我们的数据库不小心在建表的时候ID没有选中主键自增的情况下,跟着我的步骤用代码来实现
二、使用JDBC
private JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
三、实现主键自增
我们在数据库当中按照数据库中主键的类型,例如:Long类型的ID,以下代码实现思路
private Long ID(){
try {
String sql = "SELECT NVL(MAX(" + ID_COLUMN + "), 0) FROM " + TABLE_NAME;
Long maxId = getJdbcTemplate().queryForObject(sql, Long.class);
if (maxId == null) {
maxId = 0L;
}
return maxId + 1;
} catch (Exception e) {
log.error("生成自增主键失败", e);
throw new BizRuntimeException("生成自增主键失败:" + e.getMessage(), e);
}
}
解释:上面代码的实现思路是这样的,我们需要定义一个查库表的sql,这个sql主要是查询最大的ID然后我是做了一个非空判断,如果没有这个最大的ID(在我们库表中没有数据的情况下)我们就把他改为0L就代表的是0,然后我们在添加数据库表数据的时候我们需要返回一个最大ID+1的操作来实现,当然也需要抛出异常报错提示。