SqlSession三种增删改查的方式

SqlSession三种查询的方式

        //查询方式一 使用于查询多条数据的时候,返回一个集合
        List<Flower> list = sqlSession.selectList("com.bzsxt.mapper.FlowerMapper.selectAll");
        //查询某一个,返回查询的对象
        Object selectOne = sqlSession.selectOne("com.bzsxt.mapper.FlowerMapper.selectOne");
        //s1这个参数作为map的key传入,通过get方法快速查询到某一条数据
        Map<Object, Object> selectMap = sqlSession.selectMap("com.bzsxt.mapper.FlowerMapper.selectAll", "fname");
        Object value = selectMap.get("紫罗兰");

SqlSession三种参数传递的方式

        //当参数类型是基本数据类型时:
        Object selectOne = sqlSession.selectOne("com.bzsxt.mapper.FlowerMapper.selectOne", 10);
        //当参数类型是某一个类时,可以传递多个参数:
        Flower flower = new Flower();
        flower.setPrice(5);
        flower.setFname("夕颜");
        Object selectOne1 = sqlSession.selectOne("com.bzsxt.mapper.FlowerMapper.selectOne2", flower);
        System.out.println(selectOne1);
        //当参数类型为map时,key值作为查询的?,value代表查询的具体值
        Map<Object,Object> map = new HashMap<>();
        map.put("a",10);
        map.put("b","紫罗兰");
        Object selectOne3 = sqlSession.selectOne("com.bzsxt.mapper.FlowerMapper.selectOne3", map);
        System.out.println(selectOne3);
        sqlSession.close();

三种参数传递对应的xml文件

    <!--parameterType代表传入的参数类型-->
    <select id="selectOne" resultType="flower" parameterType="int">
        select * from flower where fid = #{param1}
    </select>
    <!--当参数类型是某一个类时,可以传递多个参数,#{fid}括号中填写的是数据库列名-->
    <select id="selectOne2" resultType="flower" parameterType="flower">
        select * from flower where price = #{price} and fname = #{fname}
    </select>
    <!--当参数类型为map集合时,#{}括号中填写的是key值,-->
    <select id="selectOne3" resultType="flower" parameterType="map">
        select * from flower where fid = #{a} and fname = #{b}
    </select>

增删改的操作

        //增加数据的操作insert
        Flower flower = new Flower();
        flower.setPrice(99);
        flower.setFname("西蓝花");
        flower.setVariety("美国");
        int insert = sqlSession.insert("com.bzsxt.mapper.FlowerMapper.insert",flower);
        //修改操作
        Flower flower = new Flower();
        flower.setPrice(3);
        flower.setFname("大白菜");
        flower.setFid(12);
        int update = sqlSession.update("com.bzsxt.mapper.FlowerMapper.update", flower);
        //删除操作delete
        int delete = sqlSession.delete("com.bzsxt.mapper.FlowerMapper.delete", 13);
        //需要提交事务,否则不会写到数据库

增删改对应的xml文件

    <!--添加操作,目前只能一条的添加-->
    <insert id="insert" parameterType="flower">
        insert into flower values(default,#{fname},#{variety},#{price})
    </insert>
    <!--修改操作,parameterType="flower"是可以省略的,会根据写的格式自动设置参数返回值类型-->
    <insert id="update" >
        update flower set fname = #{fname},price = #{price} where fid = #{fid}
    </insert>
    <!--删除操作-->
    <delete id="delete">
        delete from flower where fid = #{param1}
    </delete>

[1]mybatis中parameterType 这个属性可以省略的 但是 resultType 是不可以省略的
[2]#{} 相当于占位符 ${} 相当于拼接

提交的两种方式
[1]session.commit();
[2]SqlSession session = factory.openSession(true);

上一篇:flower项目后台vue页面添加(一看就懂)


下一篇:5.最长公共前缀