public void close() { if(preparedStatement != null) { connection.removeStatement(preparedStatement); try { this.getQuirks().closeStatement(preparedStatement); } catch (Throwable ex) { logger.warn("Could not close statement.", ex); } } }
@SuppressWarnings("unchecked") private Object convertParameter(Object value) { if (value == null) { return null; } Converter converter = getQuirks().converterOf(value.getClass()); if (converter == null) { // let's try to add parameter AS IS return value; } return converter.toDatabaseParam(value); }
converter = quirks.converterOf(metadata.getType()); final int columnCount = meta.getColumnCount(); String colName = quirks.getColumnName(meta, i); String colName = quirks.getColumnName(meta, i);
@Override public void setParameter(int paramIdx, PreparedStatement statement) throws SQLException { if(values.length == 0) { getConnection().getSql2o().getQuirks().setParameter(statement, paramIdx, (Object) null); } else { for (Object value : values) { getConnection().getSql2o().getQuirks().setParameter(statement, paramIdx++, value); } } } });
public T handle(ResultSet resultSet) throws SQLException { Object value = quirks.getRSVal(resultSet, 1); try { return (converter.convert(value)); } catch (ConverterException e) { throw new Sql2oException("Error occurred while converting value from database to type " + returnType, e); } } };
private <T> ResultSetHandler<T> newScalarResultSetHandler(final Class<T> returnType) { final Quirks quirks = getQuirks(); try { final Converter<T> converter = throwIfNull(returnType, quirks.converterOf(returnType)); return resultSet -> { Object value = quirks.getRSVal(resultSet, 1); try { return (converter.convert(value)); } catch (ConverterException e) { throw new Sql2oException("Error occurred while converting value from database to type " + returnType, e); } }; } catch (ConverterException e) { throw new Sql2oException("Can't get converter for type " + returnType, e); } }
protected String getColumnName(int colIdx) throws SQLException { return quirks.getColumnName(meta, colIdx); }
public Query createQuery(String queryText){ boolean returnGeneratedKeys = this.sql2o.getQuirks().returnGeneratedKeysByDefault(); return createQuery(queryText, returnGeneratedKeys); }
private Query(Connection connection, String queryText, boolean returnGeneratedKeys, String[] columnNames) { this.connection = connection; this.returnGeneratedKeys = returnGeneratedKeys; this.columnNames = columnNames; this.setColumnMappings(connection.getSql2o().getDefaultColumnMappings()); this.caseSensitive = connection.getSql2o().isDefaultCaseSensitive(); paramNameToIdxMap = new HashMap<>(); parameters = new HashMap<>(); parsedQuery = connection.getSql2o().getQuirks().getSqlParameterParsingStrategy().parseSql(queryText, paramNameToIdxMap); }
/** * Add custom Type converter * * @param converters converter see {@link Converter} * @return Anima */ public Anima addConverter(Converter<?>... converters) { ifThrow(null == converters || converters.length == 0, new AnimaException("converters not be null.")); for (Converter<?> converter : converters) { Class<?> type = AnimaUtils.getConverterType(converter); sql2o.getQuirks().addConverter(type, converter); } return this; }
@Override public void setParameter(int paramIdx, PreparedStatement statement) throws SQLException { getConnection().getSql2o().getQuirks().setParameter(statement, paramIdx, value); } });
@Override protected Row readNext() throws SQLException { Row row = new Row(columnNameToIdxMap, columns.size(), isCaseSensitive,this.quirks); for (Column column : columns) { row.addValue(column.getIndex(), quirks.getRSVal(rs, column.getIndex() + 1)); } return row; } }
@SuppressWarnings("unchecked") public ResultSetHandler<T> newResultSetHandler(final ResultSetMetaData meta) throws SQLException { StringBuilder stringBuilder = new StringBuilder(); for (int i = 1; i <= meta.getColumnCount(); i++) { stringBuilder.append(quirks.getColumnName(meta,i)).append("\n"); } return c.get(new Key(stringBuilder.toString(), this),meta); }
public Query createQuery(String queryText){ boolean returnGeneratedKeys = this.sql2o.getQuirks().returnGeneratedKeysByDefault(); return createQuery(queryText, returnGeneratedKeys); }
private Query(Connection connection, String queryText, boolean returnGeneratedKeys, String[] columnNames) { this.connection = connection; this.returnGeneratedKeys = returnGeneratedKeys; this.columnNames = columnNames; this.setColumnMappings(connection.getSql2o().getDefaultColumnMappings()); this.caseSensitive = connection.getSql2o().isDefaultCaseSensitive(); paramNameToIdxMap = new HashMap<>(); parameters = new HashMap<>(); parsedQuery = connection.getSql2o().getQuirks().getSqlParameterParsingStrategy().parseSql(queryText, paramNameToIdxMap); }
final Converter converter = quirks.converterOf(setter.getType());
@Override public void setParameter(int paramIdx, PreparedStatement statement) throws SQLException { getConnection().getSql2o().getQuirks().setParameter(statement, paramIdx, value); } });
converter = quirks.converterOf(metadata.getType()); final int columnCount = meta.getColumnCount(); String colName = quirks.getColumnName(meta, i); String colName = quirks.getColumnName(meta, i);
@SuppressWarnings("unchecked") public T handle(ResultSet resultSet) throws SQLException { if (useExecuteScalar) { try { return (T) converter.convert(quirks.getRSVal(resultSet, 1)); } catch (ConverterException e) { throw new Sql2oException("Error occurred while converting value from database to type " + metadata.getType(), e); } } // otherwise we want executeAndFetch with object mapping Object pojo = metadata.getObjectConstructor().newInstance(); for (int colIdx = 1; colIdx <= columnCount; colIdx++) { Setter setter = setters[colIdx]; if (setter == null) continue; setter.setProperty(pojo, quirks.getRSVal(resultSet, colIdx)); } return (T) pojo; } };
getSql2o().getQuirks().closeStatement(statement); } catch (Throwable e) { logger.warn("Could not close statement.", e);