Revision 50751
Added by Claudio Atzori about 6 years ago
DatabaseUtils.java | ||
---|---|---|
23 | 23 |
import eu.dnetlib.enabling.database.rmi.DatabaseException; |
24 | 24 |
import eu.dnetlib.miscutils.datetime.DateUtils; |
25 | 25 |
import eu.dnetlib.miscutils.functional.string.Sanitizer; |
26 |
import org.apache.commons.dbcp2.BasicDataSource; |
|
26 | 27 |
import org.apache.commons.lang.BooleanUtils; |
27 | 28 |
import org.apache.commons.logging.Log; |
28 | 29 |
import org.apache.commons.logging.LogFactory; |
... | ... | |
160 | 161 |
con.setAutoCommit(false); |
161 | 162 |
rs.setFetchSize(getFetchSize()); |
162 | 163 |
boolean timeout = false; |
164 |
log.info(String.format("starting to populate queue T-id %s", Thread.currentThread().getId())); |
|
163 | 165 |
while (rs.next()) { |
164 | 166 |
ResultSetMetaData md = rs.getMetaData(); |
165 | 167 |
Map<String, Object> row = new HashMap<>(); |
... | ... | |
171 | 173 |
break; |
172 | 174 |
} |
173 | 175 |
} |
174 |
|
|
175 | 176 |
if (timeout) { |
176 | 177 |
throw new RuntimeException(String.format("queue full, consumer did not consume for %s seconds", BLOCKING_QUEUE_TIMEOUT)); |
177 | 178 |
} |
... | ... | |
187 | 188 |
return (T) queue; |
188 | 189 |
} |
189 | 190 |
|
190 |
final JdbcTemplate jdbcTemplate = jdbcTemplateFactory.createJdbcTemplate(dbName); |
|
191 |
if (clazz == Integer.class) return (T) jdbcTemplate.queryForObject(query, Integer.class); |
|
192 |
else if (clazz == List.class) return (T) jdbcTemplate.queryForList(query); |
|
193 |
else if (clazz == Map.class) return (T) jdbcTemplate.queryForMap(query); |
|
194 |
else if (clazz == SqlRowSet.class) return (T) jdbcTemplate.queryForRowSet(query); |
|
195 |
else { |
|
196 |
jdbcTemplate.update(query); |
|
197 |
return null; |
|
191 |
try(BasicDataSource ds = (BasicDataSource) dataSourceFactory.createDataSource(dbName)) { |
|
192 |
final JdbcTemplate jdbcTemplate = jdbcTemplateFactory.createJdbcTemplate(ds); |
|
193 |
if (clazz == Integer.class) return (T) jdbcTemplate.queryForObject(query, Integer.class); |
|
194 |
else if (clazz == List.class) return (T) jdbcTemplate.queryForList(query); |
|
195 |
else if (clazz == Map.class) return (T) jdbcTemplate.queryForMap(query); |
|
196 |
else if (clazz == SqlRowSet.class) return (T) jdbcTemplate.queryForRowSet(query); |
|
197 |
else { |
|
198 |
jdbcTemplate.update(query); |
|
199 |
return null; |
|
200 |
} |
|
201 |
} catch (SQLException e) { |
|
202 |
throw new DatabaseException(e); |
|
198 | 203 |
} |
199 | 204 |
} |
200 | 205 |
|
Also available in: Unified diff
experimenting with BasicDatasource(s) from commons-dbcp2