MyBatic,主從表同時寫入鍵值傳遞

2022-05-07 21:51:09 字數 1023 閱讀 6100

一.丟擲問題,在有主從表的結構中,從表的外來鍵引用了主表的主鍵,在主表插入資料後,需要將主鍵值傳遞給從表才能完成從表資料的寫入

業務舉例:有訂單表(主) 和 訂單明細表(從),訂單表有主鍵 id ,訂單明細表有外來鍵 「訂單id"

二.解決方案

1.在主表插入資料時,在mybatis中 使用 jdbc 的 getgeneratedkeys 方法來取出由資料庫內部生成的主鍵,而後對映到實體類屬性

<

insert

id="add"

parametertype

="order"

usegeneratedkeys

="true"

keycolumn

="id"

keyproperty

="id"

>

insert into mall_order(userid,orderno,orderdate,consignee,phonenum,recaddress,cost,status,paytype,paydate,recdate,onshow)

values(#,#,#,#,#,#,#,#,#,#,#,#)

insert

>

2.從表插入不需多餘設定

3.使用鍵值傳遞

orderdao orderdao = mallutils.getdao(orderdao.class

);

//呼叫add方法時,主鍵被取出對映到實體中

orderdao.add(order);

orderdetilsdao orderdetilsdao=mallutils.getdao(orderdetilsdao.class

);

for(orderdetils detils:orderdetils)

主從表,約束

主表 create table 主表名 欄位名1 資料型別1 primary key,欄位名2 資料型別2 如 create table sb sid int primary key,age int 從表 create table 從表名 欄位名1 資料型別1 primary key,欄位名2 資料...

EF Code first主從表,刪除更新從表

以order和orderitem為例,從表orderitem裡有主表的orderid 想通過order.orderitems.add 或者remove 方法直接更新從表的話,必須在從表建立聯合主鍵才可以 在dbcontext裡的onmodelcreating方法裡加上 modelbuilder.en...

主從表的報表(簡單範例)

注意 要配置xsd架構,和對應的強型別的dataset private sub form1 load byval sender as object,byval e as system.eventargs handles mybase.load dim conn as new sqlconnectio...