@Insert("INSERT INTO user (name, age, gender, experience) VALUES (<a href="http://www.oschina.net/tweet-topic/%7Bname%7D%2C" target="_blank">#{name},#</a>{age}, <a href="http://www.oschina.net/tweet-topic/%7Bgender%7D%2C" target="_blank">#{gender},#</a>{experience})") @Options(useGeneratedKeys = true, keyProperty = "id") int createUser(User user); @Insert("INSERT INTO user_interest (user_id, interest_id) VALUES (<a href="http://www.oschina.net/tweet-topic/%7BuserId%7D%2C" target="_blank">#{userId},#</a>{interestId})") int createUserInterest(@Param("userId") int userId, @Param("interestId") int interestId); @Delete("DELETE FROM user WHERE id = #{id}") int deleteUser(int id); @Delete("DELETE FROM user_interest WHERE user_id = #{userId}") int deleteUserInterest(int userId); // findUsers(String, int) 的执行策略定义在 UserMapper.xml 中 List<User> findUsers(@Param("name") String name, @Param("experience") int experience); @Select("SELECT interest_id FROM user_interest WHERE user_id = #{userId} ORDER BY id") List<Integer> findUserInterests(int userId); // queryInterest(int, int) 的执行策略定义在 UserMapper.xml 中 List<User> queryInterest(@Param("gender") int gender, @Param("experience") int experience);
这样定制性更大,实现起来也方便,记住这样做的话注解中的sql语句必须全都在<script>标签中 @Select("<script>select * from user where <if test=\"username !=null \">username = #{username} </if> <if test=\"phone !=null \">phone = #{phone} </if> <if test=\"usermail !=null \">usermail = #{usermail } </if></script>")