All Downloads are FREE. Search and download functionalities are using the official Maven repository.

la.renzhen.rtpt.admin.source.jdbc.JDBCCenterConfigurationSource Maven / Gradle / Ivy

package la.renzhen.rtpt.admin.source.jdbc;

import la.renzhen.rtpt.admin.source.ConfigElement;
import la.renzhen.rtpt.admin.source.CenterConfigurationSource;
import lombok.NonNull;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 

* * @author haiker * @version 11/05/2018 4:51 PM */ public class JDBCCenterConfigurationSource implements CenterConfigurationSource { RowMapper rowMapper = (rs, rowNum) -> { ConfigElement item = new ConfigElement(); item.setKey(rs.getString("item_key")); item.setValue(rs.getString("item_value")); item.setEnvironment(rs.getString("item_env")); item.setInfo(rs.getString("item_info")); item.setCreateTime(new Date(rs.getLong("item_create_time"))); return item; }; JdbcTemplate template; public JDBCCenterConfigurationSource(JdbcTemplate template) { this.template = template; } @Override public List loadAll(@NonNull String environment, @NonNull String prefix) { StringBuilder sql = new StringBuilder("select * from rtpt where item_env = ?"); List params = new ArrayList<>(); params.add(environment); if (StringUtils.hasText(prefix)) { sql.append(" and item_key like ?"); params.add(prefix + "%"); } return template.query(sql.toString(), rowMapper, params.toArray()); } @Override public List environments() { return template.queryForList("select distinct item_env as item_env from rtpt", String.class); } @Override public ConfigElement get(@NonNull String environment, @NonNull String key) { return template.queryForObject( "select * from rtpt where item_env = ? and item_key = ?", rowMapper, environment, key); } @Override public void set(@NonNull ConfigElement item) { template.update( "insert into rtpt(item_key,item_value,item_env,item_info,item_create_time) " + " value(?,?,?,?,?) " + " ON DUPLICATE KEY UPDATE " + " item_value = ?," + " item_info = ? " + "", new Object[]{ item.getKey(), item.getValue(), item.getEnvironment(), item.getInfo(), System.currentTimeMillis(), item.getValue(), item.getInfo() }); } @Override public void del(@NonNull String environment, @NonNull String key) { template.update("delete from rtpt where item_key = ? and item_env = ?", key, environment); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy