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

猜你喜欢

转载自www.cnblogs.com/zyl187110/p/11442104.html