当前位置:   article > 正文

mybatis--基础--3.3--xml映射文件--insert,update,delete元素_单个表insert xml

单个表insert xml

mybatis–基础–3.3–xml映射文件–insert,update,delete元素


代码地址

https://gitee.com/DanShenGuiZu/learnDemo/tree/mysql_mybaties_DB/mybatis-learn-master
  • 1

1、insert,update,delete元素

<-------------insert--------->
<insert
  id="insertAuthor"
  parameterType="domain.blog.Author"
  flushCache="true"
  statementType="PREPARED"
  keyProperty=""
  keyColumn=""
  useGeneratedKeys=""
  timeout="20">

<-------------update--------->
<update
  id="updateAuthor"
  parameterType="domain.blog.Author"
  flushCache="true"
  statementType="PREPARED"
  timeout="20">

<-------------delete--------->
<delete
  id="deleteAuthor"
  parameterType="domain.blog.Author"
  flushCache="true"
  statementType="PREPARED"
  timeout="20">
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

2、属性

  1. id:
    1. sql语句的唯一标识符
  2. parameterType
    1. 参数类型,使用全类名或者别名
    2. 可选:MyBatis可以通过TypeHandler推断出具体传入语句的参数类型
    3. 默认值:unset
  3. flushCache
    1. true:任何时候只要语句被调用,都会清空本地缓存和二级缓存
    2. 默认值:false。
  4. timeout
    1. 这个设置是在抛出异常之前,驱动程序等待数据库返回请求结果的秒数。
    2. 默认值为unset(依赖驱动)。
  5. statementType
    1. STATEMENT,PREPARED或CALLABLE 的一个。这会让MyBatis分别使用 Statement,PreparedStatement或CallableStatement,
    2. 默认值:PREPARED。
  6. useGeneratedKeys
    1. 仅针对insert、update
    2. MyBatis使用JDBC的getGeneratedKeys方法来取出由数据库内部生成的主键值
    3. 默认值:false。
  7. keyProperty
    1. 仅针对insert、update
    2. 唯一标记一个属性
    3. MyBatis通过getGeneratedKeys的返回值或者通过insert语句的selectKey子元素设置它的键值
    4. 默认:unset。
    5. 可以得到多个生成的列,使用逗号分隔的属性名称列表。
  8. keyColumn
    1. 仅针对insert、update
    2. 通过生成的键值设置表中的列名
    3. 这个设置仅在某些数据库(像 PostgreSQL)是必须的,当主键列不是表中的第一列的时候需要设置。
    4. 可以得到多个生成的列,使用逗号分隔的属性名称列表。
  9. databaseId
    1. 如果配置了databaseIdProvider,MyBatis会加载所有的不带databaseId或匹配当前 databaseId的语句;
    2. 如果带或者不带的语句都有,则不带的会被忽略。

2.1、属性测试

2.1.1、代码结构

在这里插入图片描述

2.1.2、useGeneratedKeys,keyProperty

<insert id="insert" useGeneratedKeys="true"
        keyProperty="id">
  insert into user (user_name,password)
  values (#{userName},#{password})
</insert>
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
在这里插入图片描述

2.1.3、SelectKey

<insert id="insert2">
    insert into user (user_name,password)
    values (#{userName},#{password})
    <selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER">
        SELECT LAST_INSERT_ID()
    </selectKey>
</insert>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

2.1.4、SelectKey属性

<selectKey
  keyProperty="id"
  resultType="int"
  order="BEFORE"
  statementType="PREPARED">
  • 1
  • 2
  • 3
  • 4
  • 5
  1. keyProperty
    1. selectKey语句结果应该被设置的目标属性。
    2. 如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。
  2. keyColumn
    1. 匹配属性的返回结果集中的列名称。
    2. 如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。
  3. resultType
    1. 返回类型
  4. order
    1. BEFORE
      1. 首先选择主键,设置keyProperty然后执行插入语句
    2. AFTER
      1. 先执行插入语句,然后设置keyProperty的值
  5. statementType
    1. STATEMENT,PREPARED或CALLABLE 的一个。这会让MyBatis分别使用 Statement,PreparedStatement或CallableStatement,
    2. 默认值:PREPARED。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/241472
推荐阅读
相关标签
  

闽ICP备14008679号