package sample.repository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Map;
@Repository
public class SampleRepositoryImpl implements SampleRepository {
@Autowired
NamedParameterJdbcTemplate namedParameterJdbcTemplate;
@Override
public void update(String sql, MapSqlParameterSource params)
{
// SQL実行直前にログに吐き出す。
sqlPrint(sql,params);
namedParameterJdbcTemplate.update(sql, params);
}
/**
* SQL文を標準出力する
* @param sql SQLクエリ文字列
* @param params パラメータ
*/
private void sqlPrint(String sql, MapSqlParameterSource params)
{
Map<String, Object> param = params.getValues();
for(String key : param.keySet())
{
result = result.replaceAll(":" + key, "'" + param.get(key).toString() + "'");
}
System.out.println(result);
}
}