mysql数据库怎么自增长_如何获得mysql数据库自增长主键的值?

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

yyy96f397

2014.05.13

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:59%    等级:8

已帮助:562人

@Entity:通过@Entity注解类声明实体bean

@Table:通过 @Table注解实体bean映射指定表name属性表示实体所对应表名称没有定义 @Table系统自动使用默认值:实体类名(带包名)

@Id:用于标记属性主键

@Column:表示持久化属性所映射表字段属性名与表字段名相同则省略@Column注解另外有两种方式标记放属性前另种放getter方法前例:

@Column(name = EMPLOYEE_NAME)

private String employee_name; 或者

@Column(name = EMPLOYEE_NAME)

public String getEmployee_name() {

return employee_name;

} 两种方式都正解根据人喜好来选择大象偏向于第二种并且喜欢属性名与字段名设成样样省掉@Column注解使代码更简洁

@TableGenerator:表生成器当前主键值单独保存数据库表主键值每次都从指定表查询来获得种生成主键方式常用种方法生成主键策略适用于任何数据库必担心同数据库兼容造成问题大象推荐种方式管理主键方便集式管理表主键而且更换数据库会造成大问题各属性含义下:

name:表示该表主键生成策略名称名字自定义被引用@GeneratedValue设置generator值

table:表示表生成策略所持久化表名说简单点管理其表主键表本例表名GENERATOR_TABLE

pkColumnName:表生成器列名用来存放其表主键键名列名与表字段对应

pkColumnValue:实体表所对应生成器表主键名键名自定义滴

valueColumnName:表生成器列名实体表主键下值假设EMPLOYEE表EMPLOYEE_ID大2此时生成器表与实体表主键对应键名值则3

allocationSize:表示每次主键值增加大小例设置成1则表示每次创建新记录自动加1默认50@GeneratedValue:定义主键生成策略里因使用TableGenerator所主键生成策略GenerationType.TABLE生成主键策略名称则前面定义tab-store

里大象想说下网上有多文章写strategy = GenerationType.AUTO或strategy = GenerationType.SEQUENCE采用SEQUENCE序列因Oracle数据支持identity自动增长要想使用还得数据库创建序列要更换数据库非常麻烦事情SEQUENCE生成方式我们暂且谈里说下采用AUTO和IDENTITY生成方式本例采用SQL Server 2000作数据库所想使用AUTO或IDENTITY生成策略则定要对主键加上identity标识identity(1,1)过对于AUTO来说根据同数据库选择合适自增主键生成策略使用MySQL则主键要定义AUTO_INCREMENTOracle则要创建Sequence来实现自增管采用何种生成策略增、删、改些方法定要加入事务否则数据会添加数据库滴~~~大象反复测试过结

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值