Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
artoria.cache.support.JdbcTemplateCache Maven / Gradle / Ivy
Go to download
Artoria is a java technology framework based on the facade pattern.
package artoria.cache.support;
import artoria.common.constant.Numbers;
import artoria.util.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.Date;
import java.util.List;
import java.util.Map;
import static artoria.common.constant.Numbers.ONE;
import static artoria.common.constant.Numbers.ZERO;
public class JdbcTemplateCache extends AbstractJdbcCache {
private static final Logger log = LoggerFactory.getLogger(JdbcTemplateCache.class);
public JdbcTemplateCache(String name, Object cacheConfig) {
super(name, cacheConfig, null);
}
public JdbcTemplateCache(String name, Object cacheConfig, JdbcTemplate jdbcTemplate) {
super(name, cacheConfig, jdbcTemplate);
}
@Override
protected Map queryRecord(Object key) {
String sql = String.format("select `%s`, `%s` from `%s` where `%s` = ? and `%s` = ?; "
, getFieldCacheValue(), getFieldExpireTime(), getTableName(), getFieldCacheName(), getFieldCacheKey());
List> maps = getJdbcExecutor().queryForList(sql, getName(), key);
if (CollectionUtils.isEmpty(maps)) { return null; }
return maps.get(Numbers.ZERO);
}
@Override
protected boolean existRecord(Object key) {
String sql = String.format("select count(0) from `%s` where `%s` = ? and `%s` = ?; "
, getTableName(), getFieldCacheName(), getFieldCacheKey());
Integer count = getJdbcExecutor().queryForObject(sql, new Object[]{getName(), key}, Integer.class);
return count != null && count > ZERO;
}
@Override
protected boolean saveRecord(Object key, Object value, Date expireTime) {
String sql = String.format("insert into `%s`(`%s`, `%s`, `%s`, `%s`) VALUES (?, ?, ?, ?); "
, getTableName(), getFieldCacheName(), getFieldCacheKey(), getFieldCacheValue(), getFieldExpireTime());
return getJdbcExecutor().update(sql, getName(), key, value, expireTime) == ONE;
}
@Override
protected boolean updateRecord(Object key, Object value, Date expireTime) {
String sql = String.format("update `%s` set `%s` = ?, `%s` = ? where `%s` = ? and `%s` = ?; "
, getTableName(), getFieldCacheValue(), getFieldExpireTime(), getFieldCacheName(), getFieldCacheKey());
return getJdbcExecutor().update(sql, value, expireTime, getName(), key) == ONE;
}
@Override
protected boolean updateExpireTime(Object key, Date expireTime) {
String sql = String.format("update `%s` set `%s` = ? where `%s` = ? and `%s` = ?; "
, getTableName(), getFieldExpireTime(), getFieldCacheName(), getFieldCacheKey());
return getJdbcExecutor().update(sql, expireTime, getName(), key) == ONE;
}
@Override
protected boolean deleteRecord(Object key) {
String sql = String.format("delete from `%s` where `%s` = ? and `%s` = ?; "
, getTableName(), getFieldCacheName(), getFieldCacheKey());
return getJdbcExecutor().update(sql, getName(), key) == ONE;
}
@Override
public JdbcTemplate getJdbcExecutor() {
return (JdbcTemplate) super.getJdbcExecutor();
}
}