Skip to content

Commit f62b969

Browse files
committed
fix java.util.ConcurrentModificationException bug.
1 parent ecdef36 commit f62b969

File tree

5 files changed

+139
-1
lines changed

5 files changed

+139
-1
lines changed

src/main/java/com/codingapi/simplemybatis/utils/MapCamelUtils.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.codingapi.simplemybatis.utils;
22

3+
import java.util.HashSet;
34
import java.util.Map;
45
import java.util.Set;
56

@@ -11,7 +12,7 @@
1112
public class MapCamelUtils {
1213

1314
public static void camelMap(Map<String, Object> item) {
14-
Set<String> keys = item.keySet();
15+
Set<String> keys = new HashSet<>(item.keySet());
1516
for (String key : keys) {
1617
String newKey = StringCharacterUtils.underlineToCamel(key);
1718
if (!newKey.equals(key)) {
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.codingapi.simplemybatis.entity;
2+
3+
public class DemoView {
4+
5+
private String content;
6+
private String title;
7+
private String createTime;
8+
9+
10+
public String getCreateTime() {
11+
return createTime;
12+
}
13+
14+
public void setCreateTime(String createTime) {
15+
this.createTime = createTime;
16+
}
17+
18+
public String getContent() {
19+
return content;
20+
}
21+
22+
public void setContent(String content) {
23+
this.content = content;
24+
}
25+
26+
public String getTitle() {
27+
return title;
28+
}
29+
30+
public void setTitle(String title) {
31+
this.title = title;
32+
}
33+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.codingapi.simplemybatis.query;
2+
3+
import com.codingapi.simplemybatis.entity.Demo;
4+
import com.codingapi.simplemybatis.parser.SqlParser;
5+
import com.codingapi.simplemybatis.parser.TableParser;
6+
import org.junit.jupiter.api.Test;
7+
8+
import java.lang.reflect.InvocationTargetException;
9+
10+
class QueryTest {
11+
12+
13+
private Demo createDemo(){
14+
Demo demo = new Demo();
15+
demo.setId(1L);
16+
demo.setName("test");
17+
demo.setFlag(false);
18+
demo.setTest("123");
19+
return demo;
20+
}
21+
22+
private SqlParser createSqlParser() throws InvocationTargetException, IllegalAccessException {
23+
Demo demo = createDemo();
24+
TableParser tableParser = new TableParser(demo.getClass());
25+
tableParser.parser(demo);
26+
return new SqlParser(tableParser.getTableInfo());
27+
}
28+
29+
30+
@Test
31+
void query() throws InvocationTargetException, IllegalAccessException {
32+
SqlParser sqlParser = createSqlParser();
33+
String sql = sqlParser.createQuery(QueryBuilder.Build()
34+
.where()
35+
.equal("name","hello")
36+
.and()
37+
.date("create_time","2020-01-12")
38+
.or()
39+
.in("id",1,2,3,4,5)
40+
.orderBy("name desc")
41+
.builder());
42+
System.out.println(sql);
43+
}
44+
45+
46+
@Test
47+
void queryView() throws InvocationTargetException, IllegalAccessException {
48+
Query query = QueryBuilder.Build()
49+
.select("select * from t_demo d join t_test t on d.id = t.demo_id ")
50+
.where()
51+
.equal("d.name","hello")
52+
.and()
53+
.date("d.create_time","2020-01-12")
54+
.or()
55+
.in("d.id",1,2,3,4,5)
56+
.orderBy("d.name desc")
57+
.builder();
58+
QuerySqlBuilder querySqlBuilder = new QuerySqlBuilder(query.getSelect(),null,query);
59+
String sql = querySqlBuilder.getSql();
60+
System.out.println(sql);
61+
}
62+
63+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.codingapi.simplemybatis.utils;
2+
3+
import com.codingapi.simplemybatis.entity.DemoView;
4+
import org.junit.jupiter.api.Test;
5+
6+
import java.util.HashMap;
7+
import java.util.Map;
8+
9+
import static org.junit.jupiter.api.Assertions.*;
10+
11+
class MapBeanUtilsTest {
12+
13+
@Test
14+
void toBean() {
15+
Map<String,Object> map = new HashMap<>();
16+
map.put("create_time","20200202");
17+
map.put("name","123");
18+
MapCamelUtils.camelMap(map);
19+
DemoView demoView = MapBeanUtils.toBean(DemoView.class,map);
20+
assertTrue("20200202".equals(demoView.getCreateTime()),"creatTime not val");
21+
}
22+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.codingapi.simplemybatis.utils;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import java.util.HashMap;
6+
import java.util.Map;
7+
8+
import static org.junit.jupiter.api.Assertions.assertTrue;
9+
10+
class MapCamelUtilsTest {
11+
12+
@Test
13+
void camelMap() {
14+
Map<String,Object> map = new HashMap<>();
15+
map.put("title_name","123");
16+
MapCamelUtils.camelMap(map);
17+
assertTrue("123".equals(map.get("titleName")),"titleName not value");
18+
}
19+
}

0 commit comments

Comments
 (0)