广告
返回顶部
首页 > 资讯 > 精选 ><include>标签在mybatis中的作用是什么
  • 184
分享到

<include>标签在mybatis中的作用是什么

2023-06-06 10:06:22 184人浏览 薄情痞子
摘要

<include>标签在mybatis中的作用是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。MyBatis中sql标签定义SQL片段,include标签引

<include>标签在mybatis中的作用是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<include>标签在mybatis中的作用是什么

MyBatis中sql标签定义SQL片段,include标签引用,可以复用SQL片段

sql标签中id属性对应include标签中的refid属性。通过include标签将sql片段和原sql片段进行拼接成一个完整的sql语句进行执行。

<sql id="sqlid">  res_type_id,res_type</sql><select id="selectbyId" resultType="com.property.vo.PubResTypeVO">  select  <include refid="sqlid"/>  from pub_res_type</select>

引用同一个xml中的sql片段

<include refid="sqlid"/>

引用公用的sql片段

<include refid="namespace.sqlid"/>

include标签中也可以用property标签,用以指定自定义属性。

在sql标签中通过${}取出对应的属性值。

<select id="queryPubResType" parameterType="com.property.vo.PubResTypeVO" resultMap="PubResTypeList">  select a.res_type_id,  <include refid="com.common.dao.FunctionDao.SF_GET_LNG_RES_TYPE">    <property name="ai_RES_TYPE_ID" value="a.res_type_id"/>    <property name="lng" value="#{lngId}"/>    <property name="female" value="'女'"/>  </include> as res_type  from  pub_res_type a</select>

使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。

如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。

resultMap:适合使用返回值是自定义实体类的情况

resultType:适合使用返回值得数据类型是非自定义的,即jdk的提供的类型

补充:mybatis include标签传参特性测试

1 前言

mybatis的include标签主要是用于sql语句的可重用,并且可以接收参数来生成动态sql。为了进一步了解include标签的传参特性,我写了一段测试代码来测试一下include标签的特性。

2 测试代码

mapper.xml

<!--需要include的代码块--><sql id="luck">#{luck}||'${luck}'</sql><!--property标签name属性和参数名一样,但值不同--><select id="test1" resultType="java.lang.String">select<include refid="luck"><property name="luck" value="lucktheuniverse"/></include>from dual</select><!--property标签name属性和参数名一样,但值为#号方式传值--><select id="test2" resultType="java.lang.String">select<include refid="luck"><property name="luck" value="#{luck}"/></include>from dual</select><!--property标签name属性和参数名一样,但值为$方式传值--><select id="test3" resultType="java.lang.String">select<include refid="luck"><property name="luck" value="${luck}"/></include>from dual</select><!--property标签name属性和参数名不同--><select id="test4" resultType="java.lang.String">select<include refid="luck"><property name="luck1" value="lucktheuniverse"/></include>from dual</select>

mapper.java

String test1(@Param(value = "luck") String luck);String test2(@Param(value = "luck") String luck);String test3(@Param(value = "luck") String luck);String test4(@Param(value = "luck") String luck);

test.java

String test1 = mapper.test1("luck123");String test2 = mapper.test2("luck123");String test3 = mapper.test1("luck123");String test4 = mapper.test2("luck123");

测试结果

test1: luck123lucktheuniversetest2: 报错test3: luck123luck123test4: luck123luck123

3 结论

采用${}取参数时,include标签的property属性的优先级要高于外围mapper的参数;

采用#{}取参数只能取到外围mapper传过来的参数。

4 test2报错原因

test2报错是因为,include中${luck}取了property中的#{luck},但是#{}自带了双引号。所以得到的sql就成了

select #{luck}||'#{luck}' from dual

最终转化为preparedStatement,会报java.sql.SQLException: 无效的列索引

select ?||'?' from dual

'?'是不能被单引号 ' 包围的

所以要谨慎,不要在#{}传入的参数周围加上单引号

把include代码块修改为,可以得到输出为luck123luck123

 <sql id="luck"> #{luck}||${luck} </sql>

关于<include>标签在mybatis中的作用是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: <include>标签在mybatis中的作用是什么

本文链接: https://www.lsjlt.com/news/246441.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • <include>标签在mybatis中的作用是什么
    <include>标签在mybatis中的作用是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。MyBatis中sql标签定义SQL片段,include标签引...
    99+
    2023-06-06
  • <![CDATA[ ]]>在Mybatis 中的作用是什么
    <![CDATA[ ]]>在Mybatis 中的作用是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。<![CDATA[   ]]>...
    99+
    2023-05-31
    mybatis dat
  • html中<head>标签的作用是什么
    小编给大家分享一下html中<head>标签的作用是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 文档的头部描述了文档的各种属性和信息,包括文档的标题等。绝大多数文档头...
    99+
    2022-10-19
  • mybatis中<choose>标签怎么使用
    本文小编为大家详细介绍“mybatis中<choose>标签怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatis中<choose>标签怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-06-30
  • mybatis中<choose>标签的用法说明
    目录choose标签用法choose动态用法choose标签用法 choose 标签是按顺序判断其内部 when 标签中的 test 条件出否成立,如果有一个成立,则 choose ...
    99+
    2022-11-13
  • HTML中<hr>是什么标签
    这篇文章主要为大家展示了“HTML中<hr>是什么标签”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML中<hr>是什么标签”这篇文...
    99+
    2022-10-19
  • HTML5中的<template>标签有什么作用
    这篇文章主要介绍“HTML5中的<template>标签有什么作用”,在日常操作中,相信很多人在HTML5中的<template>标签有什么作用问题上存在疑惑,小编查阅了各式资料,整...
    99+
    2022-10-19
  • HTML的<br>与<p>标签区别是什么
    本篇内容介绍了“HTML的<br>与<p>标签区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细...
    99+
    2022-10-19
  • HTML的<head>标签有什么作用
    本文小编为大家详细介绍“HTML的<head>标签有什么作用”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML的<head>标签有什么作用”文章能帮助大家解决疑惑,下面跟着小编...
    99+
    2022-10-19
  • html中<strong>和<b>标签之间的区别是什么
    这篇文章给大家分享的是有关html中<strong>和<b>标签之间的区别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 默认情况下,<st...
    99+
    2022-10-19
  • html中<br/>标签有什么用
    小编给大家分享一下html中<br/>标签有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! <br/&...
    99+
    2022-10-19
  • HTML中<address>标签有什么用
    这篇文章主要介绍HTML中<address>标签有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 标签定义及使用说明 <address> 标签定义文...
    99+
    2022-10-19
  • HTML中<a>标签有什么用
    小编给大家分享一下HTML中<a>标签有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 实例 标签定义及使...
    99+
    2022-10-19
  • HTML中<abbr> 标签有什么用
    这篇文章主要为大家展示了“HTML中<abbr> 标签有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML中<abbr> 标签...
    99+
    2022-10-19
  • HTML中<audio>标签有什么用
    这篇文章主要介绍HTML中<audio>标签有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 标签定义及使用说明 <audio> 标签定义声音,比如...
    99+
    2022-10-19
  • HTML中<aside>标签有什么用
    这篇文章主要为大家展示了“HTML中<aside>标签有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML中<aside>标签...
    99+
    2022-10-19
  • HTML中<area>标签有什么用
    这篇文章给大家分享的是有关HTML中<area>标签有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 标签定义及使用说明 <area> 标签定义...
    99+
    2022-10-19
  • HTML中<article>标签有什么用
    小编给大家分享一下HTML中<article>标签有什么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 标签定义及使用说明 <article> 标签定义独立的...
    99+
    2022-10-19
  • html中<meta>标签有什么用
    小编给大家分享一下html中<meta>标签有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是meta标签...
    99+
    2022-10-19
  • html中<script>标签有什么用
    这篇文章将为大家详细讲解有关html中<script>标签有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是script标签script标签通常放置...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作