一、Param注解
mybatis中的方法都是只支持传入一个参数的. 如果想传入多个参数.
1.在方法参数定义Map集合,把需要传入的参数放入map中.
public interface IUserMapper {
User getUser(Map<String,Object> paramMap);
}
<?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">
<!-- namespace:名称空间,全局的唯一标识 -->
<mapper namespace="com.shenzhenair.mybatis.demo_01.IUserMapper">
<select id="getUser" resultType="User" >
select id,user_name,password,age,name from tb_user where user_name=#{userName} and password=#{password}
</select>
</mapper>
测试类:
@Test
public void testParam() throws IOException {
SqlSession session = MybatisUtils.openSession();
IUserMapper mapper = session.getMapper(IUserMapper.class);
Map<String,Object> paramMap = new HashMap<String,Object>();
paramMap.put("userName","Tim7");
paramMap.put("password","123456");
User user = mapper.getUser("Tim7","123456");
System.out.println(user);
session.commit();
session.close();
}
2.使用@Param注解来解决.
public interface IUserMapper {
User getUser(@Param("userName") String userame, @Param("password") String password);
}
测试类:
@Test
public void testParam() throws IOException {
SqlSession session = MybatisUtils.openSession();
IUserMapper mapper = session.getMapper(IUserMapper.class);
User user = mapper.getUser("Tim7","123456");
System.out.println(user);
session.commit();
session.close();
}