导航:首页 > 编程语言 > java主键自增

java主键自增

发布时间:2022-05-13 12:24:11

‘壹’ java中如何保证线程安全以及主键自增有序

一、常见场景 多个线程针对一个i进行主键自增。多线程下如果不做安全策略,将会导致各个现成获取的i值重复,导致脏数据常见策略1、增加syschroize进行线程同步 2、使用lock、unlock处理 3、使用reetrantent 锁进行锁定 缺点:容易造成性能低下,或者编写代码容易造成死锁二、新方案jdk新提供的功能,atomicInteger(还有其他一atomic开头的原子性操作类) AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。 原理:通过java的CAS compare and swap,简称cas原语进行操作提升性能,这个也号称乐观锁,不阻塞 观锁实际上并不加锁,当计算遇到冲突或者说前后不一致时会重试 直到成功 CAS有3个操作数 内存值V 要跟内存值做比较的值A 和 新值 B while(true){ if(V == A){V = B;return ;}else{A = V;}}CAS的操作对象为volatile类型 volatile类型变量是:CPU直接读写变量所在的内存 而不是把变量到寄存器操作 这样对变量的操作所有线程都是可见的这样做的结果是减少了并发时冲突的概率 但不能完全避免

‘贰’ Java程序连接Oracle数据库时怎么设置主键自增

在oracle中主键是不能自增的,不过可以创建一个序列
-- Create sequence
create sequence SEQ_TEXT
minvalue 1
maxvalue 9999
start with 60
increment by 1
cache 20;
在插入数据的时候
INSERT INTO STUDENT(ID,NAME) VALUES(SEQ_TEXT.NEXTVAL,'张三');
这样就可以了

‘叁’ java中如果set了一个主键并且自动增长列后也没有错误,怎么回事

主键可以set啊,只是不能重复罢了,你这里是没碰到自动增长列和你修改的主键相同才不会报错的!否则肯定会报错的。

‘肆’ 为什么java 中Derby主键自增每次都加100

据了解,derby数据库对记录项的预缓存项数就是100,
在你数据库操作后没有正常关闭数据库和连接的情况,就会导致缓存中的[前一插入位置]丢失。
这个项可以在derby的设置属性derby.language.sequence.preallocator中改,但缩小后缓存变小影响性能,应该去解决流程中的错误...
另外,作为键值(而不是数值),重点在保障唯一性,正确设计下即使增100也不影响...

‘伍’ java如何在数据库主键按顺序自动生成

<hibernate-mapping>
<class name="com.so.pojo.City" table="CITY" schema="SOP">
<id name="id" type="java.lang.String">
<column name="ID" length="50" />
<generator class="native"></generator>
</id>
<property name="name" type="java.lang.String">
<column name="NAME" length="100" />
</property>
<property name="parent" type="java.lang.String">
<column name="PARENT" length="50" />
</property>
</class>
</hibernate-mapping>
用hibernate:
我的数据库中有一个表示city,主键是id设置<generator class="native"></generator>就可以自动增长,就不用自己管了

‘陆’ java中如何获得自增长主键表中新插入行的主键 数据库是sql server 2000.

如果主键值是
自增字段就可以
insert
...
Select
@@identity
insert
into
userInfo
(loginName,loginPass,blance)
values('1','123',23)
Select
@@identity
这样些sql语句就可以了
求满意

‘柒’ JAVA servlet 往mysql数据库添加怎样让主键自动增加呢

首先数据库表的ID列设置为自动增长就可以了.
在程序中.insert时.不用指定ID.数据库表自动完成.

‘捌’ java往数据库sql中添加数据,怎么让主键自增

首先,你如果想把id列设置为自增列,直接在数据库中将其设置为自增列就可以了。

然后,等你添加数据的时候使用如下的语句:

INSERTINTOdingdan(sname,snumber,rname,rnumber,address,beizhu,cdate)VALUES(?,?,?,?,?,?,?)

数据库会自动帮你添加id列的值。 所以,你的这个代码可以改为:

StringinsertCondition="INSERTINTOdingdan(sname,snumber,rname,rnumber,address,beizhu,cdate)VALUES(?,?,?,?,?,?,?)";
sql=con.prepareStatement(insertCondition);
sql.setString(1,handleString(sname));
sql.setString(2,handleString(snumber));
sql.setString(3,handleString(rname));
sql.setString(4,handleString(rnumber));
sql.setString(5,handleString(address));
sql.setString(6,handleString(beizhu));
sql.setTimestamp(7,newTimestamp(System.currentTimeMillis()));//获取系统当前时间
intm=sql.executeUpdate();

‘玖’ 在向数据库插入数据时,如何在java方法中实现id有序自增

@Entity
public class Goods implements Serializable{
@Id
@GeneratedValue
private Integer id;

private Integer gooodsType;//品种

private String goodsName;//产品名称

private String imageMain;//主图

private List<String> otherImage;//其他图片

}

该id就是自增的。
还有一种方式,就是要插入的时候,先查一下主键索引序列,然后++,在插入的时候,把id也插入进就可以了。

‘拾’ java 用 jdbc 插入一条信息返回当前信息的主键id 怎样写 oracle的数据库 主键序列自增

有两种方法可以设置主键,一种是自增长主键,另一种就是生成唯一序列。
一、自增长主键
--首先建一个表TEST
create table TEST
(
NID int PRIMARY KEY,
test1 varchar2(20),
test2 varchar2(20),
test3 varchar2(20),
test4 varchar2(20),
test5 varchar2(20)
)
-- 再建一个序列SEQ_TEST
create sequence SEQ_TEST
minvalue 1 --最小值
nomaxvalue --不设置最大值
start with 1 --从1开始计数
increment by 1 --每次加1个
nocycle --一直累加,不循环
nocache; --不建缓冲区
以上代码完成了一个序列(sequence)的建立过程,名称为SEQ_TEST,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle 是决定不循环,如果你设置了最大值那么你可以用cycle 会使seq到最大之后循环.对于nocache顺便说一下如果你给出了cache值那么系统将自动读取你的cache值大小个seq,这样在反复操作时会加快运行速度,但如果遭遇意外情况如当机了或Oracle死了,则下次取出的seq值将和上次的不连贯.(如果连不连贯无所谓建议用cache,因为时间就是金钱呀!)
你只有了表和序列还不够,最好再建一个触发器来执行它!代码如下:
CREATE OR REPLACE TRIGGER tg_test
BEFORE INSERT ON test FOR EACH ROW WHEN (new.nid is null)
begin
select seq_test.nextval into:new.nid from al;
end;

下面是测试
select * from test
insert into test(nid,test1) values(6,'aaa')
insert into test(test1) values('bbb')

阅读全文

与java主键自增相关的资料

热点内容
手机号码如何加密 浏览:424
沈阳程序员培训学校 浏览:538
一般服务器如何配置 浏览:895
图片怎样加密发邮件 浏览:619
万虹电脑文件夹密码忘记了怎么办 浏览:631
rc108单片机 浏览:867
战雷如何改变服务器 浏览:674
mactelnet命令 浏览:51
压缩袋压缩了拿出来 浏览:401
安卓手机相机怎么设置权限 浏览:121
美女程序员转行做主播 浏览:671
办理解压房产 浏览:575
道路工程概论pdf 浏览:388
超棒数学速算法大全 浏览:937
小米易语言登录源码 浏览:31
砖墙内加密钢筋 浏览:992
乡关何处pdf 浏览:84
小猪领赞小程序源码 浏览:336
python曲线如何原路返回 浏览:431
pdf快速看图破解版 浏览:295