使用mybatis-plus实现Oracle主键自增
在MyBatis-Plus中,要实现Oracle数据库的主键自增,可以使用序列(SEQUENCE)来生成主键值。以下是实现步骤和示例代码:
- 创建Oracle序列:
CREATE SEQUENCE your_sequence_name
START WITH 1
INCREMENT BY 1
NOMAXVALUE;
- 在MyBatis-Plus的实体类中,使用
@TableId
注解指定主键策略为AUTO
,并通过value
属性指定Oracle序列名:
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@TableName("your_table_name")
public class YourEntity {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
// 其他字段...
}
- 在MyBatis-Plus的配置文件中,配置Oracle主键生成策略:
import com.baomidou.mybatisplus.core.incrementer.OracleKeyGenerator;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
@Bean
public MybatisSqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) {
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource);
// 设置主键生成器
sqlSessionFactory.setKeyGenerator(new OracleKeyGenerator());
return sqlSessionFactory;
}
- 使用MyBatis-Plus提供的方法进行插入操作,不需要手动指定主键值:
import com.baomidou.mybatisplus.extension.service.IService;
public interface YourService extends IService<YourEntity> {
// 插入方法将自动使用Oracle序列生成主键
}
确保Oracle数据库的序列权限和表权限正确配置,以便MyBatis-Plus能够访问和使用序列来生成主键值。
评论已关闭