04-如何将mybatis的配置文件绑定接口实现CRUD操作

Posted on 2021-03-07 20:12  萌栈师  阅读(101)  评论(0)    收藏  举报

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();
    }

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3