<!-- 保存项目信息 --> <insert id="saveItem" parameterType="pd" useGeneratedKeys="true" keyProperty="item_id"> <selectKey resultType="int" order="AFTER" keyProperty="item_id">…
有时,我们需要往一张表插入一条记录,同时返回主键ID值. 假定主键ID的值都是通过对应表的SEQUENCE来获得,然后进行ID赋值 这里有几种情况需要注意: 1)如果建表语句含有主键ID的触发器,通过触发器来实现主键ID的自增,实现方式如下: INSERT INTO GP_MONTH_BILL ( MONTH, BONUS_VALUE, CUR_WAY, CUR_TIME, STATUS, IS_USE, CREATE_TIME) VALUES ( CUR_MONTH, CUR_BONUS_VA…
我们都知道Mybatis在插入单条数据的时候有两种方式返回自增主键: 1.对于支持生成自增主键的数据库:增加 useGenerateKeys和keyProperty ,<insert>标签属性. 2.不支持生成自增主键的数据库:使用<selectKey>. 但是怎么对批量插入数据返回自增主键的解决方式网上看到的还是比较少,至少百度的结果比较少. Mybatis官网资料提供如下: First, if your database supports auto-generated key…
<!-- 插入数据:返回记录的id值 --> <insert id="insertOneTest" parameterType="org.chench.test.mybatis.model.Test" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> insert into test(name,descr,url,cre…
有时候插入记录之后需要使用到插入记录的主键,通常是再查询一次来获取主键,但是MyBatis插入记录时可以设置成返回主键id,简化操作,方法大致有两种. 对应实体类: public class User { private int userId; private String userName; private int userAge; } 对应DAO类: public interface UserMapper { int save(User user); } 方法一.使用useGenerated…
目录 添加单一记录时返回主键ID 在映射器中配置获取记录主键值 获取新添加记录主键字段值 添加批量记录时返回主键ID 获取主键ID实现原理 添加记录后获取主键ID,这是一个很常见的需求,特别是在一次前端调用中需要插入多个表的场景. 除了添加单条记录时获取主键值,有时候可能需要获取批量添加记录时各记录的主键值,MyBatis从3.3.1版本开始支持批量添加记录并返回各记录主键字段值. 添加单一记录时返回主键ID 添加一条记录时返回主键值,在xml映射器和接口映射器中都可以实现. 在映射器中配置获取…
参考:mybatis添加记录时返回主键id 场景 有些时候我们在添加记录成功后希望能直接获取到该记录的主键id值,而不需要再执行一次查询操作.在使用mybatis作为ORM组件时,可以很方便地达到这个目的.鉴于mybatis目前已经支持xml配置和注解2种方式,所以分别给予详细介绍. 数据表设计: drop table if exists `test`; create table `test` ( `id` ) NOT NULL AUTO_INCREMENT COMMENT 'ID', // 主…
先说一下没有注解的 先给出实体类: public class City { private int city_id; private String city_name; public int getCity_id() { return city_id; } public void setCity_id(int city_id) { this.city_id = city_id; } public String getCity_name() { return city_name; } public…
需求:使用批量插入后,需要insert之后的每一条记录的ID 注意:Mybatis3.3.1的版本以后支持批量插入后返回主键ID 示例: domin.java: public class User { private int d; private String name; private String pwd; public long getId() { return id; } public void setId(long id) { this.id = id; } public String…
以前只用过在insert完以后利用select @@IDENTITY返回主键ID,最近在做微信公众平台,遇到一个需求是在帮绑定万微信openid后自动完成登陆,这就需要update以后返回主键ID,查了一些资料找到了output这一解决方案. update [SmartPromoter] set [Name]='aaaaaaaa' output DELETED.[ID] where [Mobile]='18669698888' 经测试,insert.update.delete都可以返回主键ID…
<insert id="insertCharge" parameterType="com.bb.bean.Rechargerecord"> <selectKey keyProperty="id" resultType="java.lang.Integer" order="AFTER"> select LAST_INSERT_ID() </selectKey> INSERT…
关于Sequence主键的数据库来说,如: <insert id="add" parameterType="vo.Category"> <selectKey resultType="java.lang.Short" order="BEFORE" keyProperty="id"> SELECT SEQ_TEST.NEXTVAL FROM DUAL </selectKey>…
需求: mybatis  在添加记录时需要获取到记录主键id id=0 无法获取主键id的值 在插入方法中添加如下属性和相应的值 <insert useGeneratedKeys="true" keyProperty="你的实体类id” keyColumn="你的表id"></insert> 注意: useGeneratedKeys:必须设置为true,否则无法获取到主键id. (仅对insert和update有用)这会令mybat…
方法一: $info = DB::table('表名')->insertGetId(['imgName' => $fileName]);//图片名入库后返回添加数据行的主键ID 方法二:(适用于Mysql数据库) 执行原生SQL,然后返回新添加的主键ID值 语法:INSERT INTO 表名(字段1, 字段2, 字段3) VALUES (值1, 值2, 值3);SELECT @@IDENTITY AS returnName; #返回刚插入的数据的主键ID并起别名为 “returnName” 栗…
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 实体类 public class Book { private Integer bookID; private String bookName; private String bookAuthor; private Integer bookPrice; public Book() { } public Integer getBookID() { return this.bookID; } public vo…
记录解决的过程,这里就不搬砖了. 1.获取insert后的主键id 原文链接:http://www.cnblogs.com/fsjohnhuang/p/4078659.html 2.insert后返回主键是1,如何拿到insert后返回的主键 原文链接:http://blog.csdn.net/prevention/article/details/32825081…
1.对应xml文件<insert id="insert" parameterType="DetectStandard"useGeneratedKeys="true" keyColumn="id" keyProperty="id"> insert into t_detect_standard <trim prefix="(" suffix=")" su…
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过Mapper.XML配置的方式来完成这个功能. 在 INSERT 标签 添加 useGeneratedKeys="true" keyProperty="id" 即可: <insert id="insertFeedback" useGeneratedKeys="true" keyProp…
Mybatis insert语句书写 <insert id="insertSelective" useGeneratedKeys="true" keyProperty="fileId" parameterType="fileAlias" > insert into t_file_info ... </insert> useGeneratedKeys:是否生成主键 重点是写上 keyProperty =…
网上搜了好多文章照着弄都返回不了主键给map, 实践证明要在传入的map参数里写回插入的主键,要这样写 <selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="col.id">  // keyProperty要指定为map参数的  名称.写回的键名  才行            SELECT SEQ_LOG.nextval AS id FROM DUA…
原本的sql语句为: <insert id="xx" parameterType="com.hrt.partner.model.ShopInsert"> *********** </insert> 需要在其中加入2个属性如下: <insert id="xx" useGeneratedKeys="true" keyProperty="teamId"> ***********…
<insert id="insert" useGeneratedKeys="true" keyProperty="u_Id" parameterType="User" > insert into User ... </insert> 其中 ①.useGeneratedKeys:是否生成主键 ②.keyProperty:实体类对应的ID属性 sql执行完毕后,user对象里的id就会自动赋值…
<!--新增账号和权限的关联关系--><insert id="save" useGeneratedKeys="true" keyProperty="id" keyColumn="id">> INSERT INTO auth_account_priority_relationship(account_id,priority_id,gmt_create,gmt_modified) VALUES( #{…
代码如下: @Override public void saveTopicResource(TopicResourceModel model, Integer userId) { TopicResource topicResource = new TopicResource(); BeanUtils.copyProperties(model, topicResource); int result=0; if (model.getResId() == null) { topicResource.s…
实际项目中总是会遇到各种时间计算查询等等许多时候是特别麻烦前阵子公司有个需求大致是要查询当前日期与数据库存储日期之差,本来写了个工具类调用的但是最后觉得这样不好就想着能不能用函数解决,没想到还真有这里分享下,sql如下: select datediff('2017-04-21',(select now())) as days;日期相减得到天数,简单吧,获取当前日期其实也是有函数的,但是有的mysql版本不支持具体各位自己尝试,还有一个就是日期格式查询处理也很简单DATE_FORMAT(     …
MyBatis如果使用useGeneratedKeys去生成自增列会造成不成功,因为官方提供只支持这些数据库:mybatis generatedkeys,那么如果要用在oracle和postgresql上,就必须知道它们的自增列是通过序列进行完成的,所以根据这个思路可以在插入的时候调用序列获取下一个值,然后再插入,序列的问题不会有并发问题,因为每次操作都必须在同一个session中,每个session调用序列都是隔离的.那么可以通过selectKey来调用序列. 第一种: long saveJo…
有时候使用mybatis插入数据后,需要用到记录在数据库中的自增id,可以利用keyProperty来返回,赋值给实体类中的指定字段. 单条记录插入并返回 First, if your database supports auto-generated key fields (e.g. MySQL and SQL Server), then you can simply set useGeneratedKeys="true" and set the keyProperty to the…
insert into userinfo(UserName,UserPass,RegTime,email)values('a','b',GETDATE(),'123@qq.com');select @@IDENTITY; select * from student; select fid,ISNULL(fname,'为空') from student ;…
<insert id="add" parameterType="com.dsa.core.base.model.ProductSync">        insert into tm_sync_product(            <if test="productId!=null">product_id,</if>            <if test="mainLimit!=null&q…
需要在insert方法中添加 <insert id="insertSelective" parameterType="com.midou.ott.model.MDActivity" useGeneratedKeys="true" keyProperty="id"> 加上上面红色部分,keyProperty中的id,是MDActivity对象的中的Id 使用时直接从MDActivity对象中获取到ID…