MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects, 普通的 Java 对象)映射成数据库中的记录。
MySQL 是一种关系型数据库管理系统,广泛应用于 Web 应用程序中。在 MySQL 中,主键是用于唯一标识表中每一行数据的字段。
在 MyBatis 中,可以通过配置来让 MySQL 自动生成主键。这通常涉及到两个关键的概念:
AUTO_INCREMENT
来实现。问题:在 MyBatis 中配置 MySQL 自动生成主键时,发现主键值没有按预期自增。
原因:
AUTO_INCREMENT
。解决方法:
AUTO_INCREMENT
。例如,在创建表时可以这样定义:CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
<insert id="insertUser" parameterType="com.example.User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user (username) VALUES (#{username})
</insert>
注意 useGeneratedKeys="true"
和 keyProperty="id"
的设置。
领取专属 10元无门槛券
手把手带您无忧上云