コード例 #1
0
 public Integer deleteByDateInterval(
     DeleteDataForm.DateIntervalType dateIntervalType, final Integer dateIntervalSize) {
   String sql =
       "DELETE FROM "
           + tableName
           + " WHERE occurred_at < DATE_SUB(CURDATE(), INTERVAL ? "
           + dateIntervalType.toString()
           + ")";
   return jdbcTemplate.update(
       sql,
       new PreparedStatementSetter() {
         public void setValues(PreparedStatement ps) throws SQLException {
           ps.setInt(1, dateIntervalSize);
         }
       });
 }
コード例 #2
0
 public Integer deleteByCriteria(
     final String errorSource,
     final String errorLevel,
     final DeleteDataForm.DateIntervalType dateIntervalType,
     final Integer dateIntervalSize) {
   // TODO: research java db criteria...
   final LinkedList<String> filters = new LinkedList<String>();
   if (null != errorSource) {
     filters.add("error_source = ?");
   }
   if (null != errorLevel) {
     filters.add("error_level = ?");
   }
   if (null != dateIntervalType) {
     String filterOccurredAt =
         "occurred_at < DATE_SUB(CURDATE(), INTERVAL ? " + dateIntervalType.name() + ")";
     filters.add(filterOccurredAt);
   }
   if (filters.size() == 0) {
     return 0;
   }
   String sql = "DELETE FROM " + tableName + " WHERE " + String.join(" AND ", filters);
   return jdbcTemplate.update(
       sql,
       new PreparedStatementSetter() {
         public void setValues(PreparedStatement ps) throws SQLException {
           Integer parameterIndex = 1;
           if (null != errorSource) {
             ps.setString(parameterIndex++, errorSource);
           }
           if (null != errorLevel) {
             ps.setString(parameterIndex++, errorLevel);
           }
           if (null != dateIntervalType) {
             ps.setInt(parameterIndex, dateIntervalSize);
           }
         }
       });
 }