}
@CheckForNull
- public Long getLong(int columnIndex) throws SQLException {
+ public Long getNullableLong(int columnIndex) throws SQLException {
long l = rs.getLong(columnIndex);
return rs.wasNull() ? null : l;
}
+ public long getLong(int columnIndex) throws SQLException {
+ return rs.getLong(columnIndex);
+ }
+
@CheckForNull
- public Double getDouble(int columnIndex) throws SQLException {
+ public Double getNullableDouble(int columnIndex) throws SQLException {
double d = rs.getDouble(columnIndex);
return rs.wasNull() ? null : d;
}
+ public double getDouble(int columnIndex) throws SQLException {
+ return rs.getDouble(columnIndex);
+ }
+
@CheckForNull
- public Integer getInt(int columnIndex) throws SQLException {
+ public Integer getNullableInt(int columnIndex) throws SQLException {
int i = rs.getInt(columnIndex);
return rs.wasNull() ? null : i;
}
+ public int getInt(int columnIndex) throws SQLException {
+ return rs.getInt(columnIndex);
+ }
+
@CheckForNull
- public Boolean getBoolean(int columnIndex) throws SQLException {
+ public Boolean getNullableBoolean(int columnIndex) throws SQLException {
boolean b = rs.getBoolean(columnIndex);
return rs.wasNull() ? null : b;
}
+ public boolean getBoolean(int columnIndex) throws SQLException {
+ return rs.getBoolean(columnIndex);
+ }
+
@CheckForNull
- public String getString(int columnIndex) throws SQLException {
+ public String getNullableString(int columnIndex) throws SQLException {
String s = rs.getString(columnIndex);
return rs.wasNull() ? null : s;
}
+ public String getString(int columnIndex) throws SQLException {
+ return rs.getString(columnIndex);
+ }
+
@CheckForNull
- public Date getDate(int columnIndex) throws SQLException {
+ public Date getNullableDate(int columnIndex) throws SQLException {
Timestamp t = rs.getTimestamp(columnIndex);
return rs.wasNull() ? null : t;
}
+ public Date getDate(int columnIndex) throws SQLException {
+ return rs.getTimestamp(columnIndex);
+ }
+
@CheckForNull
- public byte[] getBytes(int columnIndex) throws SQLException {
+ public byte[] getNullableBytes(int columnIndex) throws SQLException {
byte[] b = rs.getBytes(columnIndex);
return rs.wasNull() ? null : b;
}
+
+ public byte[] getBytes(int columnIndex) throws SQLException {
+ return rs.getBytes(columnIndex);
+ }
}
static interface RowReader<T> {
@Override
public Long read(Row row) throws SQLException {
- return row.getLong(1);
+ return row.getNullableLong(1);
}
}
@Override
public String read(Row row) throws SQLException {
- return row.getString(1);
+ return row.getNullableString(1);
}
}
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long issueId = row.getLong(1);
- String ruleName = row.getString(2);
+ Long issueId = row.getNullableLong(1);
+ String ruleName = row.getNullableString(2);
update.setString(1, ruleName);
update.setLong(2, issueId);
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
- String key = row.getString(2);
+ Long id = row.getNullableLong(1);
+ String key = row.getNullableString(2);
update.setString(1, convertKey(key));
update.setLong(2, id);
return true;
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long debt = row.getLong(2);
+ Long debt = row.getNullableLong(2);
if (debt != null) {
- Long id = row.getLong(1);
+ Long id = row.getNullableLong(1);
update.setLong(1, workDurationConvertor.createFromLong(debt));
update.setDate(2, now);
update.setLong(3, id);
import org.sonar.server.db.migrations.SqlStatement;
import javax.annotation.CheckForNull;
+
import java.sql.SQLException;
/**
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
- Double value = row.getDouble(2);
+ Long id = row.getNullableLong(1);
+ Double value = row.getNullableDouble(2);
update.setString(1, convertDebtForDays(value));
update.setLong(2, id);
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
- String changeData = row.getString(2);
+ Long id = row.getNullableLong(1);
+ String changeData = row.getNullableString(2);
update.setString(1, convertChangelog(changeData));
update.setDate(2, now);
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
+ Long id = row.getNullableLong(1);
update.setString(1, Issue.STATUS_CLOSED);
update.setString(2, Issue.RESOLUTION_REMOVED);
update.setDate(3, now);
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
- Long ruleId = row.getLong(2);
+ Long id = row.getNullableLong(1);
+ Long ruleId = row.getNullableLong(2);
update.setLong(1, ruleId);
update.setLong(2, id);
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
+
import java.sql.SQLException;
import java.util.List;
private class Converter implements MassUpdate.Handler {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
- Double value = row.getDouble(2);
- Double var1 = row.getDouble(3);
- Double var2 = row.getDouble(4);
- Double var3 = row.getDouble(5);
- Double var4 = row.getDouble(6);
- Double var5 = row.getDouble(7);
+ Long id = row.getNullableLong(1);
+ Double value = row.getNullableDouble(2);
+ Double var1 = row.getNullableDouble(3);
+ Double var2 = row.getNullableDouble(4);
+ Double var3 = row.getNullableDouble(5);
+ Double var4 = row.getNullableDouble(6);
+ Double var5 = row.getNullableDouble(7);
update.setLong(1, convertDebtForDays(value));
update.setLong(2, convertDebtForDays(var1));
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
- String lang = row.getString(2);
- String name = row.getString(3);
+ Long id = row.getNullableLong(1);
+ String lang = row.getNullableString(2);
+ String name = row.getNullableString(3);
update.setString(1, Slug.slugify(String.format("%s %s %s", lang, name, RandomStringUtils.randomNumeric(5))));
update.setLong(2, id);
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
- String parentKey = row.getString(2);
+ Long id = row.getNullableLong(1);
+ String parentKey = row.getNullableString(2);
update.setString(1, parentKey);
update.setLong(2, id);
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
+ Long id = row.getNullableLong(1);
update.setDate(1, now);
update.setLong(2, id);
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
- Long measureId = row.getLong(2);
+ Long id = row.getNullableLong(1);
+ Long measureId = row.getNullableLong(2);
update.setLong(1, id);
update.setLong(2, measureId);
.list(new Select.RowReader<RuleParam>() {
@Override
public RuleParam read(Select.Row row) throws SQLException {
- return new RuleParam(row.getLong(1), row.getLong(2), row.getString(3), row.getString(4));
+ return new RuleParam(row.getNullableLong(1), row.getNullableLong(2), row.getNullableString(3), row.getNullableString(4));
}
});
.list(new Select.RowReader<ActiveRule>() {
@Override
public ActiveRule read(Select.Row row) throws SQLException {
- return new ActiveRule(row.getLong(1), row.getLong(2));
+ return new ActiveRule(row.getNullableLong(1), row.getNullableLong(2));
}
});
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- String csv = row.getString(2);
+ String csv = row.getNullableString(2);
if (isUnescaped(csv)) {
- update.setLong(1, row.getLong(1));
+ update.setLong(1, row.getNullableLong(1));
return true;
}
return false;
@Override
public boolean handle(Row row, SqlStatement update) throws SQLException {
- String projectUuid = row.getString(1);
- String fileUuid = row.getString(2);
- String source = StringUtils.defaultIfBlank(row.getString(3), "");
- Date updatedAt = row.getDate(4);
- byte[] shortRevisions = row.getBytes(5);
- byte[] longRevisions = row.getBytes(6);
- byte[] shortAuthors = row.getBytes(7);
- byte[] longAuthors = row.getBytes(8);
- byte[] shortDates = row.getBytes(9);
- byte[] longDates = row.getBytes(10);
- byte[] shortUtHits = row.getBytes(11);
- byte[] longUtHits = row.getBytes(12);
- byte[] shortUtCond = row.getBytes(13);
- byte[] longUtCond = row.getBytes(14);
- byte[] shortUtCovCond = row.getBytes(15);
- byte[] longUtCovCond = row.getBytes(16);
- byte[] shortItHits = row.getBytes(17);
- byte[] longItHits = row.getBytes(18);
- byte[] shortItCond = row.getBytes(19);
- byte[] longItCond = row.getBytes(20);
- byte[] shortItCovCond = row.getBytes(21);
- byte[] longItCovCond = row.getBytes(22);
- byte[] shortOverallHits = row.getBytes(23);
- byte[] longOverallHits = row.getBytes(24);
- byte[] shortOverallCond = row.getBytes(25);
- byte[] longOverallCond = row.getBytes(26);
- byte[] shortOverallCovCond = row.getBytes(27);
- byte[] longOverallCovCond = row.getBytes(28);
- byte[] shortDuplicationData = row.getBytes(29);
- byte[] longDuplicationData = row.getBytes(30);
+ String projectUuid = row.getNullableString(1);
+ String fileUuid = row.getNullableString(2);
+ String source = StringUtils.defaultIfBlank(row.getNullableString(3), "");
+ Date updatedAt = row.getNullableDate(4);
+ byte[] shortRevisions = row.getNullableBytes(5);
+ byte[] longRevisions = row.getNullableBytes(6);
+ byte[] shortAuthors = row.getNullableBytes(7);
+ byte[] longAuthors = row.getNullableBytes(8);
+ byte[] shortDates = row.getNullableBytes(9);
+ byte[] longDates = row.getNullableBytes(10);
+ byte[] shortUtHits = row.getNullableBytes(11);
+ byte[] longUtHits = row.getNullableBytes(12);
+ byte[] shortUtCond = row.getNullableBytes(13);
+ byte[] longUtCond = row.getNullableBytes(14);
+ byte[] shortUtCovCond = row.getNullableBytes(15);
+ byte[] longUtCovCond = row.getNullableBytes(16);
+ byte[] shortItHits = row.getNullableBytes(17);
+ byte[] longItHits = row.getNullableBytes(18);
+ byte[] shortItCond = row.getNullableBytes(19);
+ byte[] longItCond = row.getNullableBytes(20);
+ byte[] shortItCovCond = row.getNullableBytes(21);
+ byte[] longItCovCond = row.getNullableBytes(22);
+ byte[] shortOverallHits = row.getNullableBytes(23);
+ byte[] longOverallHits = row.getNullableBytes(24);
+ byte[] shortOverallCond = row.getNullableBytes(25);
+ byte[] longOverallCond = row.getNullableBytes(26);
+ byte[] shortOverallCovCond = row.getNullableBytes(27);
+ byte[] longOverallCovCond = row.getNullableBytes(28);
+ byte[] shortDuplicationData = row.getNullableBytes(29);
+ byte[] longDuplicationData = row.getNullableBytes(30);
String[] sourceData = new FileSourceDto(source,
ofNullableBytes(shortRevisions, longRevisions),
RowReader<Long> simpleLongReader = new RowReader<Long>() {
@Override
public Long read(Row row) throws SQLException {
- Long longValue = row.getLong(1);
+ Long longValue = row.getNullableLong(1);
return longValue == null ? Long.valueOf(0L) : longValue;
}
};
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
- Date createdAt = row.getDate(2);
- Date updatedAt = row.getDate(3);
+ Long id = row.getNullableLong(1);
+ Date createdAt = row.getNullableDate(2);
+ Date updatedAt = row.getNullableDate(3);
if (createdAt == null) {
update.setLong(1, now);
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- update.setDate(1, row.getDate(2));
- update.setLong(2, row.getLong(1));
+ update.setDate(1, row.getNullableDate(2));
+ update.setLong(2, row.getNullableLong(1));
return true;
}
});
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
+ Long id = row.getNullableLong(1);
update.setLong(1, now);
update.setLong(2, id);
return true;
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- String data = row.getString(2);
+ String data = row.getNullableString(2);
String[] fields = StringUtils.split(data, FIELD_SEPARATOR);
boolean found = false;
// data without 'sort' field
update.setString(1, StringUtils.join(fieldsToKeep, FIELD_SEPARATOR));
update.setDate(2, now);
- update.setLong(3, row.getLong(1));
+ update.setLong(3, row.getNullableLong(1));
}
return found;
}
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
- String data = row.getString(2);
+ Long id = row.getNullableLong(1);
+ String data = row.getNullableString(2);
if (data == null) {
return false;
}
* On a characteristic, the order can never be null
*/
public Integer getOrder() {
- return parentId == null ? order : null;
+ return parentId == null && order != null ? order : null;
}
public Characteristic setOrder(@Nullable Integer order) {
.setId(row.getInt(1))
.setKey(row.getString(2))
.setName(row.getString(3))
- .setOrder(row.getInt(4))
- .setParentId(row.getInt(5));
+ .setOrder(row.getNullableInt(4))
+ .setParentId(row.getNullableInt(5));
}
}
}
).scroll(new Select.RowHandler() {
@Override
public void handle(Select.Row row) throws SQLException {
- authorsByPersonId.put(row.getLong(1), row.getString(2));
+ authorsByPersonId.put(row.getNullableLong(1), row.getNullableString(2));
}
});
select.scroll(new Select.RowHandler() {
@Override
public void handle(Select.Row row) throws SQLException {
- users.add(new User(row.getLong(1), row.getString(2), row.getString(3), row.getString(4)));
+ users.add(new User(row.getNullableLong(1), row.getNullableString(2), row.getNullableString(3), row.getNullableString(4)));
}
});
return users;
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Date createdAt = row.getDate(1);
- Date updatedAt = row.getDate(2);
- Date startedAt = row.getDate(3);
- Date finishedAt = row.getDate(4);
- Long id = row.getLong(5);
+ Date createdAt = row.getNullableDate(1);
+ Date updatedAt = row.getNullableDate(2);
+ Date startedAt = row.getNullableDate(3);
+ Date finishedAt = row.getNullableDate(4);
+ Long id = row.getNullableLong(5);
update.setLong(1, createdAt == null ? now : Math.min(now, createdAt.getTime()));
update.setLong(2, updatedAt == null ? now : Math.min(now, updatedAt.getTime()));
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Date eventDate = row.getDate(1);
+ Date eventDate = row.getNullableDate(1);
long eventTime = eventDate == null ? now : Math.min(now, eventDate.getTime());
update.setLong(1, eventTime);
- Date createdAt = row.getDate(2);
+ Date createdAt = row.getNullableDate(2);
update.setLong(2, createdAt == null ? eventTime : Math.min(now, createdAt.getTime()));
- Long id = row.getLong(3);
+ Long id = row.getNullableLong(3);
update.setLong(3, id);
return true;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+
import java.sql.SQLException;
import java.util.Iterator;
update.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long fileSourceId = row.getLong(1);
- update.setBytes(1, toBinary(fileSourceId, row.getString(2)));
+ Long fileSourceId = row.getNullableLong(1);
+ update.setBytes(1, toBinary(fileSourceId, row.getNullableString(2)));
update.setLong(2, fileSourceId);
return true;
}
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Date createdAt = row.getDate(1);
- Date updatedAt = row.getDate(2);
- Date functionalCreatedAt = row.getDate(3);
- Long id = row.getLong(4);
+ Date createdAt = row.getNullableDate(1);
+ Date updatedAt = row.getNullableDate(2);
+ Date functionalCreatedAt = row.getNullableDate(3);
+ Long id = row.getNullableLong(4);
update.setLong(1, createdAt == null ? now : Math.min(now, createdAt.getTime()));
update.setLong(2, updatedAt == null ? now : Math.min(now, updatedAt.getTime()));
update.execute(new Handler() {
@Override
public boolean handle(Row row, SqlStatement update) throws SQLException {
- update.setString(1, row.getString(1));
- update.setString(2, row.getString(2));
- update.setLong(3, row.getLong(3));
+ update.setString(1, row.getNullableString(1));
+ update.setString(2, row.getNullableString(2));
+ update.setLong(3, row.getNullableLong(3));
return true;
}
context.prepareSelect("SELECT id, system_tags, tags FROM rules").scroll(new RowHandler() {
@Override
public void handle(Row row) throws SQLException {
- Integer id = row.getInt(1);
+ Integer id = row.getNullableInt(1);
tagsByRuleId.put(id, StringUtils.trimToNull(TAG_JOINER.join(
- StringUtils.trimToNull(row.getString(2)),
- StringUtils.trimToNull(row.getString(3)))));
+ StringUtils.trimToNull(row.getNullableString(2)),
+ StringUtils.trimToNull(row.getNullableString(3)))));
}
});
update.execute(new Handler() {
@Override
public boolean handle(Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
- Integer ruleId = row.getInt(2);
+ Long id = row.getNullableLong(1);
+ Integer ruleId = row.getNullableInt(2);
boolean updated = false;
if (tagsByRuleId.get(ruleId) != null) {
updated = true;
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
for (int i = 1; i <= 3; i++) {
- update.setLong(i, row.getDate(i) == null ? null : Math.min(now, row.getDate(i).getTime()));
+ update.setLong(i, row.getNullableDate(i) == null ? null : Math.min(now, row.getNullableDate(i).getTime()));
}
- Long id = row.getLong(4);
+ Long id = row.getNullableLong(4);
update.setLong(4, id);
return true;
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
for (int i = 1; i <= 2; i++) {
- Date date = row.getDate(i);
+ Date date = row.getNullableDate(i);
update.setLong(i, date == null ? null : Math.min(now, date.getTime()));
}
- Long id = row.getLong(3);
+ Long id = row.getNullableLong(3);
update.setLong(3, id);
return true;
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Date date = row.getDate(1);
+ Date date = row.getNullableDate(1);
update.setLong(1, date == null ? null : Math.min(now, date.getTime()));
- Long id = row.getLong(2);
+ Long id = row.getNullableLong(2);
update.setLong(2, id);
return true;
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
for (int i = 1; i <= 3; i++) {
- Date date = row.getDate(i);
+ Date date = row.getNullableDate(i);
update.setLong(i, date == null ? null : Math.min(now, date.getTime()));
}
- Long id = row.getLong(4);
+ Long id = row.getNullableLong(4);
update.setLong(4, id);
return true;
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
for (int i = 1; i <= 7; i++) {
- update.setLong(i, row.getDate(i) == null ? null : Math.min(now, row.getDate(i).getTime()));
+ update.setLong(i, row.getNullableDate(i) == null ? null : Math.min(now, row.getNullableDate(i).getTime()));
}
- Long id = row.getLong(8);
+ Long id = row.getNullableLong(8);
update.setLong(8, id);
return true;
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
- Date createdAt = row.getDate(2);
- Date updatedAt = row.getDate(3);
+ Long id = row.getNullableLong(1);
+ Date createdAt = row.getNullableDate(2);
+ Date updatedAt = row.getNullableDate(3);
if (createdAt == null) {
update.setLong(1, now);
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- String data = row.getString(2);
+ String data = row.getNullableString(2);
String[] fields = StringUtils.split(data, FIELD_SEPARATOR);
List<String> fieldsToKeep = Lists.newArrayList();
}
update.setString(1, StringUtils.join(fieldsToKeep, FIELD_SEPARATOR));
update.setDate(2, now);
- update.setLong(3, row.getLong(1));
+ update.setLong(3, row.getNullableLong(1));
return true;
}
}
import org.apache.commons.lang.StringUtils;
import org.sonar.core.persistence.Database;
-import org.sonar.server.db.migrations.*;
+import org.sonar.server.db.migrations.BaseDataChange;
+import org.sonar.server.db.migrations.MassUpdate;
import org.sonar.server.db.migrations.MassUpdate.Handler;
import org.sonar.server.db.migrations.Select.Row;
+import org.sonar.server.db.migrations.SqlStatement;
import javax.annotation.Nullable;
private static final class ModuleUuidPathUpdateHandler implements Handler {
@Override
public boolean handle(Row row, SqlStatement update) throws SQLException {
- Long id = row.getLong(1);
- String moduleUuidPath = row.getString(2);
- String uuid = row.getString(3);
- String scope = row.getString(4);
- String qualifier = row.getString(5);
+ Long id = row.getNullableLong(1);
+ String moduleUuidPath = row.getNullableString(2);
+ String uuid = row.getNullableString(3);
+ String scope = row.getNullableString(4);
+ String qualifier = row.getNullableString(5);
boolean needUpdate = false;
String newModuleUuidPath = moduleUuidPath;
context.prepareSelect("select id from persons order by id desc").scroll(new Select.RowHandler() {
@Override
public void handle(Select.Row row) throws SQLException {
- ids.add(row.getLong(1));
+ ids.add(row.getNullableLong(1));
}
});
}
context.prepareSelect("select id from persons").scroll(new Select.RowHandler() {
@Override
public void handle(Select.Row row) throws SQLException {
- long id = row.getLong(1);
+ long id = row.getNullableLong(1);
upsert.setString(1, "login" + id).setInt(2, 10 + (int) id).setLong(3, id);
upsert.execute();
}
massUpdate.execute(new MassUpdate.Handler() {
@Override
public boolean handle(Select.Row row, SqlStatement update) throws SQLException {
- long id = row.getLong(1);
+ long id = row.getNullableLong(1);
update
.setString(1, "login" + id)
.setInt(2, 10 + (int) id)
}
}
+ @Test
+ public void read_not_null_fields() throws Exception {
+ db.prepareDbUnit(getClass(), "persons.xml");
+
+ final List<Object[]> persons = new ArrayList<Object[]>();
+ new BaseDataChange(db.database()) {
+ @Override
+ public void execute(Context context) throws SQLException {
+ persons.addAll(context
+ .prepareSelect("select id,login,age,enabled,updated_at,coeff from persons where id=2")
+ .list(new Select.RowReader<Object[]>() {
+ @Override
+ public Object[] read(Select.Row row) throws SQLException {
+ return new Object[] {
+ // id, login, age, enabled
+ row.getLong(1),
+ row.getString(2),
+ row.getInt(3),
+ row.getBoolean(4),
+ row.getDate(5),
+ row.getDouble(6),
+ };
+ }
+ }));
+ }
+ }.execute();
+ assertThat(persons).hasSize(1);
+ assertThat(persons.get(0)[0]).isEqualTo(2L);
+ assertThat(persons.get(0)[1]).isEqualTo("emmerik");
+ assertThat(persons.get(0)[2]).isEqualTo(14);
+ assertThat(persons.get(0)[3]).isEqualTo(true);
+ assertThat(persons.get(0)[4]).isNotNull();
+ assertThat(persons.get(0)[5]).isEqualTo(5.2);
+ }
+
static class UserReader implements Select.RowReader<Object[]> {
@Override
public Object[] read(Select.Row row) throws SQLException {
- return new Object[]{
+ return new Object[] {
// id, login, age, enabled
- row.getLong(1),
- row.getString(2),
- row.getInt(3),
- row.getBoolean(4),
- row.getDate(5),
- row.getDouble(6),
+ row.getNullableLong(1),
+ row.getNullableString(2),
+ row.getNullableInt(3),
+ row.getNullableBoolean(4),
+ row.getNullableDate(5),
+ row.getNullableDouble(6),
};
}
}