CRUD操作

新增

前面已写... ,实际为调用 sqlSession.insert() 方法

查询

精确查询

查询结果只有一个

映射文件

<?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 cityspace="mybatis_test.CitiesMapper">
    <resultMap id="citiesMap" type="mybatis_test.Cities">
        ...
    </resultMap>
    <!-- resultMap是返回值类型,为上面定义的resultMap标签的id -->
    <select id="selectById" parameterType="int" resultMap="citiesMap">
        select * from cities where id=#{id};
    </select>
</mapper>

DAO层方法

查询结果只有一个对象,使用自动调用sqlSession.SelectOne方法

public interface CitiesMapper {
    Cities selectById(int id) throws Exception;
}
​
public class CitiesTest {
    @Test
    public void selectByIdTest(){
        SqlSession sqlSession= MybatisUtil.getSqlSession();
        CitiesMapper citiesMapper=sqlSession.getMapper(CitiesMapper.class);
        try {
            //自动调用`sqlSession.SelectOne`方法
            Cities cities=citiesMapper.selectById(2);
            sqlSession.commit();
            System.out.println(cities.getCity());
        } catch (Exception e) {
            e.printStackTrace();
            sqlSession.rollback();
        }finally {
            //关闭sqlSession
            MybatisUtil.closeSqlSession();
        }
    }
}

查询结果有多个

映射文件

    <!-- 返回值应该是List<Student>,但是resultMap只需写集合中的类型就行 -->
    <select id="findAll" resultMap="citiesMap">
        select * from cities;
    </select>

DAO层方法

查询结果有多个对象,自动调用sqlSession.SelectList方法

分页查询(范围查询)

映射文件

    <!-- 分页查询,参数有多个,使用map接收参数 -->
    <select id="pageFind" parameterType="map" resultMap="citiesMap">
        <!-- 根据key自动找到对应Map集合的value -->
        select * from cities limit #{start},#{end};
    </select>

DAO层代码

分页是需要多个参数的,当需要接收多个参数的时候,可以使用Map集合来装载

 @Test
    public void pageFindTest(){
        SqlSession sqlSession= MybatisUtil.getSqlSession();
        CitiesMapper citiesMapper=sqlSession.getMapper(CitiesMapper.class);
        HashMap<String,Integer> map=new HashMap<String, Integer>();
        map.put("start",2);
        map.put("end",3);
        try {
            List<Cities> cities=citiesMapper.pageFind(map);
            sqlSession.commit();
        } catch (Exception e) {
            e.printStackTrace();
            sqlSession.rollback();
        }finally {
            MybatisUtil.closeSqlSession();
        }
    }

删除

映射文件

    <!-- 无返回值 -->
    <delete id="delete" parameterType="int">
        delete from cities where id=#{id};
    </delete>

DAO层方法,调用 sqlSession.delete() 方法

修改

映射文件

    <!-- 无返回值 -->
   <update id="update" parameterType="mybatis_test.Cities">
        update cities set city=#{city} where id=#{id};
    </update>

DAO层方法,调用 sqlSession.update() 方法

 

posted @ 2020-10-28 21:23  hjy1995  阅读(99)  评论(0编辑  收藏  举报