Mybatis-mapper.xml相关记录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hold_on_/article/details/89715853

先贴一段代码:

<?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.Dao.task.Excel_InDao">      //这个地方还是用强大的cv大法吧,,,要是写错了就GG了
   
    <!-- 批量插入 -->
    <insert id="insertDatasFromExcel" parameterType="java.util.List" >
        insert into schedule(teacher,course_name,exper_name,week,number,class_name,weekday,section)
        VALUES
        <foreach collection="list" item="item" index="index" separator=",">
            (#{item.teacher,jdbcType=VARCHAR},
            #{item.course_name,jdbcType=VARCHAR},
            #{item.exper_name,jdbcType=VARCHAR},
            #{item.week,jdbcType=VARCHAR},
            #{item.number,jdbcType=INTEGER},
            #{item.class_name,jdbcType=VARCHAR},
            #{item.weekday,jdbcType=VARCHAR},
            #{item.section,jdbcType=VARCHAR})
        </foreach>

    </insert>
</mapper>

需要配置的属性:

  1. id="xxxx" >>> 表示此段sql执行语句的唯一标识,也是接口的方法名称【必须一致才能找到】
  2. parameterType="" >>>表示该sql语句中需要传入的参数, 类型要与对应的接口方法的类型一致【可选】
  3. resultMap=“ ”>>> 定义出参,调用已定义的<resultMap>映射管理器的id值【可选】
  4. resultType=“ ”>>>定义出参,匹配普通Java类型或自定义的pojo【出参类型若不指定,将为语句类型默认类型,如<insert>语句返回值为int,(增删改都是默认返回一个int类型的数据,表示影响的行数)】
  5. index:为数组的下标。
  6. item:为数组每个元素的名称,名称随意定义
  7. open:开始符号
  8. separator:中间以什么分隔输出
  9. close:结束符号

#{}和${}的区别:

使用占位符#{}可以有效防止sql注入,在使用时不需要关心参数值的类型,mybatis会自动进行java类型和jdbc类型的转换。#{}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。

  ${}和#{}不同,通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。使用${}不能防止sql注入,但是有时用${}会非常方便,如下的例子:

   <!-- 根据名称模糊查询用户信息 -->
     <select id="selectUserByName" parameterType="string" resultType="user">
        select * from user where username like '%${value}%'
     </select>

猜你喜欢

转载自blog.csdn.net/hold_on_/article/details/89715853