java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > mybatis insert 返回自增主键

mybatis insert 返回自增主键的实现示例

作者:薄荷街的兔比先生

mybatis 在新增之后怎么也获取不到自增主键,本文主要介绍了mybatis insert 返回自增主键的实现示例,具有一定的参考价值,感兴趣的可以了解一下

需求

mybatis 在新增之后怎么也获取不到自增主键,通过不段的摸索原来是姿势不对,记录一下希望能帮助下一位采坑的同学

方式一

映射方式

<-- xml 映射的方式 -->
<insert id="insert" parameterType="com.kebi.User" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
	INSERT INTO user (
		username, password
	) VALUES (
		#{username}, #{password}
	)
</insert>
属性描述
useGeneratedKeys为 true 则返回主键的值
keyProperty实体类中属性名
keyColumn数据库主键字段名 如果和实体属性名一样可以不用写
private UsertMapper userMapper;

User user = new User();
user.setUserName("name");
user.setPassWord("123")

userMapper.insert(user);

System.out.println("获取自增主键:"+ user.getId());

方式二

selectKey 的方式

<-- xml 映射的方式 -->
<insert id="INSERT" parameterType="com.kebi.User">
    <selectKey resultType="int" order="AFTER" keyProperty="id" keyColumn="id">
        SELECT LAST_INSERT_ID()
    </selectKey>
    INSERT INTO users (
    	username, password
    ) VALUES (
    	#{username}, #{password}
    )
</insert>
属性描述
resultType结果类型
keyProperty实体类中属性名
keyColumn数据库主键字段名
order这可以被设置为 BEFORE 或 AFTER。如果设置为 BEFORE,那么它会首先选择主键,设置 keyProperty 然后执行插入语句。如果设置为 AFTER,那么先执行插入语句,然后是 selectKey 元素 - 这和像 Oracle 的数据库相似,在插入语句内部可能有嵌入索引调用。
statementTypeMyBatis 支持 STATEMENT、PREPARED 和 CALLABLE 语句的映射类型,分别代表 PreparedStatement 和 CallableStatement 类型

到此这篇关于mybatis insert 返回自增主键的实现示例的文章就介绍到这了,更多相关mybatis insert 返回自增主键内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:
阅读全文