概述
1、修改pom.xml,升级MyBatis版本升级到3.3.0以上版本
2、刷新maven(两种方式)
A. 命令方式
在terminal窗口输入:
mvn clean install -Dmaven.test.skip=true
小注:
clean 移除所有上一次构建生成的文件
install 将包安装至本地仓库,以让其它项目依赖
maven.test.skip 跳过测试
该方式需要先定位到pom.xml所在的文件夹,再执行命令。
B. 工具操作方式:
利用idea中的Maven工具来操作,先clean后install
AB两种方式,操作完成后,最好刷新一下
如果还是不行,删除一下target文件
3、代码编写
<sql id="sqlDemo1">
SELECT * FROM tableA
<where>
tableA.code=#{code}
<if test="city != null and city!= ''">
AND tableA.city = #{city}
</if>
</where>
</sql>
<sql id="sqlDemo2">
SELECT * FROM tableB
<where>
tableB.city IN
(
<include refid="sqlDemo1">
<property name="city" value="${city}"/>
<property name="code" value="${code}"/>
</include>
)
</where>
</sql>
<select id="getList" parameterType="Map" resultType="Map">
<include refid="sqlDemo2">
<property name="city" value="${city}"/>
<property name="code" value="${code}"/>
</include>
</select>
该代码主要演示了:sql片段可以嵌套,可以动态传值,但注意在给property的value传值时,只能用$,用#的会导致在sql中取不到值。
上面用的ide是:IntelliJ IDEA 15.0.6
用property的时候idea有可能报错如下,但编译可以通过不影响使用:
至于sql片段传递固定值,可以参考以下说明
=================传递固定值=====================
这个元素可以被用来定义可重用的 SQL 代码段,可以包含在其他语句中。它可以被静态地(在加载参数) 参数化. 不同的属性值通过包含的实例变化. 比如:
<sql id="userColumns"> ${alias}.id,${alias}.username,${alias}.password </sql>
这个 SQL 片段可以被包含在其他语句中,例如:
<select id="selectUsers" resultType="map">
select
<include refid="userColumns"><property name="alias" value="t1"/></include>,
<include refid="userColumns"><property name="alias" value="t2"/></include>
from some_table t1
cross join some_table t2
</select>
属性值可以用于包含的refid属性或者包含的字句里面的属性值,例如:
sql id="sometable">
${prefix}Table
</sql>
<sql id="someinclude">
from
<include refid="${include_target}"/>
</sql>
<select id="select" resultType="map">
select
field1, field2, field3
<include refid="someinclude">
<property name="prefix" value="Some"/>
<property name="include_target" value="sometable"/>
</include>
</select>
小注:传递传递值部分摘自《MyBatis官方文档》,链接地址:
http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html
作者:jiankunking 出处:http://blog.csdn.net/jiankunking
最后
以上就是酷炫猎豹为你收集整理的MyBatis数据持久化 SQL复用(可重用的 SQL 代码段)的全部内容,希望文章能够帮你解决MyBatis数据持久化 SQL复用(可重用的 SQL 代码段)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复