Mybatis 入参类型方式全面详解

 更新时间:2023年06月02日 09:28:01   作者:Mzoro  
这篇文章主要为大家介绍了Mybatis入参的类型方式全面示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Mybatis 入参方式

单个基本类型或 String 参数

在 mapper 文件中随便写

<select id="" resultMap="resultMap">
select * from USER_INFO t where t.name = #{sdfa,jdbcType=VARCHAR}
</select>
List<Student> get(String name);

单个 Map 或者自定义类型的

  • 如是 Map , 那么参数各是 Map 的 key
  • 如果是自定义类型的,参数是属性名,更确切的说是 get 方法,例如:getName (), 那么 mapper 文件中就要写 #{name,jdbcType=VARCHAR}

如果是单个的 Collection

参数名字就是 collection

<select id="" resultMap="resultMap">
select * from USER_INFO t where t.name in 
    <foreach collection="conllection" item="i" ......>
    </foreach>
</select>
List<Student> get(List<String> names);

如果是多个参数

可以使用 @Param ("parametername")

<select id="" resultMap="resultMap">
select * from USER_INFO t where t.name in 
    <foreach collection="param" item="i" ......>
    </foreach>
    and age = #{age,jdbcType=NUMERIC}
</select>
List<Student> get(@Param("param") List<String> names,@Param("age") int age);

如果不想使用 @Param,而是想直接使用接口方法参数的变量名作为 mapper 的参数名,需要增加 编译参数 -parameters, 并启用 useActualParamName 选项(默认开启)来编译项目这里以 maven 为例

普通工程

 <build>
     <plugins>
         <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-compiler-plugin</artifactId>
             <version>3.8.1</version>
             <configuration>
                 <target>1.8</target>
                 <source>1.8</source>
                 <parameters>true</parameters>
             </configuration>
         </plugin>
     </plugins>
 </build>

springboot:

<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<jvmArguments>-parameters</jvmArguments><!--  增加这个参数 -->
				</configuration>
			</plugin>

如上设置好之后 ,就可以直接用接口方法参数名作为 mapper 参数了

接口文件中:

List<ComBusinessSwitch> getSwitchByCode(String code, String orgId, String stationId);

mapper 文件中

<select id="getSwitchByCode" resultMap="BaseResultMap">
select * from SWITCH T where code = #{code,jdbcType=VARCHAR} and orgid = #{orgId,jdbcType=VARCHAR} and stationid = #{stationId,jdbcType=VARCHAR}
</select>

以上就是Mybatis 入参类型方式全面详解的详细内容,更多关于Mybatis 入参方式的资料请关注脚本之家其它相关文章!

相关文章

  • Java异常处理中的各种细节汇总

    Java异常处理中的各种细节汇总

    这篇文章主要给大家介绍了关于Java异常处理中的各种细节的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-01-01
  • 通过实例深入学习Java的Struts框架中的OGNL表达式使用

    通过实例深入学习Java的Struts框架中的OGNL表达式使用

    这篇文章主要通过实例介绍了Java的Strus框架中的OGNL表达式使用,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-11-11
  • 深入了解Java Object类的使用

    深入了解Java Object类的使用

    java继承中说到的Object类是java中一个特殊的类,所有的类都是直接或者间接的继承自Object类。本文就和大家详细讲讲Java Object类的使用,感兴趣的可以了解一下
    2022-07-07
  • JavaWeb HttpServletResponse对象及常用方法

    JavaWeb HttpServletResponse对象及常用方法

    这篇文章主要介绍了JavaWeb-HttpServletResponse对象,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • Java中Session的详解

    Java中Session的详解

    这篇文章主要介绍了了解java中的session的相关问题,什么是session,session怎么用等,具有一定参考价值,需要的朋友可以了解下。
    2021-10-10
  • jmeter正则表达式的使用

    jmeter正则表达式的使用

    在jmeter中,可以利用正则表达式提取器来帮助我们完成这一动作,本文就详细的介绍一下应该如何使用,感兴趣的可以了解一下
    2021-11-11
  • SWT(JFace)体验之RowLayout布局

    SWT(JFace)体验之RowLayout布局

    相对于FillLayout来说,RowLayout比较灵活,功能也比较强。用户可以设置布局中子元素的大小、边距、换行及间距等属性。
    2009-06-06
  • Java如何实现通过键盘输入一个数组

    Java如何实现通过键盘输入一个数组

    这篇文章主要介绍了Java实现通过键盘输入一个数组,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Schedule定时任务在分布式产生的问题详解

    Schedule定时任务在分布式产生的问题详解

    这篇文章主要介绍了Schedule定时任务在分布式产生的问题详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Java基础之反射原理与用法详解

    Java基础之反射原理与用法详解

    这篇文章主要介绍了Java基础之反射原理与用法,结合实例形式详细分析了java反射的相关概念、原理、使用方法与操作注意事项,需要的朋友可以参考下
    2020-02-02

最新评论