mybatis insert语句 返回插入的记录的主键值

Map<String,Object> paymentMp = new HashMap<String,Object>();
        paymentMp.put("amount", 12.0 );
        paymentMp.put("pay", Attributes.Payment_Pay_No);
        paymentMp.put("status", Attributes.Payment_Status_NoStatus);
        paymentMp.put("payCode", Attributes.Payment_PayCode_ZhiFuBao  );
        
        dao.save("SearchCarMapper.paymentInsertWithNoPay", paymentMp);
        
        System.out.println("--id is:"+paymentMp.get("id"));

<insert id="paymentInsertWithNoPay"  parameterType="java.util.HashMap" useGeneratedKeys="true" keyProperty="id" >
        
        <![CDATA[
            insert into payment set amount=#{amount},body="",outTradeNO="",paidAmount=0.0,pay=#{pay},payCode=#{payCode},returnMoney=0.0,returnReason=‘‘,
                    status=#{status},subject=‘‘,tradeNO=‘‘
        ]]>  
    </insert>

解释:

useGeneratedKeys:是否生成主键

keyProperty = "id" ,sql执行完毕后,传入参数HashMap  就会被自动附上id=新生成记录的id值

时间: 2024-12-30 13:47:07

mybatis insert语句 返回插入的记录的主键值的相关文章

mybatis中useGeneratedKeys用法--插入数据库后获取主键值

前言:今天无意在mapper文件中看到useGeneratedKeys这个词,好奇就查了下,发现能解决我之前插入有外键表数据时,这个外键获取繁琐的问题,于是学习敲DEMO记录    在项目中经常需要获取到插入数据的主键来保障后续操作,数据库中主键一般我们使用自增或者uuid()的方式自动生成 问题:对于uuid使用Java代码生成的方式还比较容易控制,然而使用数据库生成的主键,这样我们就需要将插入的数据再查询出来得到主键,某些情况下还可能查询到多条情况,这样就比较尴尬了. 那有什么办法来插入数据

jdbc连接mysql数据库执行insert语句后获取自增长的主键值

package cn.baokx; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import cn.baokx.db.DatabaseConnection0; public class Test1 { public static void main(

MyBatis 插入时返回刚插入记录的主键值

MyBatis 插入时返回刚插入记录的主键值 一.要求: 1.数据库表中的主键是自增长的,如:id: 2.获取刚刚插入的记录的id值: 二.源代码: 1.User.java 1 package cn.com.zfc.model; 2 3 public class User { 4 5 private Integer id; 6 private String name; 7 private String password; 8 9 public Integer getId() { 10 retur

IBatisNet:让insert操作返回新增记录的主键值

项目引用ibatis包: IBatisNet.Common.dll --文件版本1.6.2.0 IBatisNet.DataAccess.dll IBatisNet.DataMapper.dll 项目目录结构: 项目中使用ibatis做数据访问层已经有好长时间了.开发小组成员反映ibatis的insert操作返回的结果是null,这一点很是不爽. 其实,大家都是希望能够把新增记录的主键值返回出来. 上上周,大家有反编译ibatis的包,查看其实现原理,后来,又尝试其他方法,都没能给实现这个功能.

JDBC:元数据 &amp;&amp; 获取插入记录的主键值 &amp;&amp; _JDBC_处理 Blob

一.元数据 DatabaseMetaData类 DatabaseMetaData 类中提供了许多方法用于获得数据源的各种信息,通过这些方法可以非常详细的了解数据库的信息: getURL():返回一个String类对象,代表数据库的URL. getUserName():返回连接当前数据库管理系统的用户名. isReadOnly():返回一个boolean值,指示数据库是否只允许读操作. getDatabaseProductName():返回数据库的产品名称. getDatabaseProductV

MySQL 插入与自增主键值相等的字段 与 高并发下保证数据准确的实验

场景描述: 表t2 中 有 自增主键 id  和 字段v  当插入记录的时候 要求 v与id 的值相等(按理来说这样的字段是需要拆表的,但是业务场景是 只有某些行相等 ) 在网上搜的一种办法是 先获取自增ID SELECT max(id)+1 from t2 然后给v字段插入获取到的值 但是这样的做法在有删除行+调整过自增值的表中是不准确的 于是换个思路 从 information_schema 下手 读取表的信息 INSERT INTO `t2` VALUES ( NULL, ( SELECT

SQL 插入一条自定义主键值的数据

SET IDENTITY_INSERT [表名] ON insert into [表名](ID,Name) values(80,'北清论文网') SET IDENTITY_INSERT [表名] OFF 细节注意:如果直接这样写会报错 insert into [表名] values(80,'北清论文网') 打点小广告,感谢大家支持 [北清论文网][我要毕业啦论文网]

mybatis在oracle插入对象后返回主键值

在mybatis中默认插入一条记录后,返回值为插入记录的条数. 现在想获取插入记录后,当前被插入的记录的主键值,需在insert方法中添加如下代码: <insert id="insert" parameterType="cn.com.pm.ppm.model.UserInfo" >   <selectKey resultType="java.math.BigDecimal" order="BEFORE" ke

Mybatis 插入数据后返回主键值

Oracle中获取刚刚插入记录的主键值: <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo">     <selectKey resultType="java.math.BigDecimal" order="BEFORE" keyProperty="id">    SELECT U_US