@Param注解和@RequestParam注解

600 阅读1分钟
  1. 1、@Param是地处Dao层,是为了传递多个参数,解决的是可读性和直观性; 而@RequestParam是位列Controller层,作用是为获取前端参数,解决的是前后端参数不一致的问题。所以它们没有关系!

    2-1、不使用@Param注解时,参数只能有一个,并且是Javabean或者其他类型,    //参数是javabean时,在SQL语句里只能引用JavaBean的属性。可以直接用其属性名,不过最好使用'类.属性名'
     @Insert({"insert into ", TABLE_NAME, "(", INSERT_FIELDS,
                ") values (#{userId},#{expired},#{status},#{ticket})"})
     int addTicket(LoginTicket ticket);//传入LoginTicketd类对象,sql语句中用#{属性名}使用类对象的属性值   
     @Select({"select ", SELECT_FIELDS, " from ", TABLE_NAME, " where ticket=#{ticket}"})
     LoginTicket selectByTicket(String ticket);//传入ticket值,sql语句中用#{ticket}使用ticket的变量值
     2-2、使用@Param注解时,参数可以多个且类型任意,
        @Update({"update ", TABLE_NAME, " set status=#{status} where ticket=#{ticket}"})
        void updateStatus(@Param("ticket") String ticket, @Param("status") int status);