本篇文章针对前面没有讲到的XML映射配置文件做一个补充说明。
1. selectKey自动生成主键
对于不支持自动生成主键列的数据库和可能不支持自动生成主键的 JDBC 驱动,MyBatis 有另外一种方法来生成主键。
这里有一个简单(也很傻)的示例,它可以生成一个随机 ID(不建议实际使用,这里只是为了展示 MyBatis 处理问题的灵活性和宽容度):
<insert id="insert">
<selectKey keyProperty="id" resultType="int" order="BEFORE">
SELECT FLOOR(RAND()*10000) AS id
</selectKey>
INSERT INTO `user`(`id`,`name`, `phone`, `birthday`) VALUES (#{id}, #{u.name}, #{u.phone}, #{u.birthday})
</insert>
单元测试:
@Test
void insert() throws ParseException {
User user = new User();
user.setName("啊随");
user.setPhone("11111111111"