oracle的主鍵與mybatis插入操作的矛盾

2021-08-08 19:46:07 字數 1006 閱讀 3736

今天寫乙個簡單的提交操作時,一直一直一直通過不了,首先是蠢蠢的把url搞錯了,後來就是遇到了經常遇到的資料庫欄位不匹配的問題。

仔細檢查了資料庫的表字段,把不能為空的相應字段加上allowblank=」false」屬性(公司封裝框架)。

再後來,就遇到了mybatis的插入操作,主鍵要自動生成,而不是自己填寫。

噠噠噠~~敲重點。

情況一:oracle資料庫,主鍵是序列的情況下

在mybatis中配置

id="epcc_sequence">epcc253_seq(表中序列名字啦)sql>

//插入操作時

id="insert"

parametertype="epcc253po">

insert into epcc_253 id,name,age values(

refid="epcc253_sequence" /> ,#,#)

insert>

情況二,敲黑板…

oracle資料庫,

id  varchar2(32) default

sys_guid

() not null,

sys_guid()呢,會保證在每個資料庫中生成的id是唯一的。

這時,並行操作和遠端環境中的時候,就不會發生衝突。

物件在不同機器上的不同資料庫裡生成並需要合併在一起的時候,它就賊有用啦~~

然後,就節省了對資料庫進行訪問的時間戳和機器識別符號的查詢的時間。

~~~不足的話,恩,還沒有遇到,不是很理解。

什麼需要手動輸入或通過指令碼填充,或者將他們當做web引數來傳遞。

在mybatis中配置的話就是

`

sys_guid()

//插入語句

insert into epcc_253 id,name,age values(

,#,#)

就醬紫啦~~~`

oracle的主鍵問題

在oracle中主鍵建立通常有兩種方法,但也可以讓使用者進行自己進行定義生成主鍵的策略。自增主鍵序列和sys guid生成唯一的序列。下面分別進行介紹這兩種方法 一 自增主鍵 建立乙個表 create table student stid int primary key,name varchar2 ...

oracle 主鍵刪除,聯合主鍵的建立

alter table tablename drop primary key 執行上面的sql能夠刪除主鍵 假設不成功能夠用 alter table tablename drop constraints column cascade 刪除約束 alter table tablename disabl...

oracle主鍵的自動生成

oracle資料庫中不能設定主鍵自增,通過 序列sequence 觸發器trigger 實現主鍵自增 1.建立序列 create sequence chml sequence 建立序列chml sequence minvalue 1 最小值 maxvalue 99 最大值 start with 1 ...