From 166deadbea1faa699d36daf20803384219fdbf92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=80=80Every=28=E5=9D=8F=EF=BC=87=E5=B0=8F=E9=98=BF?= =?UTF-8?q?=E5=93=A5=29?= <330284204@qq.com> Date: Thu, 17 Apr 2025 14:53:56 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=AF=B9=E8=8E=B7=E5=8F=96=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E8=AF=AD=E8=A8=80=E5=8F=8A=E4=BF=AE=E6=94=B9=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E8=BF=9B=E8=A1=8C=E4=BF=AE=E6=94=B9=20=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E4=B8=8D=E5=81=9C=E5=9C=B0=E5=88=B7=E5=BA=93=202?= =?UTF-8?q?=E3=80=81=E5=B0=86sql=E4=B8=AD=E7=9A=84=E6=96=B9=E8=A8=80?= =?UTF-8?q?=E6=8F=90=E5=8F=96=E5=88=B0=E5=85=A8=E5=B1=80=E5=B8=B8=E9=87=8F?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E5=B0=86=E5=8F=98=E9=87=8F=E6=94=BE=E5=88=B0?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=EF=BC=8C=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5=E4=BD=BF=E7=94=A8=E8=84=9A=E6=9C=AC=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E6=8B=BC=E6=8E=A5=20=E4=BB=A5=E9=80=82=E9=85=8D?= =?UTF-8?q?=E4=B8=8D=E5=90=8C=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 +++ src/main/java/com/cym/config/InitConfig.java | 6 +-- .../java/com/cym/config/SQLConstants.java | 39 ++++++++++++++++ src/main/java/com/cym/config/ViewConfig.java | 1 + .../controller/adminPage/ConfController.java | 8 ++-- .../controller/adminPage/LoginController.java | 2 + .../java/com/cym/service/ServerService.java | 4 +- .../java/com/cym/service/SettingService.java | 7 +++ .../java/com/cym/sqlhelper/bean/Sort.java | 3 +- .../cym/sqlhelper/config/DataSourceEmbed.java | 45 ++++++++++++++----- .../cym/sqlhelper/utils/ConditionWrapper.java | 3 +- .../sqlhelper/utils/ImportOrExportUtil.java | 8 ++-- .../com/cym/sqlhelper/utils/JdbcTemplate.java | 12 +++-- .../com/cym/sqlhelper/utils/SnowFlake.java | 2 +- .../com/cym/sqlhelper/utils/SqlHelper.java | 42 ++++++++--------- .../com/cym/sqlhelper/utils/SqlUtils.java | 18 +++++--- src/main/java/com/cym/utils/AuthUtils.java | 4 +- src/main/java/com/cym/utils/Crypt.java | 2 +- src/main/java/com/cym/utils/JarUtil.java | 2 +- src/main/java/com/cym/utils/NetWorkUtil.java | 2 +- src/main/java/com/cym/utils/OshiUtils.java | 2 +- src/main/java/com/cym/utils/TelnetUtils.java | 2 +- src/main/resources/app.yml | 37 +++++++++++---- 23 files changed, 180 insertions(+), 77 deletions(-) create mode 100644 src/main/java/com/cym/config/SQLConstants.java diff --git a/pom.xml b/pom.xml index 1f3567ad..f30be35d 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,7 @@ UTF-8 UTF-8 1.8 + 42.7.2 @@ -74,6 +75,11 @@ 9.1.0 + + org.postgresql + postgresql + ${postgresql} + com.warrenstrange googleauth diff --git a/src/main/java/com/cym/config/InitConfig.java b/src/main/java/com/cym/config/InitConfig.java index 6a8e0738..d1f08484 100644 --- a/src/main/java/com/cym/config/InitConfig.java +++ b/src/main/java/com/cym/config/InitConfig.java @@ -9,7 +9,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Random; import java.util.Set; import org.noear.solon.annotation.Component; @@ -31,7 +30,6 @@ import com.cym.sqlhelper.utils.JdbcTemplate; import com.cym.sqlhelper.utils.SqlHelper; import com.cym.utils.EncodePassUtils; import com.cym.utils.MessageUtils; -import com.cym.utils.NginxUtils; import com.cym.utils.SystemTool; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; @@ -97,7 +95,7 @@ public class InitConfig { for (Admin admin : admins) { String randomPass = RandomUtil.randomString(8); - System.out.println(m.get("adminStr.name") + ":" + admin.getName() + " " + m.get("adminStr.pass") + ":" + randomPass); + //System.out.println(m.get("adminStr.name") + ":" + admin.getName() + " " + m.get("adminStr.pass") + ":" + randomPass); admin.setAuth(false); // 关闭二次验证 admin.setPass(EncodePassUtils.encode(randomPass)); sqlHelper.updateById(admin); @@ -268,7 +266,7 @@ public class InitConfig { Table table = clazz.getAnnotation(Table.class); if (table != null) { try { - List> list = jdbcTemplate.queryForList("SELECT * FROM `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "`"); + List> list = jdbcTemplate.queryForList("SELECT * FROM " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX); map.put(clazz.getName(), sqlHelper.buildObjects(list, clazz)); } catch (Exception e) { diff --git a/src/main/java/com/cym/config/SQLConstants.java b/src/main/java/com/cym/config/SQLConstants.java new file mode 100644 index 00000000..7fc95331 --- /dev/null +++ b/src/main/java/com/cym/config/SQLConstants.java @@ -0,0 +1,39 @@ +package com.cym.config; + +import cn.hutool.script.ScriptRuntimeException; +import cn.hutool.script.ScriptUtil; + +import javax.script.SimpleBindings; +import java.util.HashMap; +import java.util.Map; + +public class SQLConstants { + // Table names + public static String TABLE_PREFIX = "`"; + public static String TABLE_SUFFIX = "`"; +// public static String TABLE_PREFIX = "\""; +// public static String TABLE_SUFFIX = "\""; + + // Column names + public static String COLUMN_PREFIX = "`"; + public static String COLUMN_SUFFIX = "`"; +// public static String COLUMN_PREFIX = "\""; +// public static String COLUMN_SUFFIX = "\""; + + // Common columns + public static String ID_COLUMN = "`id`"; +// public static String ID_COLUMN = "\"id\""; + + public static String ORDER_TYPE_INT = "SIGNED"; +// public static String ORDER_TYPE_INT = "BIGINT"; + + public static String LIMIT_SCRIPT = "(function() { return \" LIMIT \" + offset + \",\" + limit;})();"; + + public static String cutPage(Integer curr,Integer limit) { + Map params = new HashMap<>(); + params.put("curr", curr); + params.put("offset", (curr - 1) * limit ); + params.put("limit", limit); + return (String)ScriptUtil.eval(LIMIT_SCRIPT, new SimpleBindings(params)); + } +} \ No newline at end of file diff --git a/src/main/java/com/cym/config/ViewConfig.java b/src/main/java/com/cym/config/ViewConfig.java index e30a29b2..ac7bcafd 100644 --- a/src/main/java/com/cym/config/ViewConfig.java +++ b/src/main/java/com/cym/config/ViewConfig.java @@ -6,6 +6,7 @@ import org.noear.solon.view.freemarker.FreemarkerRender; @Configuration public class ViewConfig { + public static String lang; @Bean public void init(FreemarkerRender render) throws Exception { //todo: 从 “app.onEvent(freemarker.template.Configuration.class, cfg->{})“ 迁移过来 diff --git a/src/main/java/com/cym/controller/adminPage/ConfController.java b/src/main/java/com/cym/controller/adminPage/ConfController.java index c47187ac..d83bf541 100644 --- a/src/main/java/com/cym/controller/adminPage/ConfController.java +++ b/src/main/java/com/cym/controller/adminPage/ConfController.java @@ -279,22 +279,22 @@ public class ConfController extends BaseController { if (nginxPath != null) { settingService.set("nginxPath", nginxPath); - System.out.println("nginxPath -> " + nginxPath); + //System.out.println("nginxPath -> " + nginxPath); } if (nginxExe != null) { settingService.set("nginxExe", nginxExe); - System.out.println("nginxExe -> " + nginxExe); + //System.out.println("nginxExe -> " + nginxExe); } if (nginxDir != null) { settingService.set("nginxDir", nginxDir); - System.out.println("nginxDir -> " + nginxDir); + //System.out.println("nginxDir -> " + nginxDir); } Map map = new HashMap<>(); map.put("nginxPath", nginxPath); map.put("nginxExe", nginxExe); map.put("nginxDir", nginxDir); - System.out.println(""); + //System.out.println(""); return renderSuccess(map); } diff --git a/src/main/java/com/cym/controller/adminPage/LoginController.java b/src/main/java/com/cym/controller/adminPage/LoginController.java index 10a93b5b..5275668d 100644 --- a/src/main/java/com/cym/controller/adminPage/LoginController.java +++ b/src/main/java/com/cym/controller/adminPage/LoginController.java @@ -6,6 +6,7 @@ import java.util.Map; import javax.swing.JPanel; +import com.cym.config.ViewConfig; import org.noear.solon.annotation.Controller; import org.noear.solon.annotation.Inject; import org.noear.solon.annotation.Mapping; @@ -327,6 +328,7 @@ public class LoginController extends BaseController { if (lang.equals("zh")) { lang = ""; } + ViewConfig.lang = lang; settingService.set("lang", lang); } diff --git a/src/main/java/com/cym/service/ServerService.java b/src/main/java/com/cym/service/ServerService.java index 985fa9ef..63a2a7c3 100644 --- a/src/main/java/com/cym/service/ServerService.java +++ b/src/main/java/com/cym/service/ServerService.java @@ -359,9 +359,9 @@ public class ServerService { } } else { // 上移 - System.out.println(server.getSeq()); + //System.out.println(server.getSeq()); for (int i = serverList.size() - 1; i >= 0; i--) { - System.out.println(serverList.get(i).getSeq()); + //System.out.println(serverList.get(i).getSeq()); if (serverList.get(i).getSeq() > server.getSeq()) { tagert = serverList.get(i); break; diff --git a/src/main/java/com/cym/service/SettingService.java b/src/main/java/com/cym/service/SettingService.java index f890e48e..504f1d3c 100644 --- a/src/main/java/com/cym/service/SettingService.java +++ b/src/main/java/com/cym/service/SettingService.java @@ -1,5 +1,6 @@ package com.cym.service; +import com.cym.config.ViewConfig; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; @@ -25,11 +26,17 @@ public class SettingService { } public String get(String key) { + if ("lang".equals(key) && ViewConfig.lang != null) { + return ViewConfig.lang; + } Setting setting = sqlHelper.findOneByQuery(new ConditionAndWrapper().eq("key", key), Setting.class); if (setting == null) { return null; } else { + if ("lang".equals(key) && ViewConfig.lang == null) { + ViewConfig.lang = setting.getValue(); + } return setting.getValue(); } } diff --git a/src/main/java/com/cym/sqlhelper/bean/Sort.java b/src/main/java/com/cym/sqlhelper/bean/Sort.java index 97c7029f..3e2ad9e3 100644 --- a/src/main/java/com/cym/sqlhelper/bean/Sort.java +++ b/src/main/java/com/cym/sqlhelper/bean/Sort.java @@ -3,6 +3,7 @@ package com.cym.sqlhelper.bean; import java.util.ArrayList; import java.util.List; +import com.cym.config.SQLConstants; import com.cym.sqlhelper.reflection.ReflectionUtil; import com.cym.sqlhelper.reflection.SerializableFunction; @@ -65,7 +66,7 @@ public class Sort { String sql = StrUtil.toUnderlineCase(order.getColumn()); if (order.getColumn().equalsIgnoreCase("seq") || order.getColumn().equalsIgnoreCase("id")) { - sql = "CAST(" + StrUtil.toUnderlineCase(order.getColumn()) + " as SIGNED)"; + sql = "CAST(" + StrUtil.toUnderlineCase(order.getColumn()) + " as " + SQLConstants.ORDER_TYPE_INT + ")"; } if (order.getDirection() == Direction.ASC) { diff --git a/src/main/java/com/cym/sqlhelper/config/DataSourceEmbed.java b/src/main/java/com/cym/sqlhelper/config/DataSourceEmbed.java index 5978f6af..cc8e76de 100644 --- a/src/main/java/com/cym/sqlhelper/config/DataSourceEmbed.java +++ b/src/main/java/com/cym/sqlhelper/config/DataSourceEmbed.java @@ -1,5 +1,6 @@ package com.cym.sqlhelper.config; +import com.cym.config.SQLConstants; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Init; import org.noear.solon.annotation.Inject; @@ -8,12 +9,6 @@ import com.cym.config.HomeConfig; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; -import cn.hutool.db.Db; -import cn.hutool.db.GlobalDbConfig; -import cn.hutool.db.ds.pooled.DbConfig; -import cn.hutool.log.GlobalLogFactory; -import cn.hutool.log.level.Level; - @Component public class DataSourceEmbed { @Inject @@ -28,13 +23,38 @@ public class DataSourceEmbed { @Inject("${spring.datasource.password}") String password; + @Inject("${spring.database.tablePrefix:`}") + String TABLE_PREFIX = "`"; + @Inject("${spring.database.tableSuffix:`}") + String TABLE_SUFFIX = "`"; + + @Inject("${spring.database.columnPrefix:`}") + String COLUMN_PREFIX = "`"; + @Inject("${spring.database.columnSuffix:`}") + String COLUMN_SUFFIX = "`"; + + @Inject("${spring.database.idColumn:`id`}") + String ID_COLUMN = "`id`"; + + @Inject("${spring.database.orderTypeInt:SIGNED}") + String ORDER_TYPE_INT = "SIGNED"; + + @Inject("${spring.database.limitScript:(function() { return \" LIMIT \" + offset + \",\" + limit;})();}") + String LIMIT_SCRIPT = "(function() { return \" LIMIT \" + offset + \",\" + limit;})();"; + HikariDataSource dataSource; @Init public void init() { + SQLConstants.TABLE_SUFFIX=TABLE_SUFFIX; + SQLConstants.TABLE_PREFIX=TABLE_PREFIX; + SQLConstants.COLUMN_SUFFIX=COLUMN_SUFFIX; + SQLConstants.COLUMN_PREFIX=COLUMN_PREFIX; + SQLConstants.ID_COLUMN=ID_COLUMN; + SQLConstants.ORDER_TYPE_INT=ORDER_TYPE_INT; + SQLConstants.LIMIT_SCRIPT=LIMIT_SCRIPT; // 创建dataSource if (databaseType.equalsIgnoreCase("sqlite") || databaseType.equalsIgnoreCase("h2")) { - // 建立新的sqlite数据源 HikariConfig dbConfig = new HikariConfig(); dbConfig.setJdbcUrl("jdbc:sqlite:" + homeConfig.home + "sqlite.db"); @@ -43,7 +63,6 @@ public class DataSourceEmbed { dbConfig.setMaximumPoolSize(1); dbConfig.setDriverClassName("org.sqlite.JDBC"); dataSource = new HikariDataSource(dbConfig); - } else if (databaseType.equalsIgnoreCase("mysql")) { HikariConfig dbConfig = new HikariConfig(); dbConfig.setJdbcUrl(url); @@ -52,9 +71,15 @@ public class DataSourceEmbed { dbConfig.setMaximumPoolSize(1); dbConfig.setDriverClassName("com.mysql.cj.jdbc.Driver"); dataSource = new HikariDataSource(dbConfig); + }else { + HikariConfig dbConfig = new HikariConfig(); + dbConfig.setJdbcUrl(url); + dbConfig.setUsername(username); + dbConfig.setPassword(password); + dbConfig.setMaximumPoolSize(1); + dbConfig.setDriverClassName(databaseType); + dataSource = new HikariDataSource(dbConfig); } - - } public HikariDataSource getDataSource() { diff --git a/src/main/java/com/cym/sqlhelper/utils/ConditionWrapper.java b/src/main/java/com/cym/sqlhelper/utils/ConditionWrapper.java index 0ec1316f..4bbe8ffd 100644 --- a/src/main/java/com/cym/sqlhelper/utils/ConditionWrapper.java +++ b/src/main/java/com/cym/sqlhelper/utils/ConditionWrapper.java @@ -5,6 +5,7 @@ import java.util.Collection; import java.util.List; import cn.hutool.core.util.StrUtil; +import com.cym.config.SQLConstants; /** * 查询语句生成器 @@ -77,7 +78,7 @@ public abstract class ConditionWrapper { public String buildColumn(String column, Class clazz) { - return "`" + StrUtil.toUnderlineCase(column) + "`"; + return SQLConstants.COLUMN_PREFIX + StrUtil.toUnderlineCase(column) + SQLConstants.COLUMN_SUFFIX; } public String buildIn(Object value) { diff --git a/src/main/java/com/cym/sqlhelper/utils/ImportOrExportUtil.java b/src/main/java/com/cym/sqlhelper/utils/ImportOrExportUtil.java index 0e5f518d..ee9ec00f 100644 --- a/src/main/java/com/cym/sqlhelper/utils/ImportOrExportUtil.java +++ b/src/main/java/com/cym/sqlhelper/utils/ImportOrExportUtil.java @@ -58,7 +58,7 @@ public class ImportOrExportUtil { lines.add(JSONUtil.toJsonStr(object)); } FileUtil.appendLines(lines, path + File.separator + clazz.getSimpleName() + ".json", "UTF-8"); - System.out.println(clazz.getSimpleName() + "表导出了" + page.getRecords().size() + "条数据"); + //System.out.println(clazz.getSimpleName() + "表导出了" + page.getRecords().size() + "条数据"); page.setCurr(page.getCurr() + 1); } } @@ -78,7 +78,7 @@ public class ImportOrExportUtil { public void importDb(String path) { if (!FileUtil.exist(path)) { - System.out.println(path + "文件不存在"); + //System.out.println(path + "文件不存在"); return; } BufferedReader reader = null; @@ -101,14 +101,14 @@ public class ImportOrExportUtil { String json = reader.readLine(); if (StrUtil.isEmpty(json)) { sqlHelper.insertAll(list); - System.out.println(clazz.getSimpleName() + "表导入了" + list.size() + "条数据"); + //System.out.println(clazz.getSimpleName() + "表导入了" + list.size() + "条数据"); list.clear(); break; } list.add(JSONUtil.toBean(json, clazz)); if (list.size() == 1000) { sqlHelper.insertAll(list); - System.out.println(clazz.getSimpleName() + "表导入了" + list.size() + "条数据"); + //System.out.println(clazz.getSimpleName() + "表导入了" + list.size() + "条数据"); list.clear(); } } diff --git a/src/main/java/com/cym/sqlhelper/utils/JdbcTemplate.java b/src/main/java/com/cym/sqlhelper/utils/JdbcTemplate.java index 7cee24dc..375644c6 100644 --- a/src/main/java/com/cym/sqlhelper/utils/JdbcTemplate.java +++ b/src/main/java/com/cym/sqlhelper/utils/JdbcTemplate.java @@ -2,14 +2,10 @@ package com.cym.sqlhelper.utils; import java.io.Reader; import java.sql.SQLException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.Map.Entry; -import java.util.Set; +import com.cym.config.SQLConstants; import org.h2.jdbc.JdbcClob; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; @@ -31,6 +27,7 @@ public class JdbcTemplate { public List> queryForList(String formatSql, Object... array) { try { +// System.out.println(">>>queryForList sql:"+formatSql+" array:"+ Arrays.toString(array)); List list = Db.use(dataSourceEmbed.getDataSource()).query(formatSql, array); List> mapList = new ArrayList<>(); @@ -77,7 +74,7 @@ public class JdbcTemplate { entity.setTableName(StrUtil.toUnderlineCase(clazz.getSimpleName())); entity.set("id", uuid); Db.use(dataSourceEmbed.getDataSource()).insert(entity); - List list = Db.use(dataSourceEmbed.getDataSource()).query("select * from `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "` where id='" + uuid + "'"); + List list = Db.use(dataSourceEmbed.getDataSource()).query("select * from " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX + " where id='" + uuid + "'"); for (Entity entityOne : list) { set = entityOne.getFieldNames(); @@ -109,6 +106,7 @@ public class JdbcTemplate { public void execute(String formatSql, Object... array) { try { +// System.out.println(">>>execute sql:"+formatSql); Db.use(dataSourceEmbed.getDataSource()).execute(formatSql, array); } catch (SQLException e) { logger.error(e.getMessage(), e); diff --git a/src/main/java/com/cym/sqlhelper/utils/SnowFlake.java b/src/main/java/com/cym/sqlhelper/utils/SnowFlake.java index d03bf284..f2ac7249 100644 --- a/src/main/java/com/cym/sqlhelper/utils/SnowFlake.java +++ b/src/main/java/com/cym/sqlhelper/utils/SnowFlake.java @@ -80,6 +80,6 @@ public class SnowFlake { public static void main(String[] args) { - System.out.println( IdUtil.getSnowflake(0, 0).nextId()); + //System.out.println( IdUtil.getSnowflake(0, 0).nextId()); } } \ No newline at end of file diff --git a/src/main/java/com/cym/sqlhelper/utils/SqlHelper.java b/src/main/java/com/cym/sqlhelper/utils/SqlHelper.java index 4068dc6e..3e69060c 100644 --- a/src/main/java/com/cym/sqlhelper/utils/SqlHelper.java +++ b/src/main/java/com/cym/sqlhelper/utils/SqlHelper.java @@ -11,6 +11,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import com.cym.config.SQLConstants; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Init; import org.noear.solon.annotation.Inject; @@ -84,12 +85,12 @@ public class SqlHelper extends SqlUtils { Field[] fields = ReflectUtil.getFields(object.getClass()); for (Field field : fields) { - fieldsPart.add("`" + StrUtil.toUnderlineCase(field.getName()) + "`"); + fieldsPart.add(SQLConstants.COLUMN_PREFIX + StrUtil.toUnderlineCase(field.getName()) + SQLConstants.COLUMN_SUFFIX); placeHolder.add("?"); paramValues.add(ReflectUtil.getFieldValue(object, field)); } - sql = "INSERT INTO `" + StrUtil.toUnderlineCase(object.getClass().getSimpleName()) + "` (" + StrUtil.join(",", fieldsPart) + ") VALUES (" + StrUtil.join(",", placeHolder) + ")"; + sql = "INSERT INTO " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(object.getClass().getSimpleName()) + SQLConstants.TABLE_SUFFIX + " (" + StrUtil.join(",", fieldsPart) + ") VALUES (" + StrUtil.join(",", placeHolder) + ")"; logQuery(formatSql(sql), paramValues.toArray()); jdbcTemplate.execute(formatSql(sql), paramValues.toArray()); @@ -108,13 +109,13 @@ public class SqlHelper extends SqlUtils { for (Field field : fields) { if (!field.getName().equals("id") && ReflectUtil.getFieldValue(object, field) != null) { - fieldsPart.add("`" + StrUtil.toUnderlineCase(field.getName()) + "`=?"); + fieldsPart.add(SQLConstants.COLUMN_PREFIX + StrUtil.toUnderlineCase(field.getName()) + SQLConstants.COLUMN_SUFFIX + "=?"); paramValues.add(ReflectUtil.getFieldValue(object, field)); } } paramValues.add(id); - String sql = "UPDATE `" + StrUtil.toUnderlineCase(object.getClass().getSimpleName()) + "` SET " + StrUtil.join(",", fieldsPart) + " WHERE id = ?"; + String sql = "UPDATE " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(object.getClass().getSimpleName()) + SQLConstants.TABLE_SUFFIX + " SET " + StrUtil.join(",", fieldsPart) + " WHERE id = ?"; logQuery(formatSql(sql), paramValues.toArray()); jdbcTemplate.execute(formatSql(sql), paramValues.toArray()); @@ -200,13 +201,13 @@ public class SqlHelper extends SqlUtils { List params = new ArrayList(); for (Field field : fields) { - fieldsPart.add("`" + StrUtil.toUnderlineCase(field.getName()) + "`"); + fieldsPart.add(SQLConstants.COLUMN_PREFIX + StrUtil.toUnderlineCase(field.getName()) + SQLConstants.COLUMN_SUFFIX); placeHolder.add("?"); params.add(ReflectUtil.getFieldValue(object, field)); } if (sqls == null) { - sqls = "INSERT INTO `" + StrUtil.toUnderlineCase(object.getClass().getSimpleName()) + "` (" + StrUtil.join(",", fieldsPart) + ") VALUES (" + StrUtil.join(",", placeHolder) + ")"; + sqls = "INSERT INTO " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(object.getClass().getSimpleName()) + SQLConstants.TABLE_SUFFIX + " (" + StrUtil.join(",", fieldsPart) + ") VALUES (" + StrUtil.join(",", placeHolder) + ")"; } jdbcTemplate.execute(formatSql(sqls), params.toArray()); @@ -241,12 +242,12 @@ public class SqlHelper extends SqlUtils { List paramValues = new ArrayList(); for (Entry entry : update.getSets().entrySet()) { if (entry.getKey() != null && entry.getValue() != null) { - fieldsPart.add("`" + StrUtil.toUnderlineCase(entry.getKey()) + "`=?"); + fieldsPart.add(SQLConstants.COLUMN_PREFIX + StrUtil.toUnderlineCase(entry.getKey()) + SQLConstants.COLUMN_SUFFIX + "=?"); paramValues.add(entry.getValue().toString()); } } - String sql = "UPDATE `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "` SET " + StrUtil.join(",", fieldsPart); + String sql = "UPDATE " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX + " SET " + StrUtil.join(",", fieldsPart); if (conditionWrapper != null && conditionWrapper.notEmpty()) { sql += " WHERE " + conditionWrapper.build(paramValues); } @@ -261,7 +262,7 @@ public class SqlHelper extends SqlUtils { * @param object */ public void addCountById(String id, String property, Long count, Class clazz) { - String sql = "UPDATE `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "` SET `" + property + "` = CAST(`" + property + "` AS DECIMAL(30,10)) + ? WHERE `id` = ?"; + String sql = "UPDATE " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX + " SET " + SQLConstants.COLUMN_PREFIX + property + SQLConstants.COLUMN_SUFFIX + " = CAST(" + SQLConstants.COLUMN_PREFIX + property + SQLConstants.COLUMN_SUFFIX + " AS DECIMAL(30,10)) + ? WHERE " + SQLConstants.ID_COLUMN + " = ?"; Object[] params = new Object[] { count, id }; logQuery(formatSql(sql), params); jdbcTemplate.execute(formatSql(sql), params); @@ -293,13 +294,13 @@ public class SqlHelper extends SqlUtils { for (Field field : fields) { if (!field.getName().equals("id")) { - fieldsPart.add("`" + StrUtil.toUnderlineCase(field.getName()) + "`=?"); + fieldsPart.add(SQLConstants.COLUMN_PREFIX + StrUtil.toUnderlineCase(field.getName()) + SQLConstants.COLUMN_SUFFIX + "=?"); paramValues.add(ReflectUtil.getFieldValue(object, field)); } } paramValues.add(ReflectUtil.getFieldValue(object, "id")); - String sql = "UPDATE `" + StrUtil.toUnderlineCase(object.getClass().getSimpleName()) + "` SET " + StrUtil.join(",", fieldsPart) + " WHERE id = ?"; + String sql = "UPDATE " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(object.getClass().getSimpleName()) + SQLConstants.TABLE_SUFFIX + " SET " + StrUtil.join(",", fieldsPart) + " WHERE id = ?"; logQuery(formatSql(sql), paramValues.toArray()); jdbcTemplate.execute(formatSql(sql), paramValues.toArray()); @@ -352,7 +353,7 @@ public class SqlHelper extends SqlUtils { */ public void deleteByQuery(ConditionWrapper conditionWrapper, Class clazz) { List values = new ArrayList(); - String sql = "DELETE FROM `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "`"; + String sql = "DELETE FROM " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX; if (conditionWrapper != null && conditionWrapper.notEmpty()) { sql += " WHERE " + conditionWrapper.build(values); } @@ -416,16 +417,17 @@ public class SqlHelper extends SqlUtils { // 查询出一共的条数 Long count = findCountByQuery(conditionWrapper, clazz); - String sql = "SELECT * FROM `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "`"; + String sql = "SELECT * FROM " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX; if (conditionWrapper != null && conditionWrapper.notEmpty()) { sql += " WHERE " + conditionWrapper.build(values); } if (sort != null) { sql += " " + sort.toString(); } else { - sql += " ORDER BY CAST(id AS SIGNED) DESC"; + sql += " ORDER BY CAST(id AS " + SQLConstants.ORDER_TYPE_INT + ") DESC"; } - sql += " LIMIT " + (page.getCurr() - 1) * page.getLimit() + "," + page.getLimit(); +// sql += " LIMIT " + (page.getCurr() - 1) * page.getLimit() + SQLConstants.LIMIT_SEPARATOR + page.getLimit(); + sql += SQLConstants.cutPage(page.getCurr(), page.getLimit()); page.setCount(count); @@ -497,14 +499,14 @@ public class SqlHelper extends SqlUtils { public T findOneByQuery(ConditionWrapper conditionWrapper, Sort sort, Class clazz) { List values = new ArrayList(); List list = new ArrayList(); - String sql = "SELECT * FROM `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "`"; + String sql = "SELECT * FROM " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX; if (conditionWrapper != null && conditionWrapper.notEmpty()) { sql += " WHERE " + conditionWrapper.build(values); } if (sort != null) { sql += " " + sort.toString(); } else { - sql += " ORDER BY CAST(id AS SIGNED) DESC"; + sql += " ORDER BY CAST(id AS " + SQLConstants.ORDER_TYPE_INT + ") DESC"; } sql += " limit 1"; @@ -548,14 +550,14 @@ public class SqlHelper extends SqlUtils { public List findListByQuery(ConditionWrapper conditionWrapper, Sort sort, Class clazz) { List values = new ArrayList(); - String sql = "SELECT * FROM `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "`"; + String sql = "SELECT * FROM " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX; if (conditionWrapper != null && conditionWrapper.notEmpty()) { sql += " WHERE " + conditionWrapper.build(values); } if (sort != null) { sql += " " + sort.toString(); } else { - sql += " ORDER BY CAST(id AS SIGNED) DESC"; + sql += " ORDER BY CAST(id AS " + SQLConstants.ORDER_TYPE_INT + ") DESC"; } logQuery(formatSql(sql), values.toArray()); @@ -806,7 +808,7 @@ public class SqlHelper extends SqlUtils { */ public Long findCountByQuery(ConditionWrapper conditionWrapper, Class clazz) { List values = new ArrayList(); - String sql = "SELECT COUNT(*) FROM `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "`"; + String sql = "SELECT COUNT(*) FROM " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX; if (conditionWrapper != null && conditionWrapper.notEmpty()) { sql += " WHERE " + conditionWrapper.build(values); } diff --git a/src/main/java/com/cym/sqlhelper/utils/SqlUtils.java b/src/main/java/com/cym/sqlhelper/utils/SqlUtils.java index de264d07..9abe02ed 100644 --- a/src/main/java/com/cym/sqlhelper/utils/SqlUtils.java +++ b/src/main/java/com/cym/sqlhelper/utils/SqlUtils.java @@ -1,11 +1,11 @@ package com.cym.sqlhelper.utils; -import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; +import com.cym.config.SQLConstants; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; import org.slf4j.Logger; @@ -39,7 +39,7 @@ public class SqlUtils { } public void checkOrCreateTable(Class clazz) { - String sql = "CREATE TABLE IF NOT EXISTS `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "` (id VARCHAR(32) NOT NULL PRIMARY KEY)"; + String sql = "CREATE TABLE IF NOT EXISTS " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX + " (id VARCHAR(32) NOT NULL PRIMARY KEY)"; logQuery(formatSql(sql)); jdbcTemplate.execute(formatSql(sql)); @@ -95,10 +95,10 @@ public class SqlUtils { columList = new ArrayList(); for (String colum : colums) { - columList.add(StrUtil.toUnderlineCase("`" + colum + "`" + length)); + columList.add(StrUtil.toUnderlineCase(SQLConstants.COLUMN_PREFIX + colum + SQLConstants.COLUMN_SUFFIX + length)); } - String sql = "CREATE " + type + " `" + StrUtil.toUnderlineCase(name) + "` ON `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "`(" + StrUtil.join(",", columList) + ")"; + String sql = "CREATE " + type + " " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(name) + SQLConstants.TABLE_SUFFIX + " ON " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX + "(" + StrUtil.join(",", columList) + ")"; logQuery(formatSql(sql)); jdbcTemplate.execute(formatSql(sql)); } @@ -107,19 +107,23 @@ public class SqlUtils { public void checkOrCreateColumn(Class clazz, String name, Set columns) { if (!columns.contains(StrUtil.toUnderlineCase(name).toLowerCase())) { - String sql = "ALTER TABLE `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "` ADD COLUMN `" + StrUtil.toUnderlineCase(name) + "` TEXT"; + String sql = "ALTER TABLE " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX + " ADD COLUMN " + SQLConstants.COLUMN_PREFIX + StrUtil.toUnderlineCase(name) + SQLConstants.COLUMN_SUFFIX + " TEXT"; logQuery(formatSql(sql)); + logger.debug("checkOrCreateColumn sql:{} ",formatSql(sql)); + //System.out.println("checkOrCreateColumn sql: "+formatSql(sql)); jdbcTemplate.execute(formatSql(sql)); } } public void updateDefaultValue(Class clazz, String column, String value) { - String sql = "SELECT COUNT(*) FROM `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "` WHERE `" + StrUtil.toUnderlineCase(column) + "` IS NULL"; + String sql = "SELECT COUNT(*) FROM " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX + " WHERE " + SQLConstants.COLUMN_PREFIX + StrUtil.toUnderlineCase(column) + SQLConstants.COLUMN_SUFFIX + " IS NULL"; logQuery(formatSql(sql)); + logger.debug("updateDefaultValue sql:{} ",formatSql(sql)); + //System.out.println("updateDefaultValue sql: "+formatSql(sql)); Long count = jdbcTemplate.queryForCount(formatSql(sql)); if (count != null && count > 0) { - sql = "UPDATE `" + StrUtil.toUnderlineCase(clazz.getSimpleName()) + "` SET `" + StrUtil.toUnderlineCase(column) + "` = ? WHERE `" + StrUtil.toUnderlineCase(column) + "` IS NULL"; + sql = "UPDATE " + SQLConstants.TABLE_PREFIX + StrUtil.toUnderlineCase(clazz.getSimpleName()) + SQLConstants.TABLE_SUFFIX + " SET " + SQLConstants.COLUMN_PREFIX + StrUtil.toUnderlineCase(column) + SQLConstants.COLUMN_SUFFIX + " = ? WHERE " + SQLConstants.COLUMN_PREFIX + StrUtil.toUnderlineCase(column) + SQLConstants.COLUMN_SUFFIX + " IS NULL"; logQuery(formatSql(sql)); jdbcTemplate.execute(formatSql(sql), value); } diff --git a/src/main/java/com/cym/utils/AuthUtils.java b/src/main/java/com/cym/utils/AuthUtils.java index aa8566a7..1a594229 100644 --- a/src/main/java/com/cym/utils/AuthUtils.java +++ b/src/main/java/com/cym/utils/AuthUtils.java @@ -35,7 +35,7 @@ public class AuthUtils { // 获取一个新的密钥,默认16位,该密钥与用户绑定 final GoogleAuthenticatorKey key = gAuth.createCredentials(); String key1 = key.getKey(); - System.out.println(key1); + //System.out.println(key1); return key1; } @@ -44,7 +44,7 @@ public class AuthUtils { // 根据密钥,获取最新密码(后台用不到,用来开发 谷歌身份验证器 客户端) GoogleAuthenticator gAuth = new GoogleAuthenticator(); int code = gAuth.getTotpPassword(key); - System.out.println(code); + //System.out.println(code); return code; } } \ No newline at end of file diff --git a/src/main/java/com/cym/utils/Crypt.java b/src/main/java/com/cym/utils/Crypt.java index 994c0635..13d3dfc9 100644 --- a/src/main/java/com/cym/utils/Crypt.java +++ b/src/main/java/com/cym/utils/Crypt.java @@ -386,7 +386,7 @@ public class Crypt { * @param args the command line arguments */ public static void main(String[] args) { - System.out.println(getString("name", "name")); + //System.out.println(getString("name", "name")); } diff --git a/src/main/java/com/cym/utils/JarUtil.java b/src/main/java/com/cym/utils/JarUtil.java index 90897833..523d746d 100644 --- a/src/main/java/com/cym/utils/JarUtil.java +++ b/src/main/java/com/cym/utils/JarUtil.java @@ -33,6 +33,6 @@ public class JarUtil { } public static void main(String[] args) { - System.out.println(getCurrentFilePath()); + //System.out.println(getCurrentFilePath()); } } diff --git a/src/main/java/com/cym/utils/NetWorkUtil.java b/src/main/java/com/cym/utils/NetWorkUtil.java index 93b9afe5..c9c40235 100644 --- a/src/main/java/com/cym/utils/NetWorkUtil.java +++ b/src/main/java/com/cym/utils/NetWorkUtil.java @@ -118,6 +118,6 @@ public class NetWorkUtil { public static void main(String[] args) { String line = "RX packets:8889 errors:0 dropped:0 overruns:0 frame:0"; - System.out.println(formatLong(line)); + //System.out.println(formatLong(line)); } } diff --git a/src/main/java/com/cym/utils/OshiUtils.java b/src/main/java/com/cym/utils/OshiUtils.java index a9d1f951..f8259d01 100644 --- a/src/main/java/com/cym/utils/OshiUtils.java +++ b/src/main/java/com/cym/utils/OshiUtils.java @@ -76,7 +76,7 @@ public final class OshiUtils { public static void main(String[] args) { ServerDomain serverDomain = getOshiServerInfo(); - System.out.println(JSONUtil.toJsonPrettyStr(serverDomain)); + //System.out.println(JSONUtil.toJsonPrettyStr(serverDomain)); } /** diff --git a/src/main/java/com/cym/utils/TelnetUtils.java b/src/main/java/com/cym/utils/TelnetUtils.java index bcc9fd77..63f5919c 100644 --- a/src/main/java/com/cym/utils/TelnetUtils.java +++ b/src/main/java/com/cym/utils/TelnetUtils.java @@ -34,6 +34,6 @@ public class TelnetUtils { } public static void main(String[] args) { - System.out.println( isRunning("127.0.0.1", 8080)); + //System.out.println( isRunning("127.0.0.1", 8080)); } } diff --git a/src/main/resources/app.yml b/src/main/resources/app.yml index ded6518d..6a34f9ca 100644 --- a/src/main/resources/app.yml +++ b/src/main/resources/app.yml @@ -1,5 +1,5 @@ server: - port: 8080 + port: 18080 request: maxBodySize: 20mb maxFileSize: 2048mb @@ -8,7 +8,7 @@ server: project: sqlPrint: false beanPackage: com.cym.model - home: /home/nginxWebUI/ + home: /tmp/nginxWebUI/ findPass: false solon: @@ -39,12 +39,31 @@ solon: maxHistory: "7" spring: database: - type: sqlite + type: org.postgresql.Driver + tablePrefix: "\"" + tableSuffix: "\"" + columnPrefix: "\"" + columnSuffix: "\"" + idColumn: id + orderTypeInt: BIGINT + #limitScript: "(function() { return \" LIMIT \" + offset + \",\" + limit;})();" + limitScript: "(function() { return \" LIMIT \" + limit + \" offset \" + offset; })();" datasource: - url: - username: - password: + url: jdbc:postgresql://postgresql:5432/nginxwebui?charset\=utf-8 + username: postgres + password: 123456 -initAdmin: -initPass: -initApi: \ No newline at end of file +initAdmin: admin +initPass: Admin888 +initApi: Admin888 +#spring: +# database: +# type: sqlite +# datasource: +# url: +# username: +# password: +# +#initAdmin: +#initPass: +#initApi: \ No newline at end of file -- Gitee