首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第一章:增删改查
第二章:INSERT 获取自增主键的值
第三章:INSERT 获取非自增主键的值
第四章:参数处理
4.1 单个参数
4.2 多个参数
4.3 命名参数
4.4 POJO
4.5 Map
4.6 TO
4.7 Collection 类型:List、Set、数组
4.8 # 和 $ 取值区别
4.9 #取值时指定参数的相关规则
第五章:select 元素
5.1 概述
5.2 resultType
5.3 resultMap
当前位置:
首页>>
技术小册>>
Mybatis合辑2-Mybatis映射文件
小册名称:Mybatis合辑2-Mybatis映射文件
- Oracle 不支持自增主键,Oracle 是使用序列来模拟自增的。 - 每次插入的数据的主键都是从序列中拿到的值。 - 示例: ``` <?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="com.sunxiaping.mapper.EmployeeMapper"> <!-- Oracle不支持自增主键,Oracle是使用序列来模拟自增的。 每次插入的数据的主键都是从序列中拿到的值。 --> <insert id="addEmp" useGeneratedKeys="true" keyProperty="id" parameterType="com.sunxiaping.domain.Employee"> <!-- 插入时的主键是从序列中拿到的 keyProperty:查询的主键封装给JavaBean的哪个属性 order: - BEFORE:当前的SQL在插入SQL之前运行 - 运行顺序:先运行selectKey中的SQL语句,查询出id,然后将id封装给JavaBean中的id属性,在运行插入SQL的时候,就可以取出id属性对应的值 - AFTER: 先运行插入SQL,再运行当前的SQL - 运行顺序:先运行插入的SQL(会从序列中取出新值作为id),再运行selectKey查询id,然后将id封装给JavaBean的id属性,并发情况下可能有问题。 resultType:查出的数据的返回值类型 --> <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Integer"> <!-- 编写查询主键的SQL语句 --> SELECT employee_seq.nextval FROM dual </selectKey> INSERT INTO employee (id,last_name,email,gender) VALUES (#{id,jdbcType=INTEGER},#{lastName,jdbcType=VARCHAR},#{email,jdbcType=VARCHAR},#{gender,jdbcType=VARCHAR}) </insert> </mapper> ``` - 示例: ``` <?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="com.sunxiaping.mapper.EmployeeMapper"> <!-- Oracle不支持自增主键,Oracle是使用序列来模拟自增的。 每次插入的数据的主键都是从序列中拿到的值。 --> <insert id="addEmp" useGeneratedKeys="true" keyProperty="id" parameterType="com.sunxiaping.domain.Employee"> <!-- 插入时的主键是从序列中拿到的 keyProperty:查询的主键封装给JavaBean的哪个属性 order: - BEFORE:当前的SQL在插入SQL之前运行 - 运行顺序:先运行selectKey中的SQL语句,查询出id,然后将id封装给JavaBean中的id属性,在运行插入SQL的时候,就可以取出id属性对应的值 - AFTER: 先运行插入SQL,再运行当前的SQL - 运行顺序:先运行插入的SQL(会从序列中取出新值作为id),再运行selectKey查询id,然后将id封装给JavaBean的id属性,并发情况下可能有问题。 resultType:查出的数据的返回值类型 --> <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"> <!-- 编写查询主键的SQL语句 --> SELECT employee_seq.currval FROM dual </selectKey> INSERT INTO employee (id,last_name,email,gender) VALUES (employee_seq.nextval},#{lastName,jdbcType=VARCHAR},#{email,jdbcType=VARCHAR},#{gender,jdbcType=VARCHAR}) </insert> </mapper> ```
上一篇:
第二章:INSERT 获取自增主键的值
下一篇:
第四章:参数处理
该分类下的相关小册推荐:
Java并发编程
Java必知必会-Maven高级
Java语言基础11-Java中的泛型
Java并发编程实战
SpringBoot合辑-初级篇
Java性能调优实战
Java语言基础3-流程控制
Java语言基础8-Java多线程
Java必知必会-JDBC
java源码学习笔记
Java语言基础9-常用API和常见算法
Mybatis合辑4-Mybatis缓存机制