成人黄色小说 java剧本之导出数据表SQL-CSDN博客
发布日期:2025-01-09 10:40 点击次数:125
导出数据表SQL,相似咱们会使用第三方器具,如Navicat等,导出可保存为剧本成人黄色小说,可重迭实施,格外直率了。若是不条款剧本无邪性,使用器具诚然更香了。
第三方包<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.5</version> </dependency>数据库成立
创建db.setting文献,放 /resources 文献夹即可,维持大皆据源,界说多个 [xxx] 即可
## 数据库贯穿信息 [test-db-dev] url = jdbc:mysql://xx.xxx.xxx.xxx:3306/test_db user = root pass = xxxxxx剧本
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.io.file.FileWriter; import cn.hutool.core.text.StrBuilder; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.db.Db; import cn.hutool.db.DbUtil; import cn.hutool.db.Entity; import cn.hutool.db.ds.DSFactory; import lombok.Data; import lombok.SneakyThrows; import lombok.experimental.Accessors; import java.io.File; import java.util.List; /** * 生成的sql:删除表 + 创建表 + insert * * @author jason */ public class CreateAndInsertSqlJob { private static final String FILE_NAME = "/data/sql/【系统生成】删除表+创建表+insert.sql"; /** * 需要生成的表 */ private static final List<TempBean> CONFIG_LIST = CollectionUtil.newArrayList( new TempBean().setTable("table"), new TempBean().setTable("table").setCreate(false) ); /** * 不需要生成的字段:如编造列 */ private static final List<String> filedIgnoreList = CollectionUtil.newArrayList( "", "", "" ); public static void main(String[] args) { CreateAndInsertSqlJob.start("test-db-dev", "test_db"); } /** * 生成 sql * * @param dbSetting 成扬名 如成立:[test-db-dev],这里传 test-db-dev * @param dbName 数据库名 */ @SneakyThrows public static void start(String dbSetting, String dbName) { Db db = DbUtil.use(DSFactory.get(dbSetting)); FileWriter sqlFileWriter = FileWriter.create(new File(FILE_NAME)); sqlFileWriter.write(""); sqlFileWriter.append("USE " + dbName + ";\n"); sqlFileWriter.append("SET NAMES utf8mb4;\n"); sqlFileWriter.append("SET FOREIGN_KEY_CHECKS = 0;\n"); for (TempBean tempBean : CONFIG_LIST) { String table = tempBean.table; sqlFileWriter.append("\n\n\n"); if (tempBean.create) { // DROP TABLE sqlFileWriter.append("DROP TABLE IF EXISTS `" + table + "`;\n"); // CREATE TABLE Entity createTableEntity = db.queryOne("SHOW CREATE TABLE " + table); sqlFileWriter.append((String) createTableEntity.get("Create Table")); sqlFileWriter.append(";\n"); } // 手脚立,是否需要insert语句 if (tempBean.insert) { // INSERT INTO List<Entity> dataEntityList = db.query("SELECT * FROM " + table); for (Entity dataEntity : dataEntityList) { StrBuilder field = StrBuilder.create(); StrBuilder data = StrBuilder.create(); dataEntity.forEach((key, valueObj) -> { String valueStr = StrUtil.toStringOrNull(valueObj); // 手脚立,某些列不需要 if (filedIgnoreList.contains(key)) { return; } field.append("`").append(key).append("`").append(", "); if (ObjectUtil.isNotNull(valueStr)) { // 值包含 ' 转义惩办 valueStr = StrUtil.replace(valueStr, "'", "\\'"); // boolean 值惩办 if (StrUtil.equals("true", valueStr)) { data.append("b'1'"); } else if (StrUtil.equals("false", valueStr)) { data.append("b'0'"); } else { data.append("'").append(valueStr).append("'"); } } else { data.append("NULL"); } data.append(", "); }); sqlFileWriter.append("INSERT INTO `" + table + "`("); String fieldStr = field.subString(0, field.length() - 2); sqlFileWriter.append(fieldStr); sqlFileWriter.append(") VALUES ("); String dataStr = data.subString(0, data.length() - 2); sqlFileWriter.append(dataStr); sqlFileWriter.append(");\n"); } } } sqlFileWriter.append("\n\n\n"); sqlFileWriter.append("SET FOREIGN_KEY_CHECKS = 1;\n"); } @Data @Accessors(chain = true) static class TempBean { /** * 表名 */ public String table; /** * 是否需要 create 建表语句,默许需要 */ public Boolean create = true; /** * 是否需要 insert 语句,默许需要 */ public Boolean insert = true; } }生成文献
图片
波多野结衣 女同 本站仅提供存储工作,总共践诺均由用户发布,如发现存害或侵权践诺,请点击举报。