博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis insert操作插入,返回主键from官方
阅读量:7124 次
发布时间:2019-06-28

本文共 1498 字,大约阅读时间需要 4 分钟。

下面就是 insert,update 和 delete 语句的示例:

insert into Author (id,username,password,email,bio) values (#{id},#{username},#{password},#{email},#{bio})

  

如前所述,插入语句有一点多,它有一些属性和子元素用来处理主键的生成。

首先,如果你的数据库支持自动生成主键的字段(比如 MySQL 和 SQL Server) ,那么 你可以设置 useGeneratedKeys=”true”,而且设置 keyProperty 到你已经做好的目标属性上。 例如,如果上面的 Author 表已经对 id 使用了自动生成的列类型,那么语句可以修改为:

insert into Author (username,password,email,bio) values (#{username},#{password},#{email},#{bio})

  

MyBatis 有另外一种方法来处理数据库不支持自动生成类型,或者可能 JDBC 驱动不支 持自动生成主键时的主键生成问题。

这里有一个简单(甚至很傻)的示例,它可以生成一个随机 ID(可能你不会这么做, 但是这展示了 MyBatis 处理问题的灵活性,因为它并不真的关心 ID 的生成):

select CAST(RANDOM()*1000000 as INTEGER) a from SYSIBM.SYSDUMMY1
insert into Author (id, username, password, email,bio, favourite_section) values (#{id}, #{username}, #{password}, #{email}, #{bio}, #{favouriteSection,jdbcType=VARCHAR})

PS:以上selectKey里你可以修改为其它的主键生成方式如

SELECT user_info$seq.NEXTVAL FROM DUAL

在上面的示例中,selectKey 元素将会首先运行,Author 的 id 会被设置,然后插入语句 会被调用。 这给你了一个简单的行为在你的数据库中来处理自动生成的主键, 而不需要使你 的 Java 代码变得复杂。

selectKey 元素描述如下:

属性 描述
keyProperty selectKey 语句结果应该被设置的目标属性。
resultType 结果的类型。MyBatis 通常可以算出来,但是写上也没有问题。 MyBatis 允许任何简单类型用作主键的类型,包括字符串。
order 这可以被设置为 BEFORE 或 AFTER。如果设置为 BEFORE,那 么它会首先选择主键, 设置 keyProperty 然后执行插入语句。 如果 设置为 AFTER,那么先执行插入语句,然后是 selectKey 元素- 这和如 Oracle 数据库相似,可以在插入语句中嵌入序列调用。
statementType 和前面的相 同,MyBatis 支持 STA TEMENT ,PREPARED 和 CALLABLE 语句的映射类型,分别代表 PreparedStatement 和 CallableStatement 类型。

 

   

转载地址:http://cjael.baihongyu.com/

你可能感兴趣的文章
动态代理简单测试
查看>>
Linux下切分Tomcat的catalina.out日志文件
查看>>
XSS***的介绍及防御
查看>>
《冈仁波齐》让我看到的不止是信仰,还有不忘初心
查看>>
Apache配置域名301跳转
查看>>
谈谈源码中的SparseArray
查看>>
12.24作业
查看>>
压力测试
查看>>
java异步发送邮件
查看>>
详细介绍java中的数据结构
查看>>
我的友情链接
查看>>
awk详解
查看>>
三、Harbor的工作流程
查看>>
命令解释器
查看>>
远程存储—删除时自动备份
查看>>
__FILE__,__LINE__
查看>>
oracle tns listener配置 (附TNS介绍)
查看>>
Java基础之面向对象2
查看>>
我的友情链接
查看>>
Makefile
查看>>