summaryrefslogtreecommitdiff
path: root/src/main/java/com/mesasoft/cn/util/MariaDbBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/mesasoft/cn/util/MariaDbBase.java')
-rw-r--r--src/main/java/com/mesasoft/cn/util/MariaDbBase.java84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/main/java/com/mesasoft/cn/util/MariaDbBase.java b/src/main/java/com/mesasoft/cn/util/MariaDbBase.java
new file mode 100644
index 0000000..777ec44
--- /dev/null
+++ b/src/main/java/com/mesasoft/cn/util/MariaDbBase.java
@@ -0,0 +1,84 @@
+package com.mesasoft.cn.util;
+
+import com.mesasoft.cn.sketch.config.ApplicationConfig;
+import org.apache.log4j.Logger;
+
+import java.sql.*;
+import java.util.Date;
+import java.util.Properties;
+
+/**
+ * Created with IntelliJ IDEA.
+ * User: joy
+ * Date: 2021/12/28
+ * Time: 2:56 PM
+ * Description: No Description
+ */
+public class MariaDbBase {
+
+ private static final Logger LOG = Logger.getLogger(MariaDbBase.class);
+ private static final Properties props = new Properties();
+
+ private final Statement statement;
+
+ public MariaDbBase(Connection conn, Statement stat) {
+ statement = stat;
+ }
+
+ /**
+ * 执行写入sql
+ */
+ public void writeSqlExecute(String sql){
+ try {
+ statement.executeUpdate(sql);
+ } catch (SQLIntegrityConstraintViolationException e){
+ LOG.error("Duplicated entry for key 'PRIMARY'");
+ } catch (SQLException exception) {
+ LOG.error("Sql : " + sql);
+ exception.printStackTrace();
+ }
+ }
+
+ /**
+ * 执行查询sql
+ */
+ public ResultSet querySqlExecute(String sql){
+ ResultSet set = null;
+ try {
+ set = statement.executeQuery(sql);
+ } catch (SQLException exception) {
+ exception.printStackTrace();
+ }
+ return set;
+ }
+
+
+ /**
+ * 获得指定表格、按指定时间字段的过期记录
+ * @param tableName 库表名称
+ * @param timeColumnName 时间列名
+ * @return 查询结果
+ */
+ public ResultSet getExpiredRecord(String tableName, String timeColumnName){
+ Date lastUpdateTime = new Timestamp(getExpiredTime(ApplicationConfig.UPDATE_EXPIRED_DAY).getTime());
+
+ String resSql = "SELECT *"
+ + " FROM " + ApplicationConfig.DATABASE + "." + tableName
+ + " WHERE " + timeColumnName + " < '" + lastUpdateTime + '\'';
+
+ LOG.debug("Update task: expired query sql" + resSql);
+
+ return querySqlExecute(resSql);
+ }
+
+ /**
+ * TODO: getUnlabeledRecord() 考虑多个来源的情况
+ */
+
+ /**
+ * 获得过期时间, 当前时间的expiredRangeDays天之前的日期为过期日期
+ */
+ public static Date getExpiredTime(int expiredRangeDays){
+ return new Timestamp(TimeUtils.getStartOfDay(-expiredRangeDays).getTime());
+ }
+}