`

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 SQL映射文件

    MyBatis 真正的强大在于映射语句,专注于SQL,功能强大,SQL映射的配置却是相当简单 SQL映射文件的几个顶级...6.insert – 映射插入语句 7.update – 映射更新语句 8.delete – 映射删除语句 9.select – 映射查询语句

    mybatis笔记.zip

    4. SQL语句映射: MyBatis支持静态SQL和动态SQL。使用、、、等元素来定义SQL语句。 使用${}和#{}来插入参数,其中${}会直接替换,#{}会被预编译防止SQL注入。 5. 参数映射: 参数映射使用#{}或${}来引用参数,#{}...

    springmybatis

    MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个...

    mybatis知识点总结.docx

    MyBatis知识点总结 MyBatis是一款优秀的持久层框架,为...4. SQL语句映射: MyBatis支持静态SQL和动态SQL。使用、、、等元素来定义SQL语句。 使用${}和#{}来插入参数,其中${}会直接替换,#{}会被预编译防止SQL注入

    Mybatis使用手册.pdf

    MyBatis是一个强大而灵活的持久化框架,通过配置映射关系和SQL语句,您可以轻松地进行数据库操作。无论是简单的CRUD操作还是复杂的关系映射,MyBatis都能够满足您的需求,提升开发效率和代码质量。通过本手册的介绍...

    mybatis-generator-extend:spring boot项目整合mybatis,插入mybatis生成器插件进行扩展,自动生成mybatis配置环境及实体文件示例模块是使用样例参考,extend模块是扩展源码,可直接复制到项目中以模块安装方式使用,也可打成罐包约会使用

    自定义Jdbc类型到java类型映射 实体可使用Lombok代替getter,Setter 使用mysql dynamicSql语法语句 要求jdk1.8及以上 3.方式一:模块安装方式 3.1 pom.xml配置 &lt; groupId&gt;org.mybatis.spring.boot &lt; artif

    Mybatis源码阅读(三):结果集映射3.3 —— 主键生成策略

    mybatis中使用ResultHandler等一系列的类,将查询结果封装到实体类中,可以说是mybatis中最复杂的过程,而剩下的insert、update、delete语句的操作则显得较为简单,没有复杂的映射逻辑。这里需要提的是在insert语句...

    mybatis:mybatis源码阅读

    3.3.1版本后ExecutorType为简单,重复使用批量插入可以正确返回生成主键 密钥生成器 useGeneratedKeys为true使用Jdbc3KeyGenerator selectKey节点使用SelectKeyGenerator 拦截器 拦截器pluginAll作用于Executor,...

    CMEU代码生成器

    生成Mapper映射文件(dao层接口SQL语句,支持生成3表关联(比如:A表关联B表,B表关联C表,一次便可获得3张表的数据),支持主键策略;&lt;如果选择创建Assist支持分页,去重,排序,无注入动态查询等&gt;); 生成service层接口(与dao...

    MyBatis的关联关系 一对多关系 、collection 标签

    什么是一对多?  一对多关系应该是开发人员接触... 2、嵌套查询是查询语句中插入一个子SQL语句  3、嵌套查询会执行多条SQL语句  4、嵌套查询编写SQL语句较为简单,但消耗资源大,可配置延迟加载解决 嵌套结果:  

    1000道 互联网Java架构师面试题.pdf和JAVA核心知识整理.zip

    3、MyBatis 框架的缺点 4、MyBatis 框架适用场合 5、MyBatis 与 Hibernate 有哪些不同? 6、#{}和${}的区别是什么? 7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 8、 模糊查询 like 语句该怎么写? ...

    02-02-02-MyBatis体系结构与工作原理1

    1. 把接口中传入的参数解析并且映射成 JDBC 类型 2. 解析 xml 文件中的 SQL 语句,包括插入参数,和动态 SQL 的生成 3. 执行 SQL 语

    Meetingroom_Management_System:公司项目,用Java编写,为团队构建一个适用的系统

    映射器:映射到 myBatis SQL 语句的 5 个实体的 java 类和方法 src: 包下的域、映射器、服务、utils、web 文件。 服务器端控制器的源代码。 域:映射到数据库表属性的对象实体; mapper:映射器类扩展的接口; ...

    Java常见面试题208道.docx

    165.一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几? 166.如何获取当前数据库版本? 167.说一下 ACID 是什么? 168.char 和 varchar 的区别是什么? 169...

    支持多数据库的ORM框架ef-orm.zip

    表结构元数据的API也向用户开放,同时支持在使用过程中,灵活调整映射关系,因此用户可以用API动态的创建表结构的模型,从而实现各种动态类型和表的映射(例如POJO中包含一个Map,用于映射各种动态扩展的字段)企业...

    乐优商城.xmind

    name 命名为aa,然后sql语句....where s_name= #{aa} 中就可以根据aa得到参数值 修改 回显 Controller @PathVariable("bid") 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中...

Global site tag (gtag.js) - Google Analytics