MyBatis 映射配置文件

1、映射配置文件介绍

  • 映射配置文件包含了数据和对象之间的映射关系以及要执行的 SQL 语句
    <?xml version="1.0" encoding="UTF-8" ?>
    <!--MyBatis的DTD约束-->
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <!--
        mapper:核心根标签
        namespace属性:名称空间
    -->
    <mapper namespace="StudentMapper">
        <!--
            select:查询功能的标签
            id属性:唯一标识
            resultType属性:指定结果映射对象类型
            parameterType属性:指定参数映射对象类型
        -->
    	查询功能的标签
        <select id="selectAll" resultType="student">
            SELECT * FROM student
        </select>
    
        <select id="selectById" resultType="com.bean.student" parameterType="int">
            SELECT * FROM student WHERE id = #{id}
        </select>
    	
    	插入功能的标签
        <insert id="insert" parameterType="student">
            INSERT INTO student VALUES (#{id},#{name},#{age})
        </insert>
    
    	修改功能的标签
        <update id="update" parameterType="student">
            UPDATE student SET name = #{name},age = #{age} WHERE id = #{id}
        </update>
    
    	删除功能的标签
        <delete id="delete" parameterType="int">
            DELETE FROM student WHERE id = #{id}
        </delete>
    </mapper>

2、查询功能 

  • <select>:查询功能标签。

  • 属性

    id:唯一标识, 配合名称空间使用。

    parameterType:指定参数映射的对象类型。

    resultType:指定结果映射的对象类型。

  • SQL 获取参数: #{属性名}

  • 示例

 3、新增功能

  • <insert>:新增功能标签。

  • 属性

    id:唯一标识, 配合名称空间使用。

    parameterType:指定参数映射的对象类型。

    resultType:指定结果映射的对象类型。

  • SQL 获取参数: #{属性名}

  • 示例

 4、修改功能

  • <update>:修改功能标签。

  • 属性

    id:唯一标识, 配合名称空间使用。

    parameterType:指定参数映射的对象类型。

    resultType:指定结果映射的对象类型。

  • SQL 获取参数: #{属性名}

  • 示例:

5、删除功能

  • <delete>:查询功能标签。

  • 属性

    id:唯一标识, 配合名称空间使用。

    parameterType:指定参数映射的对象类型。

    resultType:指定结果映射的对象类型。

  • SQL 获取参数: #{属性名}

  • 示例
  • 总结: 大家可以发现crud操作,除了标签名称以及sql语句不一样之外,其他属性参数基本一致。

6、测试代码页面

public class StudentTest01 {
    /*
        删除功能
     */
    @Test
    public void delete() throws IOException {
        InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        int result = sqlSession.delete("StudentMapper.delete", 8);
        sqlSession.commit();
        System.out.println(result);
        sqlSession.close();
        is.close();
    }

    /*
        修改功能
     */
    @Test
    public void update() throws IOException {
        InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
        Student stu = new Student(8, "Jack", 21);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);

        int result = sqlSession.update("StudentMapper.update", stu);
        sqlSession.close();
        is.close();
    }

    /*
        新增功能
     */
    @Test
    public void insert() throws IOException {
        InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
        SqlSession sqlSession = sqlSessionFactory.openSession();

//        为了方便演示,我就直接在这里创建Student对象为其赋值
        Student stu = new Student(8, "TOM", 34);
        int result = sqlSession.insert("StudentMapper.insert", stu);
        // 提交事务
        sqlSession.commit();
        System.out.println(result);
        sqlSession.close();
        is.close();
    }

    /*
        根据Sid查询
     */
    @Test
    public void selectById() throws IOException {
        InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        Student stu = sqlSession.selectOne("StudentMapper.selectById", 4);

        System.out.println(stu);
        sqlSession.close();
        is.close();
    }


    /*
        查询全部
     */
    @Test
    public void selectAll() throws Exception {
        // 加载核心配置文件
        InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");

        // 获取SqlSession工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);

        // 通过SqlSession工厂对象获取SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();

        // 执行映射配置文件中的sql语句,并接收结果
        List<Student> list = sqlSession.selectList("StudentMapper.selectAll");

        // 处理结果
        for (Student stu : list) {
            System.out.println(stu);
        }

        // 释放资源
        sqlSession.close();
        is.close();
    }

}

注意:Student实体类和数据库与上篇博文的创建方式一样,因此本次就没有再次创建,具体创建方式详见上篇博文

7、映射配置文件小结

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悠然予夏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值