Mybatis—— 主键回填
在 MySQL 中主键自增字段,在插入后往往需要获得这个主键,以便于后面的操作,而 MyBatis 提供了实现的方法。
首先可以使用 keyProperty 属性指定哪个是主键字段,同时使用 useGeneratedKeys 属性告诉 MyBatis 这个主键是否使用数据库内置策略生成。
<insert id="addStudent" parameterType="com.pojo.Student" useGeneratedKeys="true" keyProperty="stud_id">insert into students (name,email,dob) values (#{name},#{email},#{dob})
</insert>
useGeneratedKeys | (仅对 insert 和 update 有用)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键,默认值:false。 |
keyProperty | (仅对 insert 和 update 有用)唯一标记一个属性,MyBatis 会通过 getGeneratedKeys 的返回值或者通过 insert 语句的 selectKey 子元素设置它的键值,默认:unset。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。 |
keyColumn | (仅对 insert 和 update 有用)通过生成的键值设置表中的列名,这个设置仅在某些数据库(像 PostgreSQL)是必须的,当主键列不是表中的第一列的时候需要设置。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。 |
接口定义:
public void addStudent(Student student);
java bean 对象:
public class Student {private int stud_id;private String name;private String email;private Date dob;/*getter setter*/public Student(String name, String email, Date dob) {this.name = name;this.email = email;this.dob = dob;}
}
测试:
package com.main;import com.mapper.StudentMapper;
import com.pojo.Student;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.InputStream;
import java.util.*;public class Main {public static void main(String[] args){InputStream inputStream = Main.class.getResourceAsStream("/mybatis-config.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);Student student = new Student("haha","haha@qq.com",new Date());studentMapper.addStudent(student);sqlSession.commit();System.out.println(student);}
}
Mybatis—— 主键回填相关推荐
- MyBatis主键回填和自定义主键
MyBatis主键回填和自定义主键 1. 主键回填 JDBC中的Statement对象在执行插入的SQL后,可以通过getGeneratedKeys方法获得数据库生成的主键,这样便能达到获取主键的功能 ...
- MyBatis主键回填
方式一 <insert id="insertBook" useGeneratedKeys="true" keyProperty="id" ...
- Mybatis 主键回显 KeyGenerator原理
这篇文章研究下 Mybatis 配置主键回显相关功能. 本篇文章将以以下几个问题切入: Mybatis 如何 配置主键自增回显? JDBC 主键回显用法? 对于不支持自增主键数据库,Mybatis 有 ...
- mybatis主键生成策略和mp主键生成策略
mybatis主键生成策略和mp主键生成策略 1,mybatis plus 主键生成策略 都是通过给实体类的属性添加注解的方式执行type = IDTYPE- 1,AUTO数据库ID自增 2, ...
- mybatis 主键自增 insert后返回主键
mybatis 主键自增 insert后返回主键 : <insert id="insertStudentAutoKey" parameterType="Studen ...
- 轻量级封装DbUtilsMybatis之四MyBatis主键
MyBatis主键 不支持对象列表存储时对自增id字段的赋值(至少包括3.2.6和3.3.0版本),如果id不是采用底层DB自增主键赋值,不必考虑此问题 温馨提示:分布式DB环境下,DB主键一般会采用 ...
- Mybatis中selectKey 标签的作用,主键回填,找了好多文章没一个解释清楚。。
(1)没有配置selectKey 标签时候插入数据: <insert id="addUser" parameterType="model.User"> ...
- @MyBatis主键返回
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能. 比如在表的关联关系中,将数据插入主 ...
- mysql mybatis 主键id_MyBatis+MySQL 返回插入的主键ID-Go语言中文社区
需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法:在mapper中指定keyProperty属性,示例如下: insert into user(user ...
最新文章
- Flask系列06--(中间件)Flask的特殊装饰器 before_request,after_request, errorhandler
- ad16自动布线设置规则_设计 | 18种pcb设计特殊布线的画法与技巧!
- 安装composer以及laravel框架
- 文件查询之三:文件和目录的批量操作
- mojing SDK根据坐标进行移动
- 查询相关股票十档行情的方法
- 深度学习菜鸟的信仰地︱Supervessel超能云服务器、深度学习环境全配置
- 阿里云linux主机更新hostname
- bootstrap datetimepicker日期插件使用方法
- 企业从信息化角度解读智慧城市,难以根治城市病
- java生成流程图_java源代码转换为流程图
- 苹果电脑更改sd卡只读_SD内存卡禁止写入只读怎么办?另类SPI模式修复坏卡
- python 文本处理---英文文本预处理(简单易懂 全有注释)!!!!!使用正则表达式以及nltk库分词器双方法!
- 演讲的思路锻炼,逆向思维需要刻意练习吗?
- 目标跟踪常用算法——EKF篇
- CodeForces - 1538G Gift Set (二分)
- 这个Excel函数,推荐所有人学习!HR都说必须会
- 读取csv文件并将其转化为tsv文件
- opencv python教程简书_OpenCV-Python教程:57.图像修复
- 学习笔记 吴恩达 斯坦福大学公开课 :机器学习课程-1 机器学习的动机与应用