Skip to content

Commit

Permalink
Added logging for sql
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed May 8, 2012
1 parent f282b30 commit e75fbce
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 24 deletions.
@@ -1,19 +1,34 @@
package org.jumpmind.db.sql;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.jumpmind.db.model.Table;
import org.jumpmind.db.sql.DmlStatement.DmlType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

abstract public class AbstractSqlTemplate implements ISqlTemplate {

protected final static Logger log = LoggerFactory.getLogger(AbstractSqlTemplate.class
.getPackage().getName());

protected boolean dateOverrideToTimestamp;

protected String identifierQuoteString;

protected void logSql(String sql, Object[] args) {
if (log.isDebugEnabled()) {
log.debug(sql);
if (args != null && args.length > 0) {
log.debug("sql args: {}", Arrays.toString(args));
}
}
}

public <T> T queryForObject(String sql, ISqlRowMapper<T> mapper, Object... args) {
List<T> list = query(sql, mapper, args);
if (list != null && list.size() > 0) {
Expand All @@ -22,18 +37,18 @@ public <T> T queryForObject(String sql, ISqlRowMapper<T> mapper, Object... args)
return null;
}
}
public String queryForString(String sql, Object... args) {

public String queryForString(String sql, Object... args) {
return queryForObject(sql, String.class, args);
}
public int queryForInt(String sql, Map<String,Object> params) {

public int queryForInt(String sql, Map<String, Object> params) {
ParsedSql parsedSql = NamedParameterUtils.parseSqlStatement(sql);
String newSql = NamedParameterUtils.substituteNamedParameters(parsedSql, params);
Object[] args = NamedParameterUtils.buildValueArray(parsedSql, params);
Object[] args = NamedParameterUtils.buildValueArray(parsedSql, params);
return queryForInt(newSql, args);
}

public int queryForInt(String sql, Object... args) {
Integer number = queryForObject(sql, Integer.class, args);
if (number != null) {
Expand All @@ -51,9 +66,9 @@ public long queryForLong(String sql, Object... args) {
return 0l;
}
}
public Map<String, Object> queryForMap(String sql, final String keyColumn, final String valueColumn,
Object... args) {

public Map<String, Object> queryForMap(String sql, final String keyColumn,
final String valueColumn, Object... args) {
final Map<String, Object> map = new HashMap<String, Object>();
query(sql, new ISqlRowMapper<Object>() {
public Object mapRow(Row rs) {
Expand All @@ -63,7 +78,7 @@ public Object mapRow(Row rs) {
}, args);
return map;
}

public <T> Map<String, T> queryForMap(final String sql, final ISqlRowMapper<T> mapper,
final String keyColumn, Object... args) {
final Map<String, T> result = new HashMap<String, T>();
Expand Down Expand Up @@ -100,24 +115,24 @@ public <T, W> Map<T, W> query(String sql, String keyCol, String valueCol, Object
}
return map;
}

public <T> List<T> query(String sql, int maxRowsToFetch, ISqlRowMapper<T> mapper,
Object... params) {
Object... params) {
return query(sql, maxRowsToFetch, mapper, params, null);
}

public <T> List<T> query(String sql, int maxRowsToFetch, ISqlRowMapper<T> mapper,
Map<String, Object> namedParams) {
ParsedSql parsedSql = NamedParameterUtils.parseSqlStatement(sql);
String newSql = NamedParameterUtils.substituteNamedParameters(parsedSql, namedParams);
Object[] params = NamedParameterUtils.buildValueArray(parsedSql, namedParams);
Object[] params = NamedParameterUtils.buildValueArray(parsedSql, namedParams);
return query(newSql, maxRowsToFetch, mapper, params, null);
}

public <T> List<T> query(String sql, ISqlRowMapper<T> mapper, Map<String, Object> namedParams) {
ParsedSql parsedSql = NamedParameterUtils.parseSqlStatement(sql);
String newSql = NamedParameterUtils.substituteNamedParameters(parsedSql, namedParams);
Object[] params = NamedParameterUtils.buildValueArray(parsedSql, namedParams);
Object[] params = NamedParameterUtils.buildValueArray(parsedSql, namedParams);
return query(newSql, mapper, params, null);
}

Expand All @@ -128,7 +143,7 @@ public Row mapRow(Row row) {
}
}, args, types);
}

public <T> List<T> query(String sql, ISqlRowMapper<T> mapper, Object[] args, int[] types) {
return query(sql, -1, mapper, args, types);
}
Expand Down Expand Up @@ -268,5 +283,4 @@ public SqlException translate(String message, Exception ex) {
}
}


}
Expand Up @@ -77,11 +77,13 @@ public LobHandler getLobHandler() {
}

public <T> ISqlReadCursor<T> queryForCursor(String sql, ISqlRowMapper<T> mapper,
Object[] values, int[] types) {
return new JdbcSqlReadCursor<T>(this, mapper, sql, values, types);
Object[] args, int[] types) {
logSql(sql, args);
return new JdbcSqlReadCursor<T>(this, mapper, sql, args, types);
}

public <T> T queryForObject(final String sql, final Class<T> clazz, final Object... args) {
logSql(sql, args);
return execute(new IConnectionCallback<T>() {
public T execute(Connection con) throws SQLException {
T result = null;
Expand All @@ -105,6 +107,7 @@ public T execute(Connection con) throws SQLException {
}

public byte[] queryForBlob(final String sql, final Object... args) {
logSql(sql, args);
return execute(new IConnectionCallback<byte[]>() {
public byte[] execute(Connection con) throws SQLException {
byte[] result = null;
Expand All @@ -128,6 +131,7 @@ public byte[] execute(Connection con) throws SQLException {
}

public String queryForClob(final String sql, final Object... args) {
logSql(sql, args);
return execute(new IConnectionCallback<String>() {
public String execute(Connection con) throws SQLException {
String result = null;
Expand All @@ -151,6 +155,7 @@ public String execute(Connection con) throws SQLException {
}

public Map<String, Object> queryForMap(final String sql, final Object... args) {
logSql(sql, args);
return execute(new IConnectionCallback<Map<String, Object>>() {
public Map<String, Object> execute(Connection con) throws SQLException {
Map<String, Object> result = null;
Expand Down Expand Up @@ -213,10 +218,11 @@ public ISqlTransaction startSqlTransaction() {
return new JdbcSqlTransaction(this);
}

public int update(final String sql, final Object[] values, final int[] types) {
public int update(final String sql, final Object[] args, final int[] types) {
logSql(sql, args);
return execute(new IConnectionCallback<Integer>() {
public Integer execute(Connection con) throws SQLException {
if (values == null) {
if (args == null) {
Statement stmt = null;
try {
stmt = con.createStatement();
Expand All @@ -230,9 +236,9 @@ public Integer execute(Connection con) throws SQLException {
ps = con.prepareStatement(sql);
ps.setQueryTimeout(settings.getQueryTimeout());
if (types != null) {
JdbcUtils.setValues(ps, values, types, getLobHandler());
JdbcUtils.setValues(ps, args, types, getLobHandler());
} else {
JdbcUtils.setValues(ps, values);
JdbcUtils.setValues(ps, args);
}
return ps.executeUpdate();
} finally {
Expand All @@ -259,6 +265,7 @@ public Integer execute(Connection con) throws SQLException {
stmt = con.createStatement();
int statementCount = 0;
for (String statement : sql) {
logSql(statement, null);
try {
boolean hasResults = stmt.execute(statement);
updateCount += stmt.getUpdateCount();
Expand Down

0 comments on commit e75fbce

Please sign in to comment.