文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
4.6 sql 元素
sql 元素的意义,在于我们可以定义一串 SQL 语句的组成部分,其他的语句可以通过引用来使用它。例如,你有一条 SQL 需要 select 几十个字段映射到 JavaBean 中去,我的第二条 SQL 也是这几十个字段映射到 JavaBean 中去,显然这些字段写两遍不太合适。那么我们就用 sql 元素来完成,例如,插入角色,查询角色列表就可以这样定义,如代码清单 4-15 所示。
代码清单 4-15:sql 元素的使用
<sql id="role_columns"> id, role_name, note </sql> <select parameterType="long"id="getRole" resultMap = "roleMap" > select <include refid="role_columns"/> from t_role where id =#{id} </select> <select parameterType="map" id ="findRoles"> select id, role_name, note from t_role where role_name like concat('%', #{roleName}, '%') and note like concat('%', #{note}, '%') </select>
这里我们用 sql 元素定义了 role_columns,它可以很方便地使用 include 元素的 refid 属性进行引用,从而达到重用的功能。上面只是一个简单的例子,在真实环境中我们也可以制定参数来使用它们,如代码清单 4-16 所示。
代码清单 4-16:制定参数
<sql id="role_columns"> #{prefix}.role_no, #{prefix}.role_name, #{prefix}.note </sql> <select parameterType="string" id="getRole" resultMap = "roleResultMap" > select <include refid="role_columns"> <property name="prefix" value="r"/> </include> from t_role r where role_no =#{roleNo} </select>
这样就可以给 MyBatis 加入参数,我们还可以这样给 refid 一个参数值,由程序制定引入 SQL,如代码清单 4-17 所示。
代码清单 4-17:使用 refid
<sql id="someinclude"> select * from <include refid="${tableName}"/> </sql>
这样就可以实现一处定义多处引用,大大减少了工作量。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论