对象需要有对应的get/set方法,#{}
的参数即为User类的属性。
@Update("update user set username = #{username},userAccount = #{userAccount},avatarUrl=#{avatarUrl},gender=#{gender},phone=#{phone},email=#{email},userStatus=#{userStatus},userRole=#{userRole} where id = #{id}")
int updateUser(User user);
适用于多参数入参的情况,使用**@Param** 注解指明参数和变量之间的对应关系。
在 MyBatis 中,如果你想再传入一个额外的参数,可以使用 @Param 注解为额外的参数命名,并在 SQL 中引用这个参数。在你的例子中,假设你想再传入一个名为 extraParam 的参数,你可以这样修改:
java
Copy code
@Update("update user set username = #{username}, userAccount = #{userAccount}, avatarUrl = #{avatarUrl}, gender = #{gender}, phone = #{phone}, email = #{email}, userStatus = #{userStatus}, userRole = #{userRole} where id = #{id} and someColumn = #{extraParam}")
int updateUser(@Param("username") String username,
@Param("userAccount") String userAccount,
@Param("avatarUrl") String avatarUrl,
@Param("gender") int gender,
@Param("phone") String phone,
@Param("email") String email,
@Param("userStatus") int userStatus,
@Param("userRole") int userRole,
@Param("id") Long id,
@Param("extraParam") String extraParam);
在传入对象和普通参数时,对象的#{}的参数需要是对象名.属性名
的格式
@Update("update address set uid=#{address.uid}, province=#{address.province}, city=#{address.city}, county=#{address.county}, fulladdress=#{address.fulladdress}, telphone=#{address.telphone}, name=#{address.name}, defaddress=#{address.defaddress} where id=#{id}")
void editAddress(@Param("address") Address address, @Param("id") Long id);
MyBatis 中传递多个参数的 4 种方式 - 斯文败类i - 博客园 (cnblogs.com)
MyBatis的使用三(在sql语句中传值) - zwGitOne - 博客园 (cnblogs.com)