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上面去,不建議生產系統也這么使用。

          主站蜘蛛池模板: 独山县| 自治县| 安阳市| 九台市| 盐山县| 石屏县| 台南县| 云浮市| 灵武市| 西安市| 广河县| 阿荣旗| 星子县| 宜州市| 积石山| 乌鲁木齐市| 邹城市| 秭归县| 闻喜县| 和林格尔县| 博客| 子洲县| 襄城县| 南陵县| 永清县| 贵港市| 济南市| 凤庆县| 慈溪市| 九龙县| 安图县| 天峨县| 榆中县| 宝清县| 大余县| 周口市| 陈巴尔虎旗| 长沙市| 咸宁市| 汝城县| 莒南县|