<!-- 用于select查询公用抽取的列 --> <sql id="commonColumns"> <![CDATA[ user_id as userId, username as username, password as password, birth_date as birthDate, sex as sex, age as age ]]> </sql> 使用 <select id="getById" parameterType="java.lang.Long" resultMap="UserInfoResult"> select <include refid="commonColumns" /> <![CDATA[ from user_info where user_id = #{id} ]]> </select>
哦?给个网址看看阿?
我在ibatis.apache.org上找的pdf文档没有找到3q3qgood luck
浮上去!!我是最懒的人吗?good luck
</resultMap>
<!-- 用于select查询公用抽取的列 -->
<sql id="commonColumns">
<![CDATA[
user_id as userId,
username as username,
password as password,
birth_date as birthDate,
sex as sex,
age as age
]]>
</sql>
使用
<select id="getById" parameterType="java.lang.Long" resultMap="UserInfoResult">
select <include refid="commonColumns" />
<![CDATA[
from user_info
where
user_id = #{id}
]]>
</select>
不过这个和我想的有些出入这样的话,还是要“手动”去侵入SQL的,
我是想ibatis有没有提供监听器/解析器之类的东西,
让我在运行期注册一个“修改器”,这样对于完成功能模块的人就比较透明了。
如果以后加入新的共通字段,sql也不用修改。是不是我的需求比较BT呢?呵呵good luck
如果以后加入新的共通字段,sql也不用修改。
确实变态需求,
起码你修改了sqlmap必须重启服务器。ibatis的sqlmap是在程序启动的时候就加载的。类似hibernate的那堆映射文件。
如果你想动态的编辑sqlmap那只有自己写类解析这些sqlmap啦,说白了就是自己造轮子把。
利用spring拦截器倒是可以在执行前将当前时间和用户set到对象里面去,但是sql还得写
毕竟到了aop已经是折腾好了的东西了。不过还是谢谢回答结贴了good luck