導航:首頁 > 編程語言 > 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主鍵自增相關的資料

熱點內容
svn怎麼看伺服器的地址 瀏覽:187
騎馬與砍殺1命令部隊用盾牌 瀏覽:595
光纜pdf 瀏覽:350
加密流量實時監測 瀏覽:628
360壓縮和好壓哪個好 瀏覽:61
python判斷變數是否為list 瀏覽:906
雲伺服器1m帶寬表示什麼意思 瀏覽:702
429升冷櫃用多大壓縮機 瀏覽:116
決策樹演算法java實現 瀏覽:376
androidtv開發焦點控制 瀏覽:328
論人的成長pdf 瀏覽:282
python網站源代碼 瀏覽:827
手機文件壓縮器怎麼安裝 瀏覽:112
androidsdk封裝 瀏覽:266
微信加密不知道怎麼取消 瀏覽:705
分析演算法設計程序編寫 瀏覽:843
linux啟動dhcp失敗 瀏覽:356
芙蓉出水選股公式源碼 瀏覽:763
linux更改密碼錯誤 瀏覽:244
最美的源碼 瀏覽:803