A. java JDK提供的一個自動生成主鍵 UUID.randomUUID()的方法 它永遠都不會重復嘛
關於是否重復,首先要說一下uuid生成的原理
UUID是指在一台機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的
UUID由以下幾部分的組合:
(1)當前日期和時間,UUID的第一個部分與時間有關,如果你在生成一個UUID之後,過幾秒又生成一個UUID,則第一個部分不同,其餘相同。
(2)時鍾序列。
(3)全局唯一的IEEE機器識別號,如果有網卡,從網卡MAC地址獲得,沒有網卡以其他方式獲得。
通過組成可以看出,首先每台機器的mac地址是不一樣的,那麼如果出現重復,可能是同一時間下生成的id可能相同,不會存在不同時間內生成重復的數據
至於說同一時間產生重復的數據,就目前來說,是不會的除非極高的高並發(如果發生了,也可以通過原子性操作避免),
所以基本上就認為不會重復好了
B. 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>就可以自動增長,就不用自己管了
C. java中如何獲得自增長主鍵表中新插入行的主鍵 資料庫是sql server 2000.
如果主鍵值是
自增欄位就可以
insert
...
Select
@@identity
insert
into
userInfo
(loginName,loginPass,blance)
values('1','123',23)
Select
@@identity
這樣些sql語句就可以了
求滿意