mybatis 立即获取新插入的数据主键id

本文介绍如何在MyBatis中配置使用JDBC获取主键自增ID,并将其赋值到对象属性中,通过具体SQL语句展示useGeneratedKeys及keyProperty的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 <!-- 插入新的问题件 -->
    <!-- useGeneratedKeys="true"把新增加的主键赋值到自己定义的keyProperty(id)中 -->
    <insert id="insert" parameterType="jw.base.entity.WrongRecApply" useGeneratedKeys="true" keyProperty="id" >
        insert into tb_wrong_rec_apply (num, cid,
        `type`, `describe`, solution,
        seller_tel, seller_qq, seller_email,
        buyer_tel, buyer_qq, buyer_email,
        submit_time, update_time, r_wrong_id,
        ext1, ext2, img,state
        )
        values (#{num,jdbcType=VARCHAR}, #{cid,jdbcType=INTEGER},
        #{type,jdbcType=VARCHAR}, #{describe,jdbcType=VARCHAR}, #{solution,jdbcType=VARCHAR},
        #{sellerTel,jdbcType=VARCHAR}, #{sellerQq,jdbcType=VARCHAR}, #{sellerEmail,jdbcType=VARCHAR},
        #{buyerTel,jdbcType=VARCHAR}, #{buyerQq,jdbcType=VARCHAR}, #{buyerEmail,jdbcType=VARCHAR},
        #{submitTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{rWrongId,jdbcType=INTEGER},
        #{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{img,jdbcType=LONGVARBINARY},#{state,jdbcType=INTEGER}
        )
    </insert>
useGeneratedKeys="true" keyProperty="id"

关键地方就是上面的两个配置

useGeneratedKeys 取值范围true|false 默认值是:false。 含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。

keyProperty 取值为映射类主键属性的变量名

转载于:https://my.oschina.net/iyinghui/blog/1611787

下面是一个 C# 示例,演示了如何使用 Npgsql 连接到 PostgreSQL 数据库,并使用 MD5 和 SHA-256 算法对密码进行哈希处理: ```csharp using System; using System.Security.Cryptography; using System.Text; using Npgsql; class Program { static void Main(string[] args) { // 连接到 PostgreSQL 数据库 var connString = "Host=localhost;Username=myuser;Password=mypassword;Database=mydatabase"; using (var conn = new NpgsqlConnection(connString)) { conn.Open(); // 对密码进行 MD5 哈希处理 var md5 = MD5.Create(); var passwordBytes = Encoding.ASCII.GetBytes("mypassword"); var hashBytes = md5.ComputeHash(passwordBytes); var hashString = BitConverter.ToString(hashBytes).Replace("-", "").ToLower(); // 对哈希后的密码进行 SHA-256 哈希处理 var sha256 = SHA256.Create(); hashBytes = Encoding.ASCII.GetBytes(hashString); var saltBytes = Encoding.ASCII.GetBytes("mysalt"); var saltedHashBytes = new byte[hashBytes.Length + saltBytes.Length]; Buffer.BlockCopy(hashBytes, 0, saltedHashBytes, 0, hashBytes.Length); Buffer.BlockCopy(saltBytes, 0, saltedHashBytes, hashBytes.Length, saltBytes.Length); hashBytes = sha256.ComputeHash(saltedHashBytes); hashString = BitConverter.ToString(hashBytes).Replace("-", "").ToLower(); // 使用哈希后的密码连接到 PostgreSQL 数据库 conn.ConnectionString = $"Host=localhost;Username=myuser;Password={hashString};Database=mydatabase"; conn.Open(); Console.WriteLine("Connected to PostgreSQL!"); } } } ``` 在这个示例中,我们使用 MD5 算法对密码进行哈希处理,并使用 SHA-256 算法对哈希后的密码进行哈希处理。然后,我们使用哈希后的密码连接到 PostgreSQL 数据库。请注意,这里我们使用了一个简单的硬编码的 salt(盐),您可以根据需要修改这个值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值