java/jdbc-loopback-driver/src/info/globalcode/jdbc/loopback/PreparedStatement.java
branchv_0
changeset 172 dec1ba8af6c5
parent 171 701ec4db43fb
child 176 9aa00e214020
equal deleted inserted replaced
171:701ec4db43fb 172:dec1ba8af6c5
    29  *
    29  *
    30  * @author Ing. František Kučera (frantovo.cz)
    30  * @author Ing. František Kučera (frantovo.cz)
    31  */
    31  */
    32 public class PreparedStatement extends AbstractPreparedStatement {
    32 public class PreparedStatement extends AbstractPreparedStatement {
    33 
    33 
    34 	private Map<Integer, ObjectParameter> parameters = new HashMap<>();
    34 	private final Map<Integer, ObjectParameter> parameters = new HashMap<>();
    35 	private List<Object[]> table;
    35 	private List<Object[]> table;
    36 	private ResultSetMetaData metadata = new ResultSetMetaData();
    36 	private final ResultSetMetaData metadata = new ResultSetMetaData();
    37 
    37 
    38 	@Override
    38 	@Override
    39 	public void setObject(int parameterIndex, Object data, int targetSqlType) throws SQLException {
    39 	public void setObject(int parameterIndex, Object data, int targetSqlType) throws SQLException {
    40 		parameters.put(parameterIndex, new ObjectParameter(data, targetSqlType));
    40 		parameters.put(parameterIndex, new ObjectParameter(data, targetSqlType));
    41 	}
    41 	}
    44 	public boolean execute() throws SQLException {
    44 	public boolean execute() throws SQLException {
    45 
    45 
    46 		if (parameters.size() < 1) {
    46 		if (parameters.size() < 1) {
    47 			throw new SQLException("Missing first parameter (column count)");
    47 			throw new SQLException("Missing first parameter (column count)");
    48 		} else {
    48 		} else {
    49 			int columnCount = Integer.valueOf((String) parameters.get(1).getData());
    49 			int columnCount = Integer.valueOf(String.valueOf(parameters.get(1).getData()));
    50 
    50 
    51 			for (int i = 0; i < columnCount; i++) {
    51 			for (int i = 0; i < columnCount; i++) {
    52 				String label = parameters.get(1 + i + 1).getData().toString();
    52 				String label = parameters.get(1 + i + 1).getData().toString();
    53 				metadata.addColumn(new ResultSetMetaData.ColumnDescriptor(Types.VARCHAR, "VARCHAR", label, label));
    53 				metadata.addColumn(new ResultSetMetaData.ColumnDescriptor(Types.VARCHAR, "VARCHAR", label, label));
    54 			}
    54 			}