dao多表操作的解決思路
一、分層dao思路
雖然網上有文章表示乙個表對應乙個dao並不好,但這裡暫時還是盡量乙個表乙個dao。這裡想說的是,把dao層細化一下。分成bdao(底層dao)和tdao(頂層dao),或說成tdao(表級dao)和odao(物件級dao)。
1、bdao
底層dao主要思路就是乙個表對應乙個dao,然後實現crud,同時還要給頂層dao提供暴露conn連線的cud方法(查詢通常不用事務吧)。
2、tdao
頂層dao使用底層dao暴露conn連線的方法,實現多表操作,從而實現事務處理的能力。
這種方法的優點是,**優美、通俗易懂,缺點是要實現業務邏輯中的每個事務的tdao,工作量可能會比較大。
二、執行自定義sql語句
針對當前的dao,提供乙個自定義的方法,該方法提供乙個字串陣列引數,每個元素都是乙個sql語句,然後在方法體內實現事務,順次執行字串陣列中的sql語句,成功則提交,否則回滾。
這種方法的優點是,方法簡單,缺點是需要業務邏輯程式設計人員需要保留資料庫程式設計人員協助提供的sql語句,從而使sql語句需要在熟悉不同領域的程式設計人員之間保持同步(等等)。
目前先想到這,以後有時間再把dao層完善。
mysql的多表操作 MySQL多表操作
交叉連線 交叉連線 cross join 又稱笛卡爾連線 cartesian join 或叉乘 product 它是所有型別內連線的基礎。它把表看作是行記錄的集合,交叉連線即返回這兩個集合的笛卡爾積。這其實等價於內連線的連線條件始終為 真 或連線條件不存在。笛卡爾積引用自數學,在數學中,兩個集合x和...
MYSQL的多表操作
1.外來鍵 用來描述兩張表之間的關係 某商品屬於哪個分類,需要在該商品上新增category id 從表的外來鍵指向主表的主鍵 2.外來鍵宣告 alter table product add foreign key category id references category cid 指定cate...
django的多表操作
多表操作 基於物件的跨表查詢 多次查詢 一對一 正向查詢按欄位 反向查詢按表名小寫 一對多 正向查詢按欄位 正向查詢一定會查出乙個來 反向查詢按表名小寫 set.all 返回結果是queryset物件 多對多 正向查詢按欄位.all 正向查詢一定會查出多個來 反向查詢按表名小寫 set.all 返回...