使用mybatis做持久层框架时,数据库的主键生成策略怎么维护

使用mybatis做持久层框架时,数据库的主键生成策略怎么维护,第1张

两种方式:

方式1:假设Bean的属性xxx为主键,则在getXxx() 前添加以下注解

@Id

@SequenceGenerator(name="名称A", sequenceName="库中已存在的sequence名称",allocationSize=递增值)

@GeneratedValue(strategy=GenerationTypeSEQUENCE, generator="名称A")

方式2:假设Bean的属性xxx为主键,则在getXxx() 前添加以下注解

@Id

@TableGenerator(name="名称A",allocationSize=递增值)//若不指定递增值,则生成的主键值不一定连续

@GeneratedValue(strategy=GenerationTypeTABLE, generator="名称A")

代码如下:

--创建测试表 

CREATE TABLE [Identity]( 

Id INT IDENTITY(1,2) NOT NULL PRIMARY KEY,--种子的起始值1,步长

Number VARCHAR(20) UNIQUE NOT NULL, 

Name VARCHAR(20) NOT NULL, 

Password VARCHAR(20) DEFAULT(123), 

Description VARCHAR(40) NULL 

--插入记录 

INSERT INTO [Identity](Number,Name,Description) VALUES('001','1st','Id=1,因为起始值1') 

INSERT INTO [Identity](Number,Name,Description) VALUES('002','2nd','Id=3,因为起始值1,步长2') 

INSERT INTO [Identity](Number,Name,Description) VALUES('003','3rd','Id=5,由于字符长度超长,报错插入失败,造成此Id产生后被放弃') 

INSERT INTO [Identity](Number,Name,Description) VALUES('004','4th','Id=7 not 5,因为第三条记录插入失败') 

--检索记录,查看结果 

SELECT  FROM [Identity]

CREATE TABLE dbPublishing

(

number char(4) not null --设置主键为字符型

constraint 约束1 primary key clustered --设置主键

check(number in('1234','2234','4234','5234','6234') --设置主键的而是约束

or number like '99[0-9][0-9]' ---主键的约束

or numuber like 'ab[0-9][0-9]'), --主键的约束

publishName varchar(27),

city char(20),

provinceName char(7),

country varchar(7)

)

你这是什么数据库?

SQL Server 的话,你可以把CID设为自增加1,这样就可以实现在插入的时候自动生成CID的值了;

如果是oracle,你可以在oracle数据库里建个sequense,通过

select sequensenext() from dual 得到自增的序列号;

在查询分析器中执行

sp_help 表名

就可以看到该表的各类信息,包括表的所有者,结构,主键等

祝你好运

如果你知道自动编号字段的名称,就简单了,比如说如果该字段名称为id

select max(id) from <表名>

找出来的就是最后那条记录的id号

select from <表名> where id in (select max(id) from <表名>)

就是你刚才新增的记录了

在创建表的时候可以设置,方法如下,用一下sql语句。

create table tableName(

id int identity(1,1) primary key,

data varchar(50))

解释:其中identity(1,1)代表自增,第一个1代表从1开始计数,第二个1代表每次增长1。

扩展资料:

SQL 全名是结构化查询语言[1](Structured Query Language),是用于数据库中的标准数据查询语言,IBM 公司最早使用在其开发的数据库系统中。1986年10月,美国国家标准学会(ANSI) 对 SQL 进行规范后,以此作为关系式数据库管理系统的标准语言 (ANSI X3 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对 SQL 规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。

参考资料:

百科-SQL语言

如何向数据库中插入一条记录,以及取得新插入记录的自动生成的主键

创建表格的时候将主键设定为IDENTITY:

CREATE TABLE Test

(

<a href=">

以上就是关于使用mybatis做持久层框架时,数据库的主键生成策略怎么维护全部的内容,包括:使用mybatis做持久层框架时,数据库的主键生成策略怎么维护、怎样用SQL向数据库中批量的插入数据,主键是随机生成的、请问用sql server 怎么自动生成主键等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9300899.html

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

发表评论

登录后才能评论

评论列表(0条)

保存