jQuery火箭图标返回顶部代码

mybatis 操作 mysql 动态创建数据表

Map 数据一般是根据需求生成的,例如 map.put("ticketId",176),map.put("ticketName","测试工单")
这样遍历处理的 Map 生成的表包含的字段:id ticket_id ticket_name

//动态创建数据表,由于数据表字段是下划线,所以要把驼峰的 map 中的 key 先转为下划线
HashMap<String, Object> transitionMap = humpToUnderline(ticketIdAndRemark.get(0));
StringBuilder stringBuilderHashKey = new StringBuilder();

// 获取 key
for (HashMap.Entry<String, Object> entry : transitionMap.entrySet()) {
if (entry.getKey().contains("remark")) {
stringBuilderHashKey.append("`").append(entry.getKey()).append("`").append("longtext DEFAULT NULL").append(",");
} else {
stringBuilderHashKey.append("`").append(entry.getKey()).append("`").append("varchar(200) DEFAULT NULL").append(",");
}
}

String tableString = stringBuilderHashKey.toString();


//判断表是否存在,存在:先删除在创建,不存在:创建表
int count = reportAllSqlMapper.existTable(tableName);
if (0 != count) {
//TODO 不一定要截断表,目前是截断。考虑点:表数据不截断就会太大了。到时候只能分批处理,或者按时间处理
reportAllSqlMapper.dropTable(tableName);
}
reportAllSqlMapper.createTable(tableName, tableString);

 
/**
* map 中的 key 由驼峰命名转为下划线
*/
public HashMap<String, Object> humpToUnderline(HashMap<String, Object> map) {

HashMap<String, Object> transitionMap = new HashMap<>(16);
map.forEach((k, v) -> transitionMap.put(StrUtil.toUnderlineCase(k), v));
return transitionMap;
}
 
posted @ 2021-12-01 15:13  天下没有收费的bug  阅读(586)  评论(0编辑  收藏  举报