parameterType是必须写的吗?

简介: xml中没有配置parameterType,但是这是正确的,因为mybatis能自动识别,但返回值类型不能不写,因为mybatis需要将获得结果封装到相应的类中,查询的字段与类的属性需要一致。

parameterType是必须写的吗?


一、parameterType详解


   在MyBatis的select、insert、update、delete这些元素中都提到了parameterType这个属性。MyBatis现在可以使用的parameterType有基本数据类型和JAVA复杂数据类型:


① 基本数据类型:包含int,String,Date等。基本数据类型作为传参,只能传入一个。通过#{参数名} 即可获取传入的值


② 复杂数据类型:包含JAVA实体类、Map。通过#{属性名}或#{map的KeyName}即可获取传入的值


二、parameterType例子


   现在有一个Mapper配置文件,以下是片段:


 <select id="queryCommandListByPage" resultMap="CommandResult" >
      select <include refid="columns"/> from command a left join command_content b 
    on a.id=b.command_id
      <where>
          <if test="command.name != null and !"".equals(command.name.trim())">
            and a.name=#{command.name}
        </if>
        <if test="command.description != null and !"".equals(command.description.trim())">
            and a.description like '%' #{command.description} '%'
        </if>
      </where>
      <if test="flag==1">
        group by aid
    </if>
      order by id
  </select>
  <sql  id="columns">
      a.id aid,a.name,a.description,b.content,b.id,b.command_id
  </sql>


下面是IService接口:


     /**
     * 拦截器实现分页
     */
    public List<command> queryCommandListByPage(Map<String,Object>parameter);


上面的xml中没有配置parameterType,但是这是正确的,因为mybatis能自动识别,但返回值类型不能不写,因为mybatis需要将获得结果封装到相应的类中,查询的字段与类的属性需要一致(不一致的需要显示的配置)。


还有一种情况是参数有多个,数据类型多种,无法确认参数类型。用的是#{index}取值。


以上是鄙人愚见,有不当或补充之处,欢迎指正。

目录
相关文章
|
11月前
|
人工智能 供应链
PPA322B HIEE300016R2 HIEE400235R1
PPA322B HIEE300016R2 HIEE400235R1
60 0
PPA322B HIEE300016R2 HIEE400235R1
|
11月前
3.3 Path
3.3 Path
66 0
|
开发框架 移动开发 安全
mPaaS
mPaaS是阿里云提供的一款移动应用开发平台,支持开发iOS和Android平台的原生应用程序和H5应用程序。mPaaS提供了丰富的移动应用开发服务和工具,包括移动应用开发框架、云端API、移动支付、推送服务、移动安全等,可以帮助开发者快速构建高质量的移动应用程序。
674 0
|
XML 数据格式
|
云栖大会
apaas 、ipaas
apaas 、ipaas自制脑图
169 0
apaas 、ipaas
|
XML 数据格式
一起来了解XPath吧!
一起来了解XPath吧!
100 0
|
SQL Java 数据库连接
JPA
JPA
141 1
PAT有几个pat
字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位§,第4位(A),第6位(T);第二个PAT是第3位§,第4位(A),第6位(T)。 现给定字符串,问一共可以形成多少个PAT?
101 0