往oracle数据库中新增加一条数据如何自动生成ID

往oracle数据库中新增加一条数据如何自动生成ID,第1张

先在数据库中新增一个序列,如在oracle数据库中执行如下语句新增一个名为test_seq的序列
CREATE
SEQUENCE
test_seq
INCREMENT
BY
1
--
每次加几个
START
WITH
1
--
从1开始计数
NOMAXVALUE
--
不设置最大值
NOCYCLE
--
一直累加,不循环
以后你往某表中插入数据时,直接用如下形式就行了,比如:
insert
into
test_table
VALUES
(test_seqnextval,
)
test_table的第一列就是你要自增的那个id,test_seqnextval就是从新增的序列中取出下一个值,每取一次都会+1
当然,一般来说不同的表需使用不同的序列,这样它们的id可以保证连续

涉及网络的传输对象需要序列化,也需要一个序列化ID,IDEA可以设置自动生成ID,配置如下

1 Ctrl+Alt+s快捷键打开设置界面

2 选择Editor→Inspections,勾上serialVersionUID

3 每次实现序列化接口,可以鼠标点击类名,Alt+Enter快捷键导入序列化ID

4 生成ID结果




作为程序员第 129 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha

一、主键id自增
oracle 中不能设置自动增加,这个和其他数据库不一样,但是有 序列,这个是Oracle自己特有的东西,
1、首先创建序列:create sequence seq;
语法:
CREATE SEQUENCE 序列名
[INCREMENT BY n] --每次加几
[START WITH n] --序列从几开始
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}] --小值、大值限制
比CREATE SEQUENCE seq start with 1 increment by 1; --建立了额从1开始每次加1序列
访问序列时用 序列名称nextval语法
这就创建好了,然后 seqnextval 就会返回一个值,不会重复的值,
insert into tablename values(seqnextval,'test');
insert into tablename values(seqnextval,'test');
insert into tablename values(seqnextval,'test');
这样前3个id 分别是 1,2,3
二、自动生成UUID策略
import javautilUUID;
Student s = new Student();
ssetId(UUIDrandomUUID()toString());

spring
JdbcTemplate批量例子:
@Override
public
void
saveBatch(final
List<Employee>
employeeList)
{
final
int
batchSize
=
500;
for
(int
j
=
0;
j
<
employeeListsize();
j
+=
batchSize)
{
final
List<Employee>
batchList
=
employeeListsubList(j,
j
+
batchSize
>
employeeListsize()

employeeListsize()
:
j
+
batchSize);
getJdbcTemplate()batchUpdate(QUERY_SAVE,
new
BatchPreparedStatementSetter()
{
@Override
public
void
setValues(PreparedStatement
ps,
int
i)
throws
SQLException
{
Employee
employee
=
batchListget(i);
pssetString(1,
employeegetFirstname());
pssetString(2,
employeegetLastname());
pssetString(3,
employeegetEmployeeIdOnSourceSystem());
}
@Override
public
int
getBatchSize()
{
return
batchListsize();
}
});
}
}
主键自动增加可以在db层面建立sequence来实现,在插入的时候这么写:
Long
newPersonId
=
holdergetKey()longValue();


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12799460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存