模版示例
<?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中,SQL映射文件起着至关重要的作用,它是连接数据库和Java代码的桥梁,允许开发者灵活地控制SQL语句的编写。本文将深入探讨MyBatis框架中的SQL映射文件配置,主要包括以下几个方面: 1. **基本结构** ...
3. **XML配置(Mapper XML)**:在Mybatis-Plus中,XML配置文件不再是必需的。默认情况下,Mybatis-Plus会根据实体类和Mapper接口自动生成相应的SQL语句。如果你仍然希望使用XML文件进行更复杂的SQL配置,可以通过@...
在XML映射文件中,MBG会为每个数据库表生成插入(insert)、更新(update)、删除(delete)和查询(select)等基本操作的SQL语句。这些语句可以通过Mapper接口在业务逻辑中调用,大大简化了数据库操作。 总的来说...
2. 映射文件与 XML 映射元素:Mybatis 的映射文件通常以 `.xml` 结尾,如 `mybatis3.xml`,它包含了 SQL 语句和结果集映射。在映射文件中,`<select>`, `<insert>`, `<update>`, `<delete>` 元素分别对应 SQL 的查询...
【Mybatis代码插入工具】是一种基于Java开发的实用工具,用于简化Mybatis框架中的SQL映射文件和Mapper接口的创建过程。它通过自动化的方式,帮助开发者快速生成与数据库表结构对应的实体类、Mapper接口以及XML配置...
Mapper的内置方法是MyBatis提供的一系列方便的CRUD(创建、读取、更新、删除)操作,它们直接映射到SQL语句上: 1. `countByExample`:这个方法用于根据指定的条件查询记录的数量。例如,`UserMapper`中的`...
Mybatis是一款轻量级的Java持久层框架,它主要解决了对象与数据库之间的映射问题,使得开发者无需手动编写SQL和结果集的映射代码,极大地提高了开发效率。在Mybatis中,自动映射工具——Mybatis Generator(MBG)是...
原始的XML映射文件中的SQL插入语句尝试在FROM子句中直接更新目标表'chat_messages',这是不被允许的。MySQL不允许在同一个查询中对一个表进行DML(数据修改语言)操作(如INSERT、UPDATE、DELETE)和查询。因此,...
在MyBatis中,`mybatis-3-config.dtd` 和 `mybatis-3-mapper.dtd` 是两个至关重要的DTD(Document Type Definition)文件,它们定义了MyBatis配置文件和映射文件的结构和规则。 首先,让我们深入了解一下`mybatis-3...
在这个配置中,`foreach`元素被用来遍历传入的列表(`list`),其中`item`属性表示当前迭代项的别名,`index`属性表示当前迭代项的索引,而`separator`属性则指定了各个插入语句之间的分隔符。 ### 四、Java代码实现 ...
在Java的MyBatis框架中,SQL语句映射部分是整个ORM(对象关系映射)过程中的核心组件,它负责将SQL查询结果转化为Java对象。这篇教程将深入讲解SQL映射XML文件的编写,主要关注`resultMap`以及增删查改(CRUD)的...
MyBatis3 是一款流行的Java持久层框架,它简化了数据库操作,使开发人员能够将SQL语句直接集成到XML映射文件或Java代码中,实现了数据访问对象(DAO)与业务逻辑的解耦。本教程旨在深入讲解MyBatis3的核心概念、配置...
另外,MyBatis的映射文件是MyBatis框架中非常重要的一部分,它将SQL语句和映射的Java对象关联起来,是MyBatis中实现查询、插入、更新、删除等操作的关键。映射文件通常与接口紧密配合,通过命名空间和方法名的对应...
在批量插入场景下,JDBC提供了Statement对象的addBatch()和executeBatch()方法,可以将多条插入语句一次性提交,减少与数据库的交互次数,从而提高效率。 Mybatis是一个轻量级的持久层框架,它简化了JDBC的复杂性,...
MyBatis3DTD约束是MyBatis框架中用于定义XML映射文件的一种规范,它描述了XML文件的结构和元素。DTD(Document Type Definition)是XML文档类型定义,用于规定XML文档的合法构建块,包括元素、属性以及它们之间的...
其次,`<foreach>`标签在Mybatis映射中扮演着动态SQL片段的角色,主要用于构建动态的SQL语句,比如批量插入、批量查询等场景。它可以遍历一个列表或数组,并为每个元素生成适当的SQL片段,还可以通过`open`和`close`...
- **动态SQL**:MyBatis3引入了更强大的动态SQL功能,允许在映射文件中直接编写条件语句,极大地提高了灵活性。 - **简化SqlSession**:对SqlSession的管理进行了优化,提供了一种更加面向对象的API,降低了资源...
XML格式的映射文件中,你可以定义SQL查询、更新、插入和删除语句,同时指定如何将数据库结果映射到Java对象。 2. Mapper接口:Mybatis允许开发者定义一个接口,该接口的每一个方法对应一个SQL查询。通过Mybatis的...