Skip to content

Commit bedfd02

Browse files
author
hewei
committed
upsert获取自增主键返回测试用例补充
1 parent fbb63fe commit bedfd02

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

src/test/java/com/itfsw/mybatis/generator/plugins/UpsertPluginTest.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public void reloadProject(SqlSession sqlSession, ClassLoader loader, String pack
8282

8383
// sql
8484
String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "upsert", tb.getObject());
85-
Assert.assertEquals(sql, "insert into tb (id, field1, field2) values (10, 'ts1', 5) on duplicate key update id = 10, field1 = 'ts1', field2 = 5");
85+
Assert.assertEquals(sql, "insert into tb ( id, field1, field2 ) values ( 10, 'ts1', 5 ) on duplicate key update id = 10, field1 = 'ts1', field2 = 5");
8686
Object result = tbMapper.invoke("upsert", tb.getObject());
8787
Assert.assertEquals(result, 1);
8888

@@ -92,6 +92,11 @@ public void reloadProject(SqlSession sqlSession, ClassLoader loader, String pack
9292
ResultSet rs = DBHelper.execute(sqlSession, "select * from tb where id = 10");
9393
rs.first();
9494
Assert.assertEquals(rs.getInt("field2"), 20);
95+
96+
// 自增主键
97+
tb.set("id", null);
98+
tbMapper.invoke("upsert", tb.getObject());
99+
Assert.assertEquals(tb.get("id"), 11L);
95100
}
96101
});
97102
}
@@ -172,6 +177,11 @@ public void reloadProject(SqlSession sqlSession, ClassLoader loader, String pack
172177
Object result = tbMapper.invoke("upsertSelective", tb.getObject());
173178
Assert.assertEquals(result, 1);
174179

180+
// 自增主键
181+
tb.set("id", null);
182+
tbMapper.invoke("upsertSelective", tb.getObject());
183+
Assert.assertEquals(tb.get("id"), 21L);
184+
175185
// 2. blobs
176186
ObjectUtil TbBlobsMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbBlobsMapper")));
177187

@@ -211,7 +221,7 @@ public void reloadProject(SqlSession sqlSession, ClassLoader loader, String pack
211221

212222
// sql
213223
String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "upsertByExample", tb.getObject(), TbExample.getObject());
214-
Assert.assertEquals(sql, "update tb set id = 50, field1 = 'ts1', field2 = 5 WHERE ( id = '50' ) ; insert into tb (id, field1, field2) select 50, 'ts1', 5 from dual where not exists ( select 1 from tb WHERE ( id = '50' ) )");
224+
Assert.assertEquals(sql, "update tb set id = 50, field1 = 'ts1', field2 = 5 WHERE ( id = '50' ) ; insert into tb ( id, field1, field2 ) select 50, 'ts1', 5 from dual where not exists ( select 1 from tb WHERE ( id = '50' ) )");
215225
tbMapper.invoke("upsertByExample", tb.getObject(), TbExample.getObject());
216226

217227

src/test/resources/scripts/UpsertPlugin/init.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ SET FOREIGN_KEY_CHECKS=0;
2020
-- ----------------------------
2121
DROP TABLE IF EXISTS `tb`;
2222
CREATE TABLE `tb` (
23-
`id` bigint(20) NOT NULL COMMENT '注释1',
23+
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '注释1',
2424
`field1` varchar(255) DEFAULT NULL COMMENT '注释2',
2525
`field2` int(11) DEFAULT NULL,
2626
PRIMARY KEY (`id`)
27-
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
27+
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2828

2929
-- ----------------------------
3030
-- Records of tb

src/test/resources/scripts/UpsertPlugin/mybatis-generator.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@
4242
<javaClientGenerator targetPackage="" targetProject="" type="XMLMAPPER"/>
4343

4444
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 要自动生成的表 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
45-
<table tableName="tb"/>
45+
<table tableName="tb">
46+
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
47+
</table>
4648
<table tableName="tb_keys"/>
4749
<table tableName="tb_single_blob"/>
4850
<table tableName="tb_blobs"/>

0 commit comments

Comments
 (0)