zoukankan      html  css  js  c++  java
  • 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() 方法

     

  • 相关阅读:
    STM32学习笔记——定时器中断(向原子哥学习)
    STM32学习笔记——USART串口(向原子哥和火哥学习)
    STM32学习笔记——SPI串行通讯(向原子哥学习)
    STM32学习笔记——DMA控制器(向原子哥学习)
    Laravel中使用JWT
    Windows10 下安装SourceTree 跳过注册 Bitbucket
    [转载]MySQL中int(11)最大长度是多少?
    PHP Curl 请求https 60错误解决办法
    Linux 平台 安装 Composer
    常见密码正则表达式
  • 原文地址:https://www.cnblogs.com/yjh1995/p/13893591.html
Copyright © 2011-2022 走看看