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

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


代码地址

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

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">

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>

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

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>

在这里插入图片描述

2.1.4、SelectKey属性

<selectKey
  keyProperty="id"
  resultType="int"
  order="BEFORE"
  statementType="PREPARED">
  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。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值