专栏首页电光石火MyBatis之传入参数——parameterType

MyBatis之传入参数——parameterType

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

  • 基本数据类型:包含int,String,Date等。基本数据类型作为传参,只能传入一个。通过#{参数名} 即可获取传入的值
  • 复杂数据类型:包含JAVA实体类、Map。通过#{属性名}或#{map的KeyName}即可获取传入的值

基本数据类型参数示例:

根据班级ID查询教师列表

xml文件

<selectid="selectTeacher"parameterType="int"resultType="com.myapp.domain.Teacher">select * from Teacher where c_id=#{id}</select> 

java代码

List<Teacher> tList = teacherMapper.selectTeacher(2);for(Teacher entityTemp : tList) {    

    System.out.println(entityTemp.toString());    

}

JAVA实体类型参数示例:

xml文件  (注:parameterType="com.myapp.domain.Teacher" 可简写为 parameterType="Teacher" )

<selectid="selectTeacher"parameterType="com.myapp.domain.Teacher"resultType="com.myapp.domain.Teacher">select * from Teacher where c_id=#{id}</select> 

java代码

java代码  

  

Teacher queryTeacher=newTeacher();  

queryTeacher.setId(2);  

List<Teacher> tList =teacherMapper.selectTeacher(queryTeacher);for(Teacher entityTemp : tList) {    

    System.out.println(entityTemp.toString()); }

Map参数示例:

xml文件

<selectid="selectTeacher"parameterType="Map"resultType="com.myapp.domain.Teacher">select * from Teacher where c_id=#{id} and sex=#{sex}</select> 

java代码  

Map<String,String> map=new HasMap<String,String>();  

map.put("id","2");  

map.put("sex","男");  

List<Teacher> tList =teacherMapper.selectTeacher(map);for(Teacher entityTemp : tList) {    

    System.out.println(entityTemp.toString()); }

另外MyBatis还提供了一个使用注解来参入多个参数的方式。这种方式需要在接口的参数上添加@Param注解

示例:

接口方法

public List<Teacher> selectTeacher(@Param(value="id") String id,@Param(value="sex") String sex); 

XML文件

<selectid="selectTeacher"resultType="com.myapp.domain.Teacher">select * from Teacher where c_id=#{id} and sex=#{sex}</select>

测试代码

List<Teacher> tList = teacherMapper.selectTeacher("2","男");for(Teacher entityTemp : tList) {    

    System.out.println(entityTemp.toString());

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MyBatis之传入参数——parameterType

    在MyBatis的select、insert、update、delete这些元素中都提到了parameterType这个属性。MyBatis现在可以使用的par...

    似水的流年
  • MyBatis之传入参数——parameterType

    在MyBatis的select、insert、update、delete这些元素中都提到了parameterType这个属性。MyBatis现在可以使用的pa...

    似水的流年
  • Centos查看端口占用情况和开启端口命令

    Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令: lsof -i tcp:80 列出所有端口 netstat -nt...

    似水的流年
  • 008.Kubernetes二进制部署Nginx实现高可用

    控制节点的 kube-controller-manager、kube-scheduler 是多实例部署,所以只要有一个实例正常,就可以保证高可用;

    木二
  • 剖析桌面化 Android操作系统的发展与未来

    “操作系统的新理念/先进技术因素只是一个 OS 能够成功的一小部分,还有很多因素需要综合考虑。路很长,需要一步一步脚踏实地的走,没有捷径。 ” 背景 操作系统是...

    CSDN技术头条
  • 策略模式

    一、策略模式的相关介绍 1、定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 2...

    用户1215536
  • 我叫Tomcat:一款web服务器

    JBoss:Redhat 红帽,支持所有的 JavaEE 规则,适合大型项目,收费

    BWH_Steven
  • Python 命令行神器 Click

    实际上 Python 标准库提供了一个默认的命令行工具 Argparse,但是对于 Click 来说 Argparse 使用起来非常的繁琐和麻烦,大多数人都很少...

    keinYe
  • 【iOS】(二)GPUImage的Source,滤镜链的源头--万恶之源

    (一)GPUImage的结构,滤镜链的实现原理 从上一节的滤镜链的原理中,我们知道了Source总是滤镜链的源头,必须继承GPUImageOutput,通过传...

    MapleYe
  • python编写小程序(计算器)

    py3study

扫码关注云+社区

领取腾讯云代金券