这是一条插入语句:

 
其目的就是为了将这个role对象插入到数据库, 然后他会根据getGeneratedKeys来自动回填id.
但是, 实际工作往往不是我们想象的那么简单,需要根据一些特殊的关系设置主键id 的值。
假设我们取消表trole 的id自增的规则,我们的要求是:如果表trole 没有记录,则我们
需要设置 id=1,否则我们就取最大id加 2,来设置新的主键,对于一些特殊要求,MyBatis
也提供了应对方法。
使用如下方法:


        在 MyBatis 中,<selectKey> 标签用于在执行插入语句(insert)后获取数据库生成的主键值或者其他由数据库生成的值。这在需要将插入生成的值立即用于后续操作时非常有用。以下是 <selectKey> 标签的详细用法:
<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
    <!-- 插入语句 -->
    INSERT INTO users (username, password)
    VALUES (#{username}, #{password})
    
    <selectKey keyProperty="id" resultType="int" order="AFTER">
        SELECT LAST_INSERT_ID()
    </selectKey>
</insert>
 
-  
在
<insert>标签中使用<selectKey>:<insert>标签定义了插入操作,通常会使用parameterType指定参数类型,并设置useGeneratedKeys="true"来告诉 MyBatis 使用数据库生成的键。- 在 
<insert>内部,可以使用<selectKey>标签来获取生成的键值。 
 -  
keyProperty属性:keyProperty指定了插入操作后,将生成的键值设置到哪个属性中。这个属性通常是你的实体类中对应的字段。
 -  
resultType属性:resultType指定了返回的结果类型。通常是主键的类型,比如int、long等。
 -  
order属性:order属性指定了<selectKey>的执行顺序,可以是BEFORE或AFTER。在大多数情况下,使用AFTER,表示在插入语句执行完成后执行<selectKey>来获取生成的键值。
 -  
SQL 语句:
- 在 
<selectKey>标签内部,可以编写 SQL 查询语句来获取生成的键值。在 MySQL 中,通常使用SELECT LAST_INSERT_ID()来获取最后插入行的自动生成的 ID。不同数据库的获取方式可能会有所不同,需要根据具体的数据库类型和版本进行调整。 
 - 在 
 



















