Mybatis获取参数的各种情况
1.UserMapper接口
public interface UserMapper {
/**
* 验证登录(使用参数)
*/
user login(@Param("username") String username, @Param("password") String password);
/**
* 添加对象
* @param user
*/
int insertUser(user user);
/**
* 验证登录
* 参数为map
*/
user checkLoginByMap(Map<String,Object> map);
/**
* 验证登录
*/
user checkLogin(String username,String password);
/**
* 进行查询
* @param username
* @return
*/
user getUserByUsername(String username);
}
2.UserMapper映射文件
<?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="org.example.mapper.UserMapper">
<select id="getUserByUsername" resultType="user">
<!--select * from user where username=#{aaa}
select * from user where username=#{username}
select * from user where username='${aaa}'
-->
select * from user where username='${aaa}'
</select>
<select id="checkLogin" resultType="user">
<!--
当含有两个参数的时候
select * from user where username=#{arg0} and password=#{arg1}
select * from user where username=#{param1} and password=#{param2}-->
select * from user where username='${param1}' and password='${param2}'
</select>
<select id="checkLoginByMap" resultType="user">
select * from user where username=#{username} and password=#{password}
</select>
<insert id="insertUser">
insert into user values(null,#{username},#{password},#{age},#{sex},#{email})
</insert>
<select id="login" resultType="user">
select * from user where username=#{username} and password=#{password}
</select>
</mapper>
3.测试文件
@Test
public void test() throws Exception {
InputStream is=Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactoryBuilder sessionFactoryBuilder=new SqlSessionFactoryBuilder();
SqlSessionFactory sessionFactory=sessionFactoryBuilder.build(is);
SqlSession sqlSession=sessionFactory.openSession(true);
UserMapper mapper=sqlSession.getMapper(UserMapper.class);
//通过账户名进行查找user user=mapper.getUserByUsername("admin");
//查询多个参数user user=mapper.checkLogin("admin","1234");
//使用map进行查询Map<String,Object> map=new HashMap<>();
//map.put("username","admin");
//map.put("password","1234");
//user user= mapper.checkLoginByMap(map);
//System.out.println(user);
//直接插入一个对象int result=mapper.insertUser(new user(null,"哈啊","110",21,"女","123@qq.com"));
//System.out.println(result);
//使用@Param进行查询
user user=mapper.login("哈啊","110");
System.out.println(user);
}
4.总结