1.创建mapper接口文件

2.在mapper.xml文件中关联接口文件
更改namespace的文件名为接口全路径名:

3.mapper.xml中的id值与接口方法名一一对应
例:
<select id="selectByName" resultType="Users">
select * from users where username = #{param1}
</select>
public interface UserMapper {
public Users selectByName(String name);
}

4.参数的接收
<?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.yd.mapper.UserMapper">
<select id="selectByName" resultType="Users">
select * from users where username = #{param1}
</select>
<!-- 参数是单个的数据传入,第一个param1,第二个param2...-->
<select id="loginUser" resultType="Users">
select * from users where username = #{param1} and password = #{param2}
</select>
<!-- 参数是实体类型Users,用属性名接收-->
<select id="loginUser2" resultType="Users">
select * from users where username = #{username} and password = #{password}
</select>
<!-- 参数是Map类型,用对应的key值接收-->
<select id="loginMap" resultType="Users">
select * from users where username = #{uname} and password = #{pwd}
</select>
<insert id="addUser">
insert into users values(null,#{username},#{password},#{city})
</insert>
<delete id="deleteUser">
delete from users where uid = #{param1}
</delete>
<update id="updateUser">
update users set password = #{param1} where uid = #{param2}
</update>
</mapper>
5.测试类中需要拿到接口文件

5.测试代码
public class Demo {
SqlSession sqlSession;
UserMapper userMapper;
public Demo() {
//创建applicationContext-dao.xml文件输入流
InputStream in = null;
try {
in = Resources.getResourceAsStream("applicationContext-dao.xml");
//使用工厂,将文件创建为对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
//使用工厂对象,创建sql执行器 默认手动提交事务
sqlSession = sqlSessionFactory.openSession();
//传入mapper接口的字节码文件,通过反射拿到方法
userMapper = sqlSession.getMapper(UserMapper.class);
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void getUser(){
Users users = userMapper.selectByName("肖战");
System.out.println(users);
sqlSession.close();
}
@Test
public void loginUser(){
Users user = userMapper.loginUser("张学友", "123");
System.out.println(user);
sqlSession.close();
}
@Test
public void loginUser2(){
Users u = new Users();
u.setUsername("李四");
u.setPassword("123");
Users users = userMapper.loginUser2(u);
System.out.println(users);
sqlSession.close();
}
@Test
public void loginMap(){
Map<String,String> user = new HashMap<>();
user.put("uname","刘德华");
user.put("pwd","12345");
Users users = userMapper.loginMap(user);
System.out.println(users);
sqlSession.close();
}
@Test
public void addUser(){
Users u = new Users();
u.setUsername("关晓彤");
u.setPassword("333");
u.setCity("南京");
int i = userMapper.addUser(u);
System.out.println(i);
sqlSession.commit();
sqlSession.close();
}
@Test
public void deleteUser(){
int i = userMapper.deleteUser(10);
System.out.println(i);
sqlSession.commit();
sqlSession.close();
}
@Test
public void updateUser(){
int i = userMapper.updateUser("121212", 27);
System.out.println(i);
sqlSession.commit();
sqlSession.close();
}
浙公网安备 33010602011771号