<!---提供根据用户名称和密码查询用户的功能。-->
<selectid="selectByNameAndPassword"resultType="User">
SELECT*
fromuser
wherename=#{name}
andpassword=#{password}
</select>
<!---提供根据用户名称和年龄范围查询用户的功能。-->
<selectid="selectByMinAndMax"resultType="User">
SELECT*
FROMuser
<includerefid="where_sql"/>
</select>
<!--根据不同的条件,需要进行筛选,就可以使用mybatis框架的动态sql-->
<sqlid="where_sql">
<!--需要给sql取别名-->
<where>
<!--在过滤语句中需要进行语句判断,是否拼接sql-->
<iftest="name != null and name != ''">
<!--根据自己的需求以及传入的属性进行判断,八大基本数据类型的包装类默认值是null,需要进行判断,以及''都需要进行判断-->
ANDnameLIKEconcat('%',#{name},'%')
<!--根据需求进行过滤筛选,使用sql语句中的concat进行拼接-->
</if>
<iftest="minAge != null">
ANDage>=#{minAge}
</if>
<iftest="maxAge != null">
ANDage<=#{maxAge}
</if>
</where>
</sql>
/**
* 提供根据用户名称和密码查询用户的功能。
* @param name
* @param password
* @return 返回一个user对象
*/
UserselectByNameAndPassword(@Param("name")Stringname,@Param("password")Stringpassword);
/**
* 提供根据用户名称和年龄范围查询用户的功能。
* @param qo 可以把想查询相关的属性进行封装
* @return 返回一个user集合
*/
List<User>selectByMinAndMax(UserQueryObjectqo);
@Param注解:相当于给属性值取别名然后sql语句中就可用"#"去进行取值;注解属于mybatis框架!
"#":属于预编译处理
"$":属于字符串替换
'%':属于sql中LIKE的拼接字符,如果%在前面表示以什么值结尾进行过滤,如果%在后面表示以什么值为开头进行过滤,如果有两个%则表示只要包含该值就可以进行过滤
>:属于大于号
&It;:属于小于号