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);  

@Delete...... 

@Insert...... 

} 

这里解释一下

[email protected](....)注解的作用就是告诉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得到参数值了

装载自:https://www.cnblogs.com/thomas12112406/p/6217211.html

原文地址:https://www.cnblogs.com/huanghuanghui/p/9084793.html

时间: 2024-10-27 18:30:39

mybatis中@Param用法的相关文章

spring中@param和mybatis中@param使用区别

spring中@param和mybatis中的@param的写法大致一样  int selectRoleCount(@Param("businessId") Integer businessId,@Param("memberId") Long memberId); 但是引入import的类不一样,一个是spring的[org.springframework.data.repository.query.Param]: 一个是mybatis的,[org.apache.i

MyBatis 中@param 的用法

示例: 接口方法 [java] view plain copy public List<Teacher> selectTeacher(@Param(value="id") String id,@Param(value="sex") String sex); XML文件 [html] view plain copy <select id="selectTeacher"  resultType="com.myapp.dom

mybatis中@Param的用法和作用

用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中 我们先来看Mapper接口中的@Select方法 package Mapper; @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}

MyBatis 中 @Param 注解的四种使用场景,最后一种经常被人忽略!

有一些小伙伴觉得 MyBatis 只有方法中存在多个参数的时候,才需要添加 @Param 注解,其实这个理解是不准确的.即使 MyBatis 方法只有一个参数,也可能会用到 @Param 注解.但是,在你总结出规律之前,你可能会觉得莫名其妙,有的时候一个参数明明不用添加 @Param 注解,有的时候,却需要添加,不添加会报错. 有的人会觉得这是 MyBatis 各个版本差异的锅,不可否认,MyBatis 发展很快,不同版本之间的差异还挺明显的,不过这个加不加 @Param 注解的问题,却并不是版

Mybatis中@param注解

以前没见过在dao层方法参数前面加@param注解,如 int getInstance( @param("orderId") String id,  @param("createTime") String time), 以前只用过int getInstance( String id,  String time),所以感觉很奇怪,在网上查资料,然后自己在实际编程中实践了一下,发现加上 @param就是为了给参数命名,如给id命名为orderId,这样xml文件就可以通

Mybatis中&lt;resultMap&gt;用法(主要用于一对多去重)

一.创建部门表和员工表: 创建部门信息表`t_department`,其中包括`id`, `name` CREATE TABLE t_department (         id INT AUTO_INCREMENT,         name VARCHAR(20) UNIQUE NOT NULL,         PRIMARY KEY(id)     ) DEFAULT CHARSET=UTF8; 往部门表中插入数据: INSERT INTO t_department (name) VA

mybatis中useGeneratedKeys用法--插入数据库后获取主键值

前言:今天无意在mapper文件中看到useGeneratedKeys这个词,好奇就查了下,发现能解决我之前插入有外键表数据时,这个外键获取繁琐的问题,于是学习敲DEMO记录    在项目中经常需要获取到插入数据的主键来保障后续操作,数据库中主键一般我们使用自增或者uuid()的方式自动生成 问题:对于uuid使用Java代码生成的方式还比较容易控制,然而使用数据库生成的主键,这样我们就需要将插入的数据再查询出来得到主键,某些情况下还可能查询到多条情况,这样就比较尴尬了. 那有什么办法来插入数据

[已解决] MyBatis 中bind用法

JAVA: TC_ENTR_FLOW selectFlowForUpdate(String ENTR_ID); XML: <select id="selectFlowForUpdate" resultMap="BaseResultMap" parameterType="java.lang.String"> <bind name="ENTR_ID" value="'%' + _parameter&qu

Java-MyBatis-杂项: MyBatis 中 in 的用法2

ylbtech-Java-MyBatis-杂项: MyBatis 中 in 的用法2 1.返回顶部 1. 一.简介 在SQL语法中如果我们想使用in的话直接可以像如下一样使用: select * from HealthCoupon where useType in ( '4' , '3' )但是如果在MyBatis中的使用in的话,像如下去做的话,肯定会报错: Map<String, Object> selectByUserId(@Param("useType") Stri