@Param注解的用法解析

本文详细解读了@Param注解在Spring框架中的使用,包括XML形式的单一属性映射和Java Bean对象参数处理,以及不使用@Param的SQL参数区别。通过实例演示了如何在DAO层和XML映射文件中应用@Param,帮助开发者理解和优化参数传递方式。
摘要由CSDN通过智能技术生成

@Param注解的用法解析

一.xml形式

实例一 @Param注解单一属性

dao层示例

Public User selectUser(@param(“userName”) String name, @param(“userpassword”) String password);

xml映射对应示例

<select id=" selectUser" resultMap="BaseResultMap">  
    select  *  from user_user_t 
        where user_name = #{userName,jdbcType=VARCHAR} and user_password=#{userPassword,jdbcType=VARCHAR}  
</select>

**注意:**采用#{}的方式把@Param注解括号内的参数进行引用(括号内参数对应的是形参 如userName 对应的是name)

实例二 @Param注解JavaBean对象

dao层示例

public List<user> getUserInformation (@Param("user") User user);

xml映射对应示例

<select id="getUserInformation" parameterType="com.github.demo.vo.User" resultMap="userMapper">
select 
<include refid="User_Base_Column_List"/>
from mo_user t where 1=1  
        <!-- 因为传进来的是对象所以这样写是取不到值得 -->  
        <if test="user.userName!=null and user.userName!=''"> and t.user_name = #{user.userName} </if>  
        <if test="user.userAge!=null and user.userAge!=''"> and t.user_age = #{user.userAge}  </if>
</select>

二:注解形式

1.使用@Param注解

当以下面的方式进行写SQL语句的时候:

@Select("select column from table where userid = #{userid} ")
    public int selectColumn(int userid);

当你使用了@Param注解来声明参数时,使用#{}或${}都可以

@Select("select column from table where userid =${userid}")
public int selectColumn(#{userid} int userid)

当你不使用@Param注解来声明参数的时候,必须使用#{}的方式如果使用${}的方式会报错。

2.不使用@Param注解

不使用@Param注解时,参数只能有一个,而且是Javabean。在SQL语句里能够引用Javabean的属性,并且只能引用Javabean的属性

//这里的id是user的属性
@Select(select * from Table where id=${id})
Enchashment selectUserById(User user);

参考原文:http://www.javashuo.com/article/p-xcjotocc-ds.htmlt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值