posts - 9, comments - 8, trackbacks - 0, articles - 3
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          演示的sqlMap 配置文件,通過'$'和'*'的使用,達到動態映射Table到一個map的作用

          <? xml?version="1.0"?encoding="UTF-8"? ?>
          <! DOCTYPE?sqlMap?PUBLIC?"-//iBATIS.com//DTD?SQL?Map?2.0//EN"?"http://www.ibatis.com/dtd/sql-map-2.dtd"? >

          < select? id ="useAutoResultMapExample" ?parameterClass ="map" >
          USE?$dbName$
          SELECT*? FROM?? $tableName$
          </ select >
          </ sqlMap >

          也就是在IBatis里面配置一個statment,去執行多個查詢,充分利用了map映射的特性.

          去執行多個查詢。

          比如
          select * from myexample
          select * from mywork

          使用"*" 而且沒有用resultClass 指定返回

          但是在默認配置下,在使用的時候的時候

          2次以上傳入不同的$dbName$,$tabeName$ 調用這個useAutoResultMapExample,

          就要報java.sql.SQLException: Invalid column name錯誤

          因為iBatis自己有 AutoResultMap的cache,盡管你傳入的$tableName$不同,但是他總是

          用第一個建立的AutoResultMap的cache去匹配以后的$tableName$當然有錯誤了

          解決方法: 使用多個statment或者使用 remapResults="true" (為了效率他默認的是false)

          以上由于效率問題,建議還是采用多個statement 映射到不同的model上面去,不建議生產系統也這么使用。

          主站蜘蛛池模板: 慈溪市| 濉溪县| 永济市| 延川县| 开远市| 武鸣县| 承德市| 潞西市| 婺源县| 永宁县| 九台市| 曲靖市| 邯郸市| 湘乡市| 迭部县| 合肥市| 象州县| 都匀市| 法库县| 海淀区| 营口市| 达尔| 普安县| 东平县| 云和县| 循化| 皋兰县| 黄平县| 赣榆县| 太谷县| 达日县| 稻城县| 宁安市| 施甸县| 宝清县| 常宁市| 大理市| 霍城县| 舒兰市| 昌邑市| 鹤庆县|