Mybatis中的实体类必须要有无参构造方法,因为Mybatis构造实例对象时,会调用默认的构造方法来实例化对象,如果没有的话很有可能会出现奇奇怪怪的问题。
纯注解项目引入Mybatis时应注意在MVC的Root根配置类中引入Mybatis配置类,若在WebServlet配置类引入Mybatis,部分情况会在使用时出现获取不到Mybatis配置类中的Bean的情况。
Mybatis引用对象参数时,直接引入对象的属性名
就好,不要使用对象名称.属性名称
的形式,会导致查询不多对应的属性名
@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注解**同时传入对象和普通参数时,对象的#{}
的参数需要是对象名.属性名
的格式
@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);