关于IBatis配置几条小窍门

在IBatis的xml映射里面有不少小窍门可以值得使用 

 

1. 使用namespace规划自己的xml映射文件, ....... 

 

2. 使用typeAlias 上面的那个cn.uisoft.bean.UserAccount是不是太长加上一个 就可以在后面直接使用这个parmeterClass="cn.uisoft.bean.UserAccount了 

 

3. 使用默认几种map映射,比如map,int,string,让程序更加灵活  

 

4. $与# 上面都是使用#的,这个的特点是ibatis会根据反射自动加上一些sql符号,比如字符串的'',但是$就是不加任何符号,直接嵌入sql 比如 String a="Jack"; 如果 SELECT count(user_id) From game_users where user_type=#userType# and game_id=#gameId# 就ok 但是如果 SELECT count(user_id) From game_users where user_type=#userType# and game_id=$gameId$ 就回因为sql语句是......game_id=Jack 报错 因为sql语法 要求game_id='Jack' 表示字符串 当然$因此可以直接参与sql逻辑,但是往往直接使用更容易出错误或者导致隐藏的类似于sql注入的漏洞 个人建议 自己做一个辅助类可以类似于Criteria 这种,自己包装生成用于$的sql(不过那样的话可能要考虑各种数据的不同) 以下是一个简单的$使用 根据不同的字段取去topten的数据、  

5 关于动态remapResults="true"的说明如果你使用下面这种动态语句的时候,在第二次传入参数tableName或者resultMap参数不同的时候会 SQLException:Invaild column name 错误,因为IBatis有自己的AutoReusltMap的cache,他总是用上次的column去匹配表, 解决的方法就是使用多个statement或者设置remapResults="true" 就是每次会自动重新映射

你可能感兴趣的:(sql,bean,xml,ibatis,cache)