Mybatis探究已映射的 SQL 语句

Posted 王六六的IT日常

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis探究已映射的 SQL 语句相关的知识,希望对你有一定的参考价值。

创建xml文件(mapper文件)— 写sql语句。
mybatis框架推荐是把sql语句和java代码分开
mapper文件:定义和dao接口在同一目录, 一个表一个mapper文件。

  1. 约束文件
    http://mybatis.org/dtd/mybatis-3-mapper.dtd
    约束文件作用: 定义和限制当前文件中可以使用的标签和属性,以及标签出现的顺序。

  2. mapper是根标签
    namespace: 命名空间,必须有值,不能为空。唯一值。
    推荐使用Dao接口的全限定名称。
    作用: 参与识别sql语句的作用。

  3. 在mapper里面可以写 <insert>,<update>,<delete>,<select>等标签。
    <insert>里面是 insert语句,表示执行的insert操作
    <update>里面是 update语句
    <delete>里面是 delete语句
    <select> 里面是 select语句

示例:

<?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 namespace="com.bjpowernode.dao.StudentDao">
<!--    <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>-->

    <!--查询一个学生Student

        <select>:表示查询操作, 里面是select 语句
        id: 要执行的sql语句的唯一标识, 是一个自定义字符串。
            推荐使用dao接口中的方法名称
        resultType:告诉mybatis,执行sql语句,把数据赋值给那个类型的java对象。
              resultType的值现在使用的java对象的全限定名称


        #{studentId}:占位符, 表示从java程序中传入过来的数据
    -->
    <select id="selectStudentById" resultType="com.bjpowernode.domain.Student">
         select id,name,email,age from student where id = #{studentId}
    </select>


    <!--添加insert
       insert into student values(1003,"李峰","lifeng@qq.com",26)

       如果传入给mybatis是一个java对象,使用#{属性名} 获取此属性的值。
       属性值放到 #{}占位符的位置, mybatis执行此属性 对应的getXXX().
       例如 #{id} ,执行getId();
    -->
    <insert id="insertStudent">
       insert into student values(#{id},#{name},#{email},#{age})
    </insert>
</mapper>


以上是关于Mybatis探究已映射的 SQL 语句的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis快速入门

MyBatis 拦截器原理探究

mybatis入门

MyBatis:动态sql语句

MyBatis-05-笔记

#yyds干货盘点# mybatis源码解读:executor包(语句处理功能)