publicinterfaceParamDao{@Select("SELECT * FROM user_info WHERE user_info_id=#{id}")
UserInfoDO selectUserInfo1(int id);}
1.2 法2:加@Parma注解
总结:如果Dao层方法的参数加@Param注解,则SQL语句可以使用#{}或${}的形式。
示例代码
publicinterfaceParamDao{// 1. 使用${}@Select("SELECT * FROM user_info WHERE user_info_id=${id}")
UserInfoDO selectUserInfo2(@Param("id")int id);// 2. 使用#{}@Select("SELECT * FROM user_info WHERE user_info_id=#{id}")
UserInfoDO selectUserInfo4(@Param("id")int id);}
2. 方法参数有多个
如果方法参数有多个时,每个参数前都需要加@Param注解;SQL语句可以使用#{}或${}的形式。
示例代码
publicinterfaceParamDao{@Select("SELECT * FROM user_info WHERE user_info_id=#{id} and age=#{age}")
UserInfoDO selectUserInfo13(@Param("id")int id,@Param("age")int age);@Select("SELECT * FROM user_info WHERE user_info_id=${id} and age=${age}")
UserInfoDO selectUserInfo14(@Param("id")int id,@Param("age")int age);}
二. Dao层方法参数是String类
1. 方法参数只有一个
1.1 法1:不加@Param注解
总结:如果Dao层方法的参数不加@Parma注解,则SQL语句必须使用#{}的形式。
示例代码
publicinterfaceParamDao{@Select("SELECT * FROM user_info WHERE user_name=#{name}")
UserInfoDO selectUserInfo15(String name);}
1.2 法2:加@Parma注解
总结:如果Dao层方法的参数加@Param注解,则SQL语句也只能使用#{}形式。
示例代码
publicinterfaceParamDao{@Select("SELECT * FROM user_info WHERE user_name=#{name}")
UserInfoDO selectUserInfo11(@Param("name") String name);}
publicinterfaceParamDao{@Select("SELECT * FROM user_info WHERE user_info_id=#{id} and user_name=#{name}")
UserInfoDO selectUserInfo9(@Param("id")int id,@Param("name") String name);}
三. Dao层方法参数是对象类
总结
方法参数只能有一个,且为对象类型,这时不要加@Param注解,加了会报错。
SQL语句里只能引用JavaBean的属性。
示例代码
publicinterfaceParamDao{@Select("SELECT * FROM user_info WHERE user_info_id=#{userInfoId}")
UserInfoDO selectUserInfo5(UserInfoDO userInfoDO);@Select("SELECT * FROM user_info WHERE user_info_id=${userInfoId}")
UserInfoDO selectUserInfo8(UserInfoDO userInfoDO);}