weidagang2046的專欄

          物格而后知致
          隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
          數據加載中……

          放棄 ORM 改用 SqlMap 的 N 個理由

          1. 在項目中經常碰到的數據庫分頁查詢, ORM 一般都支持的不好, 如果用 ORM, 這部分程序往往要自己擴展, 而 SqlMap 對各種查詢語句不分彼此, 一概在 Map 文件里定義。

          2. 對一些稍微復雜些的語句, 例如在對金額等敏感數據操作時, 一個常用的操作序列是:
          a. 先取出當前金額
          b. 運算后得到更新的金額
          c. 執行 Update 語句: Update < tableName > set amount= < New amount > where amount= < Old amount >
          這種操作是 ORM 不能支持的, SqlMap 能很好的支持。

          3. SqlMap 的 Domain 對象可以直接放在業務層, 一般 ORM 的對數據訪問的基類要放在數據訪問層(因為帶有對數據訪問的接口, 放在業務層不合適), 增加了代碼的冗余度。

          4. 用 ORM 的目的是什么, 最主要的目的是減少重復的底層編程工作量, SqlMap 完全可以做到。

          再說說 SqlMap 的不足:

          1. 因為不象 ORM 那樣生成穩定可靠的對數據訪問的基類, 所以要對 Map 操作做好充足的單元測試, 增加了測試的工作量。

          2. 每次改動數據庫, Map 和 Domain 文件往往要手工修改, 因為 SqlMap 的靈活性, 往往我們會手工調整 Map 而不會直接使用 Generator 生成的代碼。

          from: http://matrix.foresee.cn/blogs/simon/archives/001638.html

          posted on 2006-11-26 16:02 weidagang2046 閱讀(649) 評論(0)  編輯  收藏 所屬分類: JavaDatabase

          主站蜘蛛池模板: 榆林市| 江源县| 枣阳市| 遵化市| 洞头县| 南昌县| 德昌县| 永定县| 芮城县| 泗阳县| 新丰县| 明水县| 永丰县| 安丘市| 连云港市| 尉氏县| 石屏县| 自治县| 松潘县| 宣汉县| 陆河县| 常德市| 潮州市| 六安市| 金秀| 宾阳县| 肇源县| 噶尔县| 青岛市| 叶城县| 县级市| 霸州市| 贵州省| 七台河市| 商南县| 陈巴尔虎旗| 雅安市| 石柱| 山阴县| 民县| 昌都县|