MyBatis-insert, update and delete
来源:互联网 发布:永久开启事件 mysql 编辑:程序博客网 时间:2024/04/26 13:59
insert, update and delete
数据变更语句 insert,update 和 delete 在它们的实现中非常相似:
<insert id="insertAuthor" parameterType="domain.blog.Author" flushCache="true" statementType="PREPARED" keyProperty="" keyColumn="" useGeneratedKeys="" timeout="20"><update id="insertAuthor" parameterType="domain.blog.Author" flushCache="true" statementType="PREPARED" timeout="20"><delete id="insertAuthor" parameterType="domain.blog.Author" flushCache="true" statementType="PREPARED" timeout="20">
下面就是 insert,update 和 delete 语句的示例:
<insert id="insertAuthor" parameterType="domain.blog.Author"> insert into Author (id,username,password,email,bio) values (#{id},#{username},#{password},#{email},#{bio})</insert><update id="updateAuthor" parameterType="domain.blog.Author"> update Author set username = #{username}, password = #{password}, email = #{email}, bio = #{bio} where id = #{id}</update><delete id="deleteAuthor" parameterType="int"> delete from Author where id = #{id}</delete>
如前所述,插入语句有一点多,它有一些属性和子元素用来处理主键的生成。
首先,如果你的数据库支持自动生成主键的字段(比如 MySQL 和 SQL Server) ,那么 你可以设置 useGeneratedKeys=”true”,而且设置 keyProperty 到你已经做好的目标属性上。 例如,如果上面的 Author 表已经对 id 使用了自动生成的列类型,那么语句可以修改为:
<insert id="insertAuthor" parameterType="domain.blog.Author" useGeneratedKeys="true" keyProperty="id"> insert into Author (username,password,email,bio) values (#{username},#{password},#{email},#{bio})</insert>
MyBatis 有另外一种方法来处理数据库不支持自动生成类型,或者可能 JDBC 驱动不支 持自动生成主键时的主键生成问题。
这里有一个简单(甚至很傻)的示例,它可以生成一个随机 ID(可能你不会这么做,但是这展示了 MyBatis 处理问题的灵活性,因为它并不真的关心 ID 的生成):
<insert id="insertAuthor" parameterType="domain.blog.Author"> <selectKey keyProperty="id" resultType="int" order="BEFORE"> select CAST(RANDOM()*1000000 as INTEGER) a from SYSIBM.SYSDUMMY1 </selectKey> insert into Author (id, username, password, email,bio, favourite_section) values (#{id}, #{username}, #{password}, #{email}, #{bio}, #{favouriteSection,jdbcType=VARCHAR})</insert>
在上面的示例中,selectKey 元素将会首先运行,Author 的 id 会被设置,然后插入语句 会被调用。 这给你了一个简单的行为在你的数据库中来处理自动生成的主键,而不需要使你 的 Java 代码变得复杂。
selectKey 元素描述如下:
<selectKey keyProperty="id" resultType="int" order="BEFORE" statementType="PREPARED">
- MyBatis-insert, update and delete
- mybatis批量update,insert,delete
- Mybatis自动生成insert,update,delete
- mybatis配置insert/update/delete同一个模板
- mybatis——select、insert、update、delete
- mybatis映射器三(insert,update,delete)
- MyBatis insert、update、delete、sql 标签
- MyBatis☞ select、insert、update、delete
- mybatis——select、insert、update、delete
- mybatis整理笔记MapperXML文件2 -- MapperXML文件中的insert, update and delete[文章摘自文档]
- mybatis整理笔记MapperXML文件2 -- MapperXML文件中的insert, update and delete
- Connect to Sqlite and do insert, delete, update and select
- 数据库--MyBatis的(insert,update,delete)三种批量操作
- mybatis+postgresql insert, update or delete returning *问题
- Mybatis下mapper映射文件配置之insert、update、delete
- 数据库--MyBatis的(insert,update,delete)三种批量操作
- mybatis-映射器-insert元素,update,delete元素
- 数据库--MyBatis的(insert,update,delete)三种批量操作
- Node.js学习之环境搭建
- DELL笔记本不能安装Win7系统【预装Windows8的】型号:Inspiron 13z 5323-百度一下当涂学电脑
- 道里云公司网络虚拟化架构NVI技术开放源代码--序言
- CSS文件的条件导入
- Mybatis-select
- MyBatis-insert, update and delete
- mybatis-sql
- 40+精彩的HTML5实例和教程
- DirectX 3D_实践之DirectX3D中高度图的使用
- mybatis-Parameters
- 嘛
- Auto-mapping
- MyBatis-缓存
- Android中Configuration类简介