Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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 = newHashSet<>(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)

AltStyle によって変換されたページ (->オリジナル) /