Add overloads for QueryMapper.insertGetGeneratedKeyType

This commit is contained in:
Travis Burtrum 2018-09-25 20:38:43 -04:00
parent d9a83a5edf
commit 7524893ed7
4 changed files with 87 additions and 5 deletions

View File

@ -118,6 +118,28 @@ public class CachingQueryMapper extends QueryMapper {
return ps;
}
protected PreparedStatement getInsertPreparedStatement(final String sql, final int[] columnIndexes) throws SQLException {
PreparedStatement ps = cache.get(sql);
if (ps == null) {
//System.out.println("cache miss");
ps = conn.prepareStatement(sql, columnIndexes);
cache.put(sql, ps);
}
//else System.out.println("cache hit");
return ps;
}
protected PreparedStatement getInsertPreparedStatement(final String sql, final String[] columnNames) throws SQLException {
PreparedStatement ps = cache.get(sql);
if (ps == null) {
//System.out.println("cache miss");
ps = conn.prepareStatement(sql, columnNames);
cache.put(sql, ps);
}
//else System.out.println("cache hit");
return ps;
}
public void clearCache(boolean close) {
//System.out.println("cache size: "+cache.size());
for (PreparedStatement ps : cache.values())
@ -157,6 +179,16 @@ public class CachingQueryMapper extends QueryMapper {
return super.insertGetGeneratedKeyType(getInsertPreparedStatement(sql, Statement.RETURN_GENERATED_KEYS), typeReference, bindObjects);
}
@Override
public <T> T insertGetGeneratedKeyType(String sql, int[] columnIndexes, TypeReference<T> typeReference, Object... bindObjects) throws SQLException {
return super.insertGetGeneratedKeyType(getInsertPreparedStatement(sql, columnIndexes), typeReference, bindObjects);
}
@Override
public <T> T insertGetGeneratedKeyType(String sql, String[] columnNames, TypeReference<T> typeReference, Object... bindObjects) throws SQLException {
return super.insertGetGeneratedKeyType(getInsertPreparedStatement(sql, columnNames), typeReference, bindObjects);
}
// these grab ResultSets from the database
@Override

View File

@ -302,6 +302,16 @@ public class ListQueryMapper extends QueryMapper {
return delegate.insertGetGeneratedKeyType(prepareSql(sql, bindObjects), typeReference, bindObjects);
}
@Override
public <T> T insertGetGeneratedKeyType(String sql, int[] columnIndexes, TypeReference<T> typeReference, Object... bindObjects) throws SQLException {
return delegate.insertGetGeneratedKeyType(prepareSql(sql, bindObjects), columnIndexes, typeReference, bindObjects);
}
@Override
public <T> T insertGetGeneratedKeyType(String sql, String[] columnNames, TypeReference<T> typeReference, Object... bindObjects) throws SQLException {
return delegate.insertGetGeneratedKeyType(prepareSql(sql, bindObjects), columnNames, typeReference, bindObjects);
}
// DO NOT EDIT BELOW THIS LINE, OR CHANGE THIS COMMENT, CODE AUTOMATICALLY GENERATED BY genQueryMapper.sh
@Override

View File

@ -105,7 +105,7 @@ public class NullQueryMapper extends QueryMapper {
}
@Override
public Long insertGetGeneratedKey(PreparedStatement ps, Object... bindObjects) throws SQLException {
public Long insertGetGeneratedKey(PreparedStatement ps, Object... bindObjects) {
try {
return delegate.insertGetGeneratedKey(ps, bindObjects);
} catch (Throwable e) {
@ -115,7 +115,7 @@ public class NullQueryMapper extends QueryMapper {
}
@Override
public <T> T insertGetGeneratedKeyType(PreparedStatement ps, TypeReference<T> typeReference, Object... bindObjects) throws SQLException {
public <T> T insertGetGeneratedKeyType(PreparedStatement ps, TypeReference<T> typeReference, Object... bindObjects) {
try {
return delegate.insertGetGeneratedKeyType(ps, typeReference, bindObjects);
} catch (Throwable e) {
@ -145,7 +145,7 @@ public class NullQueryMapper extends QueryMapper {
}
@Override
public Long insertGetGeneratedKey(String sql, Object... bindObjects) throws SQLException {
public Long insertGetGeneratedKey(String sql, Object... bindObjects) {
try {
return delegate.insertGetGeneratedKey(sql, bindObjects);
} catch (Throwable e) {
@ -155,7 +155,7 @@ public class NullQueryMapper extends QueryMapper {
}
@Override
public <T> T insertGetGeneratedKeyType(String sql, TypeReference<T> typeReference, Object... bindObjects) throws SQLException {
public <T> T insertGetGeneratedKeyType(String sql, TypeReference<T> typeReference, Object... bindObjects) {
try {
return delegate.insertGetGeneratedKeyType(sql, typeReference, bindObjects);
} catch (Throwable e) {
@ -164,6 +164,26 @@ public class NullQueryMapper extends QueryMapper {
return null;
}
@Override
public <T> T insertGetGeneratedKeyType(String sql, int[] columnIndexes, TypeReference<T> typeReference, Object... bindObjects) {
try {
return delegate.insertGetGeneratedKeyType(sql, columnIndexes, typeReference, bindObjects);
} catch (Throwable e) {
if (verbose) e.printStackTrace();
}
return null;
}
@Override
public <T> T insertGetGeneratedKeyType(String sql, String[] columnNames, TypeReference<T> typeReference, Object... bindObjects) {
try {
return delegate.insertGetGeneratedKeyType(sql, columnNames, typeReference, bindObjects);
} catch (Throwable e) {
if (verbose) e.printStackTrace();
}
return null;
}
// these update the database using UpdateableDTOs
@Override

View File

@ -341,7 +341,7 @@ public class QueryMapper implements JdbcMapper {
// so we lazily cache oracleDatabase just in this one function
if(oracleDatabase == null)
oracleDatabase = conn.isWrapperFor(OptimalInList.oracleConnection);
oracleDatabase = OptimalInList.isWrapperFor(conn, OptimalInList.oracleConnection);
PreparedStatement ps = null;
try {
@ -362,6 +362,26 @@ public class QueryMapper implements JdbcMapper {
}
}
public <T> T insertGetGeneratedKeyType(final String sql, final int[] columnIndexes, final TypeReference<T> typeReference, final Object... bindObjects) throws SQLException {
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql, columnIndexes);
return this.insertGetGeneratedKeyType(ps, typeReference, bindObjects);
} finally {
tryClose(ps);
}
}
public <T> T insertGetGeneratedKeyType(final String sql, final String[] columnNames, final TypeReference<T> typeReference, final Object... bindObjects) throws SQLException {
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql, columnNames);
return this.insertGetGeneratedKeyType(ps, typeReference, bindObjects);
} finally {
tryClose(ps);
}
}
// these update the database using UpdateableDTOs
public int updateRows(UpdateableDTO dto) throws SQLException {