文档章节

mybatis中@Param的用法和作用

LYQ1990
 LYQ1990
发布于 2017/05/09 18:20
字数 456
阅读 71
收藏 0


mybatis中@Param的用法和作用

用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中 

 

我们先来看Mapper接口中的@Select方法

package Mapper; 
   
   
public interface Mapper { 
   
@Select("select s_id id,s_name name,class_id classid from student where  s_name= #{aaaa} and class_id = #{bbbb}") 
    public Student select(@Param("aaaa") String name,@Param("bbbb")int class_id);  
}

这里解释一下

1.@Select(....)注解的作用就是告诉mybatis框架,执行括号内的sql语句

2.s_id id,s_name name,class_id classid  格式是 字段名+属性名,例如s_id是数据库中的字段名,id是类中的属性名

    这段代码的作用就是实现数据库字段名和实体类属性的一一映射,不然数据库不知道如何匹配

 

3.where  s_name= #{aaaa} and class_id = #{bbbb} 表示sql语句要接受2个参数,一个参数名是aaaa,一个参数名是bbbb,如果要正确的传入参数,那么就要给参数命名,因为不用xml配置文件,那么我们就要用别的方式来给参数命名,这个方式就是@Param注解

 

4.在方法参数的前面写上@Param("参数名"),表示给参数命名,名称就是括号中的内容

public Student select(@Param("aaaa") String name,@Param("bbbb")int class_id); 
给入参 String name 命名为aaaa,然后sql语句....where  s_name= #{aaaa} 中就可以根据aaaa得到参数值了
   
--------------------------------------------------------------------------------------
List<AdproImageCheck> getUserListByUserIds(@Param("userIdList") List<Long> userIdList);
说明:@Param("userIdList") -----》  collection="userIdList"

<select id="getUserListByUserIds" resultMap="BaseResultMap" parameterType="map">
        SELECT * from user  where user_id in
        <foreach collection="userIdList" item="userIdList" index="index"
                 open="(" close=")" separator=",">
            #{userIdList}
        </foreach>
        
</select>
---------------------------------------------------------------------------------

List<AdproImageCheck> getUserListByUserIds( List<Long> userIdList);
说明:  collection="list"

<select id="getUserListByUserIds" resultMap="BaseResultMap" parameterType="map">
        SELECT * from user  where user_id in
        <foreach collection="list" item="userIdList" index="index"
                 open="(" close=")" separator=",">
            #{userIdList}
        </foreach>
        
</select>

© 著作权归作者所有

LYQ1990
粉丝 9
博文 238
码字总数 206220
作品 0
东城
私信 提问
mybatis使用@Param的坑

在mybatis中@Param注解的作用是为参数指定一个名称,在mapper文件中使用,而不是使用mybatis的arguments[0,1…]代替。但是在非动态的mapper——mybatis根据mapper接口创建实现类,@param注解...

风之神
2018/08/22
0
0
参数为集合时,mybatis3 分页查询问题及其对应的解决方法

当参数为集合时,使用mybatis3分页查询时抛出的异常: UserMapperTest.java的部分代码(测试用例): UserMapper.java部分代码: UserMapper.xml代码(错误的用法示范): 执行测试用例后,后...

有钱有爱
2016/06/17
77
0
Mybatis 通用 Mapper 2.1.0 发布

Mybatis通用Mapper 极其方便的使用Mybatis单表的增删改查 本项目支持两种类型的通用Mapper,这两种Mapper都可以极大的方便开发人员。 为了让您更方便的了解这两种通用Mapper,这里分别贴一段...

Liuzh_533
2015/03/09
4.5K
7
MyBatis 从浅入深 随笔整理

MyBatis? archetypeCatalog = internal 本文档单独出现的_parameter都标识为变量名 一.三个基本要素: 核心接口和类 MyBatis 核心配置文件 SQL映射文件 二.核心接口和类: 结构图: (1)...

房上的猫
2018/08/14
0
0
Spring SpringMvc 3.0 + MyBatis 整合

原来发表在csdn的,移动到oschian Spring SpringMvc 3.0 + MyBatis 整合 一、使用的jar包就不详细讲解了,下载了Mybatis 和 Spring 的jar包基本上都添加上去了、 一图概括:(这是我使用的ar包...

王庭
2015/09/19
0
3

没有更多内容

加载失败,请刷新页面

加载更多

以太坊中文文档翻译-区块

本文原文链接 点击这里获取Etherscan API 中文文档(完整版) 完整内容排版更好,推荐读者前往阅读。 区块(Blocks) 区块相关的 API,接口的参数说明请参考Etherscan API 约定, 文档中不单独...

Tiny熊
24分钟前
1
0
Linux 内核的一个问题

是virtio 驱动,但是没有启动 virtio-mmio virtio-mmio.0: Failed to enable 64-bit or 32-bit DMA. Trying to continue, but this might not work.....[ 1.047924] md: ... autorun......

MtrS
47分钟前
2
0
MySQL主从配置

17.1 MySQL主从介绍 17.2 准备工作 17.3 配置主 17.4 配置从 17.5 测试主从同步 一、 MySQL主从介绍

tobej
57分钟前
2
0
读书replay《博弈与社会》.1.20190526

前情 《美丽心灵》,一部讲数学家约翰·福布斯·纳什的电影,我第一次听到博弈理论就是在这部电影里。看过电影之后就一直想知道,博弈论究竟讲了什么。很久之后,20190417这天,我刷JD的购物...

wanxiangming
今天
2
0
iOS TableView层级结构剖析

首先上图 下面来分析一下tableView的层级结构 tableView的组成: 1.整个tableView有且仅有一个头部和尾部就是tableViewHeadView和tableViewFooterView2.tableView 可以有多个section,一个s...

HOrange
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部