MyBatis-----2.通过映射接口实现CRUD

Posted zyl187110

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis-----2.通过映射接口实现CRUD相关的知识,希望对你有一定的参考价值。

定义sql映射接口

1.创建映射接口UsersDao

技术图片

 

 2.在接口文件中加入抽象方法,注意,这里的方法名称要和需要映射的xml文件中对应标签的ID相同

public interface UsersDao 
    /**
     * 查询
     * @return
     */
    public Users getUser(int id);
    /**
     * 添加
     * @param user
     */
    public void addUser(Users user);
    /**
     *更新
     * @param user
     */
    public void updateUser(Users user);
    /**
     * 删除
     * @param id
     */
    public void deleteUser(int id);
    /**
     * 查询所有
     * @return
     */
    public List<Users> selectAll();
    /**
     * 
     * @param min
     * @param max
     * @return
     */
    public List<Users> selectByAge(@Param("min") int min,@Param("max") int max);

3.添加UserMapper.xml文件内容

<mapper namespace="com.zhiyou.zyl.dao.UsersDao">     
<!-- 这里的namespace必须为映射接口的路径-->  
    <select id="getUser" parameterType="int" resultType="com.zhiyou.zyl.bean.Users">
        select * from users where id=#id
    </select>
    
    <insert id="addUser" parameterType="com.zhiyou.zyl.bean.Users">
        insert into users(name,age) values(#name,#age)
    </insert>
    
    <update id="updateUser" parameterType="com.zhiyou.zyl.bean.Users">
        update users set name=#name,age=#age where id=#id
    </update>
    
    <delete id="deleteUser" parameterType="int">
        delete from users where id=#id
    </delete>
    
    <select id="selectAll" resultType="com.zhiyou.zyl.bean.Users">
        select * from users
    </select>
    
    <select id="selectByAge" resultType="com.zhiyou.zyl.bean.Users">
        <![CDATA[select * from users where age>=#min and age<=#max]]>
    </select>
</mapper>

4.添加测试类,通过session的getMapper方法得到UsersDao的实例对象,在通过对象调用方法

class UsersTest 

    static SqlSession session =null;
    static UsersDao ud;
    @BeforeAll
    static void setUpBeforeClass() throws Exception 
        String resource = "conf.xml";
        //加载 mybatis 的配置文件(它也加载关联的映射文件)
        Reader reader = Resources.getResourceAsReader(resource);
        //构建 sqlSession 的工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //创建能执行映射文件中 sql 的 sqlSession
        session = sessionFactory.openSession();  
     //得到UsersDao实例 ud
=session.getMapper(UsersDao.class); @AfterAll static void tearDownAfterClass() throws Exception //提交 session.commit(); @Test void testSelectById() Users user=ud.getUser(1); //直接调用UsersDao的方法 System.out.println(user); @Test void testAddUser() ud.addUser(new Users("张三",18)); @Test void testUpdateUser() ud.updateUser(new Users(1,"123",14)); @Test void testDeleteUser() ud.deleteUser(4); @Test void testSelectAll() List<Users> row=ud.selectAll(); System.out.println(row); @Test void testSelectByAge() List<Users> row=ud.selectByAge(0, 100); System.out.println(row);

 

以上是关于MyBatis-----2.通过映射接口实现CRUD的主要内容,如果未能解决你的问题,请参考以下文章

浅谈mmap()和ioremap()的用法与区别

Mybatis源码解析

Mybatis 1.简介

Mybatis 1.简介

mybatis3.2.7应用_高级映射(一对一对多多对多)

利用mybatis-generator自动生成表实例类和映射文件