浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的⽅
法
jdbc连接oracle⼀、Oracle的主键Sequence设置简介
在Oracle数据库中不⽀持主键⾃增策略,它是通过Sequence序列来进⾏完成的,因此需要在MP中进⾏相关配置
⼆、相关配置如下
2.1、l 添加相关依赖
注意:由于oracle的授权问题,没办法从maven仓库中下载,因此可以⼿动从oracle官⽹中下载,并本地打包到仓库中
<!-- Oracle驱动: 因为Oracle授权的问题,不能从Maven的仓库中下载到Oracle驱动 -->
<dependency>
<groupId&acle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4.0</version>
</dependency>
2.2、db.properties 添加相关的连接配置信息
orcl.driver=oracle.jdbc.OracleDriver
orcl.url=jdbc:oracle:thin:@localhost:1521:mp
orcl.username=username
orcl.password=1234
2.3、l 添加dataSource设置
<!-- Oracle -->
<bean id="dataSource" class="hange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${orcl.driver}"></property>
<property name="jdbcUrl" value="${orcl.url}"></property>
<property name="user" value="${orcl.username}"></property>
<property name="password" value="${orcl.password}"></property>
</bean>
2.4、在Oracle中创建表数据及序列
create table tbl_user(
id number(10),
name varchar2(32),
delete_flag number(10)
)
-
- 创建序列
create sequence seq_user start with 1;
2.5、实体相关配置
注意两点:
@KeySequence(value="seq_user",clazz=Integer.class) //value为数据库中⽣成的序列名,class指主键属性类型
@TableId(type=IdType.INPUT) //注意主键类型要指定为Input
@KeySequence(value="seq_user",clazz=String.class) //value为数据库中⽣成的序列名,class指主键属性类型
public class User {
@TableId(type=IdType.INPUT) //注意主键类型要指定为Input
private String id;
@TableField(fill=FieldFill.INSERT_UPDATE) //当插⼊和更新都会进⾏字段的填充
private String name;
@TableLogic //标志是⼀个逻辑标识符号
private Integer deleteFlag;
}
2.6、l配置
<!-- mybatis-plus全局配置策略,这样避免重复在每⼀个实体中使⽤注解进⾏配置-->
<bean id="globalConfiguration" class="ity.GlobalConfiguration">
<property name="dbColumnUnderline" value="true"></property> <!-- 2.3版本后默认配置数据库下划线-->
<!-- 指定数据库ID⽣成策略 0:数据库⾃增-->
<property name="idType" value="0"></property>
<!-- 指定数据库表前缀 -->
<property name="tablePrefix" value="tbl_"></property>
<!-- 注⼊Sequence -->
<property name="keyGenerator" ref="oracleKeyGenerator"></property>
</bean>
<!-- 配置Oracle主键Sequence -->
<bean id="oracleKeyGenerator" class="batisplus.incrementer.OracleKeyGenerator"></bean>
本质:
其实在Oracle数据库中进⾏新增数据⾸先在数据库中先执⾏
select val from dual;这样获取下⼀个主键的序列,然后再执⾏插⼊操作
另外:
实际开发中可能会有很多个实体类,所以在每个实体类上都加上@KeySequence,显得很繁琐
假如需要多个实体公⽤同⼀个序列
可以将@keySequence 定义在⽗类中,可实现多个⼦类对应的多个表公⽤⼀个 Sequence
到此这篇关于浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的⽅法的⽂章就介绍到这了,更多相关Mybatis-Plus Oracle 主键Sequence内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论