`

Mybatis3插入语句映射

 
阅读更多
模版示例
<?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="XXX">

	<insert id="insert" parameterType="XXX
		flushCache="true" statementType="PREPARED" timeout="20000">
		insert into user (id,name,mark)
		values (#{id},#{name},#{mark})
	</insert>

</mapper>

 如果使用的是像Mysql一样的可自动递增主键的数据库,还可以更改成ID自动插入
<?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="XXX">

	<insert id="insert" parameterType="XXX"
		useGeneratedKeys="true" keyProperty="id" flushCache="true" statementType="PREPARED"  timeout="20000">
		insert into user (name,mark)
		values (#{name},#{mark})
	</insert>

	
</mapper>
 
如果没有自递增,也可以使用selectKey自定义一个自递增方法
<?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="XXX">
	
	<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>

</mapper>
 
属性解释

  • id  在命名空间中唯一的标识符,可以被用来引用这条语句。 
  • parameterType  将会传入这条语句的参数类的完全限定名或别名。 
  • parameterMap  这是引用外部 parameterMap 的已经被废弃的方法。使用内联参数映射和 parameterType 属性。 ()
  • flushCache  将其设置为 true,不论语句什么时候被用,都会导致缓存被清空。默认值:false。 
  • timeout   这个设置驱动程序等待数据库返回请求结果,并抛出异常时间的最大等待值。默认不设置(驱动自行处理)。 
  • statementType  STATEMENT,PREPARED 或 CALLABLE 的一种。这会让 MyBatis使用选择使用 Statement,PreparedStatement 或 CallableStatement。默认值:PREPARED。 
  • useGeneratedKeys  (仅对 insert 有 用) 这 会告 诉 MyBatis 使用 JDBC 的getGeneratedKeys 方法来取出由数据(比如:像 MySQL 和 SQLServer 这样的数据库管理系统的自动递增字段)内部生成的主键。默认值:false。 
  • keyProperty  (仅对insert有用) 标记一个属性, MyBatis会通过getGeneratedKeys或者通过 insert 语句的selectKey 子元素设置它的值。默认:不设置。

分享到:
评论

相关推荐

    Mybatis-03 SQL映射文件

    在MyBatis中,SQL映射文件起着至关重要的作用,它是连接数据库和Java代码的桥梁,允许开发者灵活地控制SQL语句的编写。本文将深入探讨MyBatis框架中的SQL映射文件配置,主要包括以下几个方面: 1. **基本结构** ...

    Mybatis-Plus映射实现过程

    3. **XML配置(Mapper XML)**:在Mybatis-Plus中,XML配置文件不再是必需的。默认情况下,Mybatis-Plus会根据实体类和Mapper接口自动生成相应的SQL语句。如果你仍然希望使用XML文件进行更复杂的SQL配置,可以通过@...

    mybatis自动生成语句XML版本

    在XML映射文件中,MBG会为每个数据库表生成插入(insert)、更新(update)、删除(delete)和查询(select)等基本操作的SQL语句。这些语句可以通过Mapper接口在业务逻辑中调用,大大简化了数据库操作。 总的来说...

    Mybatis高级映射查询

    2. 映射文件与 XML 映射元素:Mybatis 的映射文件通常以 `.xml` 结尾,如 `mybatis3.xml`,它包含了 SQL 语句和结果集映射。在映射文件中,`&lt;select&gt;`, `&lt;insert&gt;`, `&lt;update&gt;`, `&lt;delete&gt;` 元素分别对应 SQL 的查询...

    Mybatis代码插入工具

    【Mybatis代码插入工具】是一种基于Java开发的实用工具,用于简化Mybatis框架中的SQL映射文件和Mapper接口的创建过程。它通过自动化的方式,帮助开发者快速生成与数据库表结构对应的实体类、Mapper接口以及XML配置...

    Java的MyBatis框架中Mapper映射配置的使用及原理解析

    Mapper的内置方法是MyBatis提供的一系列方便的CRUD(创建、读取、更新、删除)操作,它们直接映射到SQL语句上: 1. `countByExample`:这个方法用于根据指定的条件查询记录的数量。例如,`UserMapper`中的`...

    Mybatis自动映射工具

    Mybatis是一款轻量级的Java持久层框架,它主要解决了对象与数据库之间的映射问题,使得开发者无需手动编写SQL和结果集的映射代码,极大地提高了开发效率。在Mybatis中,自动映射工具——Mybatis Generator(MBG)是...

    mybatis 批量插入 嵌套select.pdf

    原始的XML映射文件中的SQL插入语句尝试在FROM子句中直接更新目标表'chat_messages',这是不被允许的。MySQL不允许在同一个查询中对一个表进行DML(数据修改语言)操作(如INSERT、UPDATE、DELETE)和查询。因此,...

    mybatis-3-config.dtd mybatis-3-mapper.dtd

    在MyBatis中,`mybatis-3-config.dtd` 和 `mybatis-3-mapper.dtd` 是两个至关重要的DTD(Document Type Definition)文件,它们定义了MyBatis配置文件和映射文件的结构和规则。 首先,让我们深入了解一下`mybatis-3...

    Mybatis 3+Mysql 实现批量插入

    在这个配置中,`foreach`元素被用来遍历传入的列表(`list`),其中`item`属性表示当前迭代项的别名,`index`属性表示当前迭代项的索引,而`separator`属性则指定了各个插入语句之间的分隔符。 ### 四、Java代码实现 ...

    详解Java的MyBatis框架中SQL语句映射部分的编写

    在Java的MyBatis框架中,SQL语句映射部分是整个ORM(对象关系映射)过程中的核心组件,它负责将SQL查询结果转化为Java对象。这篇教程将深入讲解SQL映射XML文件的编写,主要关注`resultMap`以及增删查改(CRUD)的...

    MyBatis3 教程 中文版

    MyBatis3 是一款流行的Java持久层框架,它简化了数据库操作,使开发人员能够将SQL语句直接集成到XML映射文件或Java代码中,实现了数据访问对象(DAO)与业务逻辑的解耦。本教程旨在深入讲解MyBatis3的核心概念、配置...

    MyBatis3官方中文文档

    另外,MyBatis的映射文件是MyBatis框架中非常重要的一部分,它将SQL语句和映射的Java对象关联起来,是MyBatis中实现查询、插入、更新、删除等操作的关键。映射文件通常与接口紧密配合,通过命名空间和方法名的对应...

    Mybatis与JDBC批量插入MySQL数据库性能测试

    在批量插入场景下,JDBC提供了Statement对象的addBatch()和executeBatch()方法,可以将多条插入语句一次性提交,减少与数据库的交互次数,从而提高效率。 Mybatis是一个轻量级的持久层框架,它简化了JDBC的复杂性,...

    MyBatis3DTD约束

    MyBatis3DTD约束是MyBatis框架中用于定义XML映射文件的一种规范,它描述了XML文件的结构和元素。DTD(Document Type Definition)是XML文档类型定义,用于规定XML文档的合法构建块,包括元素、属性以及它们之间的...

    Mybatis复杂映射开发开源架构源码2021.pdf

    其次,`&lt;foreach&gt;`标签在Mybatis映射中扮演着动态SQL片段的角色,主要用于构建动态的SQL语句,比如批量插入、批量查询等场景。它可以遍历一个列表或数组,并为每个元素生成适当的SQL片段,还可以通过`open`和`close`...

    MyBatis3_开发手册

    - **动态SQL**:MyBatis3引入了更强大的动态SQL功能,允许在映射文件中直接编写条件语句,极大地提高了灵活性。 - **简化SqlSession**:对SqlSession的管理进行了优化,提供了一种更加面向对象的API,降低了资源...

    Mybatis3官方文档

    XML格式的映射文件中,你可以定义SQL查询、更新、插入和删除语句,同时指定如何将数据库结果映射到Java对象。 2. Mapper接口:Mybatis允许开发者定义一个接口,该接口的每一个方法对应一个SQL查询。通过Mybatis的...

Global site tag (gtag.js) - Google Analytics