com.github.tonivade.puredbc.JdbcRow Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of puredbc Show documentation
Show all versions of puredbc Show documentation
Pure Functional Database Connection Layer
/*
* Copyright (c) 2020, Antonio Gabriel Muñoz Conejo
* Distributed under the terms of the MIT License
*/
package com.github.tonivade.puredbc;
import com.github.tonivade.puredbc.sql.Field;
import com.github.tonivade.purefun.Producer;
import com.github.tonivade.purefun.Recoverable;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.util.Date;
import static java.util.Objects.requireNonNull;
final class JdbcRow implements Row, Recoverable {
private final ResultSet resultSet;
protected JdbcRow(ResultSet resultSet) {
this.resultSet = requireNonNull(resultSet);
}
@SuppressWarnings("unchecked")
@Override
public T get(Field field) {
return (T) run(() -> resultSet.getObject(field.name()));
}
@Override
public String getString(Field field) {
return run(() -> resultSet.getString(field.name()));
}
@Override
public Integer getInteger(Field field) {
return run(() -> resultSet.getObject(field.name(), Integer.class));
}
@Override
public Long getLong(Field field) {
return run(() -> resultSet.getObject(field.name(), Long.class));
}
@Override
public Short getShort(Field field) {
return run(() -> resultSet.getObject(field.name(), Short.class));
}
@Override
public Byte getByte(Field field) {
return run(() -> resultSet.getObject(field.name(), Byte.class));
}
@Override
public Float getFloat(Field field) {
return run(() -> resultSet.getObject(field.name(), Float.class));
}
@Override
public Double getDouble(Field field) {
return run(() -> resultSet.getObject(field.name(), Double.class));
}
@Override
public BigDecimal getBigDecimal(Field field) {
return run(() -> resultSet.getBigDecimal(field.name()));
}
@Override
public Boolean getBoolean(Field field) {
return run(() -> resultSet.getObject(field.name(), Boolean.class));
}
@Override
public Date getTimestamp(Field field) {
return run(() -> resultSet.getTimestamp(field.name()));
}
@Override
public Date getDate(Field field) {
return run(() -> resultSet.getDate(field.name()));
}
@Override
public Date getTime(Field field) {
return run(() -> resultSet.getTime(field.name()));
}
private static T run(Producer producer) {
return producer.get();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy