MySql 的 Mybatis 序列生成器

Posted

技术标签:

【中文标题】MySql 的 Mybatis 序列生成器【英文标题】:sequence generator for Mybatis with MySql 【发布时间】:2012-06-28 20:51:55 【问题描述】:

我是 Mybatis 新手,正在尝试用 Spring 支持实现 Mybatis。

我必须在表中插入一条记录,但 Ibatis 是否有像 hibernate 那样的序列生成器?

如果不必手动执行,例如 sequence.nextVal?我不喜欢。

如有任何建议,我们将不胜感激。

谢谢

【问题讨论】:

通过使用 PK 的自动增量解决了它。 【参考方案1】:

如果你自己声明了映射器,你必须这样做:

<insert id="insert" parameterType="com.your.app.Product">
    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
        SELECT LAST_INSERT_ID()
    </selectKey>
    INSERT INTO product (name, value)
    VALUES (#name,jdbcType=VARCHAR, #value,jdbcType=DOUBLE)
</insert>

但是,如果您使用的是 MyBatis 生成器,您可以通过在 table 标记中使用 generatedKey 标记来做到这一点,它会生成您需要的映射器。

例子:

<table tableName="product" alias="product">
    <generatedKey column="id" sqlStatement="mysql" identity="true" />
</table>

【讨论】:

以上是关于MySql 的 Mybatis 序列生成器的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis自动生成key值

MyBatis Generator生成DAO——序列化

MyBatis生成序列ID

mybatis plus mysql 代码生成器 示例demo

MyBatis,如何获取插入的自动生成密钥? [MySql]

使用Mybatis动态生成MySQL表