• @Param注解在Mybatis中的使用 以及传递参数的三种方式


    第一种:

    Dao层的方法

    public User selectUser(String name,String password);

    对应的Mapper.xml

    <select id="selectUser" resultMap="BaseResultMap">  
        select * from t_user where user_name = #{0} and user_password=#{1}  
    </select>  

    第二种:

    该方法采用Map传多参数

    Dao层的方法

    public User selectUser(Map paramMap);

    对应的Mapper.xml

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

    Service层调用

    public User xxxSelectUser(){  
        Map paramMap=new hashMap();  
        paramMap.put("userName","对应具体的参数值");  
        paramMap.put("userPassword","对应具体的参数值");  
        User user=xxx.selectUser(paramMap);
    }

    个人认为此方法不够直观,见到接口方法不能直接的知道要传的参数是什么。

    第三种:@Param注解

    Dao层的方法

    public User selectUser(@Param("name")String name, @Param("password")String password);

    对应的Mapper.xml

    <select id=" selectUser" resultMap="BaseResultMap">  
       select * from t_user where user_name = #{name,jdbcType=VARCHAR} and user_password=#{password,jdbcType=VARCHAR}  
    </select>

    个人觉得三种之中这种可读性最好,建议双引号中的值和变量名保持一致

    第一种占位符不够直观!

  • 相关阅读:
    新的学习计划
    Python学习搬家啦
    安装数据库软件
    oracle11g RAC之grid安装
    PG源码编译安装
    vnc图形化远程centos7.6步骤
    postgresql 日期格式
    centos配置yum源
    pg创建多个实例
    PostgreSQL配置
  • 原文地址:https://www.cnblogs.com/winner-0715/p/8444898.html
Copyright © 2020-2023  润新知