1.对象传参方式一
Dao接口中方法
bash
/**
* 根据对象中保存的属性查询emp对象
* @param emp
* @return
*/
List<Emp> findByEmp(Emp emp);
mapper文件
bash
<select id="findByEmp" resultType="com.example.domain.Emp" parameterType="com.example.domain.Emp">
select * from emp where name = #{name} or salary=#{salary} or job_id = #{job_id}
</select>
结论:一个java对象作为方法的参数,使用对象的属性作为参数值使用。简单的语法:#{属性名},mybatis调用此属性的getXxx()方法获取属性值
2.对象传参方式二
编写接口,指定@Param注解参数(建议不要指定)
bash
public interface LoginMapper {
/**
* 使用账号和密码登录 获取用户信息
*
* @param login 登录参数 account password
* @return
*/
Person selectPersonByAccountAndPassword01(@Param("login") Login login);
}
编写映射配置文件:
bash
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lihaozhe.mapper.LoginMapper">
<!--使用账号和密码登录 获取用户信息-->
<select id="selectPersonByAccountAndPassword01" resultType="person">
SELECT p.id, nickname
FROM login l
INNER JOIN person p
WHERE pid = p.id
AND account = #{login.account}
AND auth_text = #{login.authText}
</select>
</mapper>