实际一点直接给你们业务逻辑,根据自己的需求去修改 (不过首先得拼接出来sql语句)
String sql = CasesObjService.buildATablePgSQL(maps);
这个就是我拼接出来的sql 创建表的sql语句 上面还需要这几个
public void init(List<Map>maps) throws SQLException, ClassNotFoundException, CsosApiException {
//解析map数据 map对应着一个一个的字段
String sql = CasesObjService.buildATablePgSQL(maps);
String newSql = tableNewList(maps);
//将字段全都转为小写
String lowerCaseSql = newSql.toLowerCase(Locale.ROOT);
List<String> stringList = Arrays.asList(lowerCaseSql.split(","));
List<String> newSqlList = new ArrayList<>(stringList);
newSqlList.add("_id");
//从这里开始!!!!
//连接数据库
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, userName, password);
Statement stat = conn.createStatement();
//---------------------
//获取数据库表名
String tableName = null;
String[] split = sql.split("\"");
for (int i = 0; i < split.length; i++) {
tableName = split[1];
}
log.info("数据库的表名是:{}",tableName);
//---------------------
ResultSet rs = conn.getMetaData().getTables(null, null, tableName, null);
// 判断表是否存在,如果存在则什么都不做,否则创建表
// 先判断是否纯在表名,有则先删除表在创建表
if (rs.next()) {
//这里可以去写 表存在而做的操作
} else {
//创建表
stat.executeUpdate(sql);
log.info("代表没有这张表,直接创建!");
}
// 释放资源
stat.close();
conn.close();
//这里结束!!
}