From ad0c75c12a5ede82c74f6cb33b67d08190b9056a Mon Sep 17 00:00:00 2001 From: Sola Date: Mon, 23 Nov 2015 16:29:20 +0800 Subject: [PATCH] configuration via sql (done) --- .../love/sola/netsupport/config/Settings.java | 30 +++++++++++++++++++ .../love/sola/netsupport/sql/SQLCore.java | 3 ++ .../love/sola/netsupport/sql/TableConfig.java | 29 ++++++++++++++++-- .../sola/netsupport/wechat/WxMpServlet.java | 9 +++--- 4 files changed, 65 insertions(+), 6 deletions(-) create mode 100644 src/main/java/love/sola/netsupport/config/Settings.java diff --git a/src/main/java/love/sola/netsupport/config/Settings.java b/src/main/java/love/sola/netsupport/config/Settings.java new file mode 100644 index 0000000..068d678 --- /dev/null +++ b/src/main/java/love/sola/netsupport/config/Settings.java @@ -0,0 +1,30 @@ +package love.sola.netsupport.config; + +import lombok.ToString; + +/** + * *********************************************** + * Created by Sola on 2015/11/23. + * Don't modify this source without my agreement + * *********************************************** + */ +@ToString +public class Settings { + + public static Settings I; + + // -------------------------------------------- // + // CONFIGURATIONS + // -------------------------------------------- // + public String Wechat_AppId; + public String Wechat_Secret; + public String Wechat_Token; + public String Wechat_AesKey; + + + //No arg constructor for Yaml.loadAs + public Settings() { + I = this; + } + +} diff --git a/src/main/java/love/sola/netsupport/sql/SQLCore.java b/src/main/java/love/sola/netsupport/sql/SQLCore.java index 667b162..2869529 100644 --- a/src/main/java/love/sola/netsupport/sql/SQLCore.java +++ b/src/main/java/love/sola/netsupport/sql/SQLCore.java @@ -1,5 +1,7 @@ package love.sola.netsupport.sql; +import com.google.gson.Gson; + import javax.naming.InitialContext; import javax.sql.DataSource; @@ -12,6 +14,7 @@ import javax.sql.DataSource; public class SQLCore { public static DataSource ds; + public static Gson gson = new Gson(); static { try { diff --git a/src/main/java/love/sola/netsupport/sql/TableConfig.java b/src/main/java/love/sola/netsupport/sql/TableConfig.java index eaa2a2c..bc4d6ff 100644 --- a/src/main/java/love/sola/netsupport/sql/TableConfig.java +++ b/src/main/java/love/sola/netsupport/sql/TableConfig.java @@ -1,14 +1,39 @@ package love.sola.netsupport.sql; +import love.sola.netsupport.config.Settings; + +import java.sql.*; + /** * *********************************************** * Created by Sola on 2015/11/10. * Don't modify this source without my agreement * *********************************************** */ -public class TableConfig { +public class TableConfig extends SQLCore{ + public static final String KEY_SYS = "sys"; - + public static Settings getSettings() { + try (Connection conn = ds.getConnection()) { + Statement st = conn.createStatement(); + ResultSet rs = st.executeQuery("SELECT * FROM settings WHERE type='" + KEY_SYS + "'"); + if (rs.next()) { + return gson.fromJson(rs.getString("data"), Settings.class); + } + } catch (SQLException e) { } + return null; + } + + public static int saveSettings(Settings obj) { + try (Connection conn = ds.getConnection()) { + PreparedStatement ps = conn.prepareStatement("UPDATE settings SET data=? WHERE type=?"); + ps.setString(1, gson.toJson(obj)); + ps.setString(2, KEY_SYS); + return ps.executeUpdate(); + } catch (SQLException e) { + } + return -1; + } } diff --git a/src/main/java/love/sola/netsupport/wechat/WxMpServlet.java b/src/main/java/love/sola/netsupport/wechat/WxMpServlet.java index 2dfee0a..e3b08e4 100644 --- a/src/main/java/love/sola/netsupport/wechat/WxMpServlet.java +++ b/src/main/java/love/sola/netsupport/wechat/WxMpServlet.java @@ -1,5 +1,6 @@ package love.sola.netsupport.wechat; +import love.sola.netsupport.config.Settings; import me.chanjar.weixin.common.util.StringUtils; import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage; import me.chanjar.weixin.mp.api.WxMpMessageRouter; @@ -38,10 +39,10 @@ public class WxMpServlet extends HttpServlet { super.init(); config = new WxMpInMemoryConfigStorage(); - config.setAppId("*****"); - config.setSecret("*****"); - config.setToken("*****"); -// config.setAesKey("SolaAES"); + config.setAppId(Settings.I.Wechat_AppId); + config.setSecret(Settings.I.Wechat_Secret); + config.setToken(Settings.I.Wechat_Token); + config.setAesKey(Settings.I.Wechat_Token); wxMpService = new WxMpServiceImpl(); wxMpService.setWxMpConfigStorage(config);