mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#2105 - Refactor extract interface DataBinder from DataBind
This commit is contained in:
@@ -20,7 +20,7 @@ import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
public class DataBind {
|
||||
public class DataBind implements DataBinder {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(DataBind.class);
|
||||
|
||||
@@ -42,51 +42,52 @@ public class DataBind {
|
||||
this.connection = connection;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append an entry to the bind log.
|
||||
*/
|
||||
@Override
|
||||
public StringBuilder append(Object entry) {
|
||||
return bindLog.append(entry);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the bind log.
|
||||
*/
|
||||
@Override
|
||||
public StringBuilder log() {
|
||||
return bindLog;
|
||||
}
|
||||
|
||||
/**
|
||||
* Close the underlying prepared statement.
|
||||
*/
|
||||
@Override
|
||||
public void close() throws SQLException {
|
||||
pstmt.close();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int currentPos() {
|
||||
return pos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setObject(Object value) throws SQLException {
|
||||
pstmt.setObject(++pos, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setObject(Object value, int sqlType) throws SQLException {
|
||||
pstmt.setObject(++pos, value, sqlType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNull(int jdbcType) throws SQLException {
|
||||
pstmt.setNull(++pos, jdbcType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int nextPos() {
|
||||
return ++pos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decrementPos() {
|
||||
--pos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int executeUpdate() throws SQLException {
|
||||
try {
|
||||
return pstmt.executeUpdate();
|
||||
@@ -108,38 +109,47 @@ public class DataBind {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public PreparedStatement getPstmt() {
|
||||
return pstmt;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setString(String s) throws SQLException {
|
||||
pstmt.setString(++pos, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInt(int i) throws SQLException {
|
||||
pstmt.setInt(++pos, i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLong(long i) throws SQLException {
|
||||
pstmt.setLong(++pos, i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setShort(short i) throws SQLException {
|
||||
pstmt.setShort(++pos, i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFloat(float i) throws SQLException {
|
||||
pstmt.setFloat(++pos, i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDouble(double i) throws SQLException {
|
||||
pstmt.setDouble(++pos, i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBigDecimal(BigDecimal v) throws SQLException {
|
||||
pstmt.setBigDecimal(++pos, v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDate(java.sql.Date v) throws SQLException {
|
||||
Calendar timeZone = dataTimeZone.getDateTimeZone();
|
||||
if (timeZone != null) {
|
||||
@@ -149,6 +159,7 @@ public class DataBind {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTimestamp(Timestamp v) throws SQLException {
|
||||
Calendar timeZone = dataTimeZone.getTimeZone();
|
||||
if (timeZone != null) {
|
||||
@@ -158,6 +169,7 @@ public class DataBind {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTime(Time v) throws SQLException {
|
||||
Calendar timeZone = dataTimeZone.getTimeZone();
|
||||
if (timeZone != null) {
|
||||
@@ -167,30 +179,32 @@ public class DataBind {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBoolean(boolean v) throws SQLException {
|
||||
pstmt.setBoolean(++pos, v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBytes(byte[] v) throws SQLException {
|
||||
pstmt.setBytes(++pos, v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setByte(byte v) throws SQLException {
|
||||
pstmt.setByte(++pos, v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setChar(char v) throws SQLException {
|
||||
pstmt.setString(++pos, String.valueOf(v));
|
||||
}
|
||||
|
||||
/**
|
||||
* Return any inputStreams that have been bound (and should be closed).
|
||||
* This is used for batched statement execution only.
|
||||
*/
|
||||
@Override
|
||||
public List<InputStream> getInputStreams() {
|
||||
return inputStreams;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBinaryStream(InputStream inputStream, long length) throws SQLException {
|
||||
if (inputStreams == null) {
|
||||
inputStreams = new ArrayList<>();
|
||||
@@ -199,16 +213,19 @@ public class DataBind {
|
||||
pstmt.setBinaryStream(++pos, inputStream, length);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBlob(byte[] bytes) throws SQLException {
|
||||
ByteArrayInputStream is = new ByteArrayInputStream(bytes);
|
||||
pstmt.setBinaryStream(++pos, is, bytes.length);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setClob(String content) throws SQLException {
|
||||
Reader reader = new StringReader(content);
|
||||
pstmt.setCharacterStream(++pos, reader, content.length());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setArray(String arrayType, Object[] elements) throws SQLException {
|
||||
Array array = connection.createArrayOf(arrayType, elements);
|
||||
pstmt.setArray(++pos, array);
|
||||
|
||||
@@ -0,0 +1,166 @@
|
||||
package io.ebeaninternal.server.type;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Time;
|
||||
import java.sql.Timestamp;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Data binder for ScalarTypes generally to an underlying PreparedStatement.
|
||||
*/
|
||||
public interface DataBinder {
|
||||
|
||||
/**
|
||||
* Add something to the binding log.
|
||||
*/
|
||||
StringBuilder append(Object entry);
|
||||
|
||||
/**
|
||||
* Return the binding log.
|
||||
*/
|
||||
StringBuilder log();
|
||||
|
||||
/**
|
||||
* Close the underlying prepared statement.
|
||||
*/
|
||||
void close() throws SQLException;
|
||||
|
||||
/**
|
||||
* Return the current position. Effectively column binding position.
|
||||
*/
|
||||
int currentPos();
|
||||
|
||||
/**
|
||||
* Return the next position.
|
||||
*/
|
||||
int nextPos();
|
||||
|
||||
/**
|
||||
* Decrement the position.
|
||||
*/
|
||||
void decrementPos();
|
||||
|
||||
/**
|
||||
* Execute as a dml statement.
|
||||
*/
|
||||
int executeUpdate() throws SQLException;
|
||||
|
||||
/**
|
||||
* Return the underlying PreparedStatement.
|
||||
*/
|
||||
PreparedStatement getPstmt();
|
||||
|
||||
/**
|
||||
* Return any inputStreams that have been bound (and should be closed).
|
||||
* This is used for batched statement execution only.
|
||||
*/
|
||||
List<InputStream> getInputStreams();
|
||||
|
||||
/**
|
||||
* Bind an object.
|
||||
*/
|
||||
void setObject(Object value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind an object with given sql type.
|
||||
*/
|
||||
void setObject(Object value, int sqlType) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind null.
|
||||
*/
|
||||
void setNull(int jdbcType) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a string value.
|
||||
*/
|
||||
void setString(String value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a int value.
|
||||
*/
|
||||
void setInt(int value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a long value.
|
||||
*/
|
||||
void setLong(long value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a short value.
|
||||
*/
|
||||
void setShort(short value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a float value.
|
||||
*/
|
||||
void setFloat(float value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a double value.
|
||||
*/
|
||||
void setDouble(double value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a BigDecimal value.
|
||||
*/
|
||||
void setBigDecimal(BigDecimal value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a date value.
|
||||
*/
|
||||
void setDate(java.sql.Date value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a timestamp value.
|
||||
*/
|
||||
void setTimestamp(Timestamp value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a time value.
|
||||
*/
|
||||
void setTime(Time value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a boolean value.
|
||||
*/
|
||||
void setBoolean(boolean value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a byte array value.
|
||||
*/
|
||||
void setBytes(byte[] value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a byte value.
|
||||
*/
|
||||
void setByte(byte value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a char value.
|
||||
*/
|
||||
void setChar(char value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a InputStream value.
|
||||
*/
|
||||
void setBinaryStream(InputStream inputStream, long length) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a byte array value.
|
||||
*/
|
||||
void setBlob(byte[] bytes) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind a string clob value.
|
||||
*/
|
||||
void setClob(String content) throws SQLException;
|
||||
|
||||
/**
|
||||
* Bind an array value.
|
||||
*/
|
||||
void setArray(String arrayType, Object[] elements) throws SQLException;
|
||||
}
|
||||
@@ -26,14 +26,13 @@ public class EnumToDbIntegerMap extends EnumToDbValueMap<Integer> {
|
||||
public EnumToDbIntegerMap(boolean allowNulls) {
|
||||
super(allowNulls, true);
|
||||
}
|
||||
|
||||
|
||||
public void add(Object beanValue, Integer dbValue, String name) {
|
||||
addInternal(beanValue, dbValue, name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumToDbIntegerMap add(Object beanValue, String stringDbValue, String name) {
|
||||
|
||||
try {
|
||||
Integer value = Integer.valueOf(stringDbValue);
|
||||
addInternal(beanValue, value, name);
|
||||
@@ -49,19 +48,19 @@ public class EnumToDbIntegerMap extends EnumToDbValueMap<Integer> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Object value) throws SQLException {
|
||||
public void bind(DataBinder binder, Object value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.INTEGER);
|
||||
binder.setNull(Types.INTEGER);
|
||||
} else {
|
||||
Integer s = getDbValue(value);
|
||||
b.setInt(s);
|
||||
binder.setInt(s);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object read(DataReader dataReader) throws SQLException {
|
||||
Integer i = dataReader.getInt();
|
||||
public Object read(DataReader reader) throws SQLException {
|
||||
Integer i = reader.getInt();
|
||||
if (i == null) {
|
||||
return null;
|
||||
} else {
|
||||
|
||||
@@ -8,7 +8,6 @@ import java.sql.Types;
|
||||
*/
|
||||
public class EnumToDbStringMap extends EnumToDbValueMap<String> {
|
||||
|
||||
|
||||
@Override
|
||||
public int getDbType() {
|
||||
return Types.VARCHAR;
|
||||
@@ -21,19 +20,18 @@ public class EnumToDbStringMap extends EnumToDbValueMap<String> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Object value) throws SQLException {
|
||||
public void bind(DataBinder binder, Object value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
String s = getDbValue(value);
|
||||
b.setString(s);
|
||||
binder.setString(s);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object read(DataReader dataReader) throws SQLException {
|
||||
String s = dataReader.getString();
|
||||
public Object read(DataReader reader) throws SQLException {
|
||||
String s = reader.getString();
|
||||
if (s == null) {
|
||||
return null;
|
||||
} else {
|
||||
|
||||
@@ -69,12 +69,12 @@ public abstract class EnumToDbValueMap<T> {
|
||||
/**
|
||||
* Bind using the correct database type.
|
||||
*/
|
||||
public abstract void bind(DataBind b, Object value) throws SQLException;
|
||||
public abstract void bind(DataBinder binder, Object value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Read using the correct database type.
|
||||
*/
|
||||
public abstract Object read(DataReader dataReader) throws SQLException;
|
||||
public abstract Object read(DataReader reader) throws SQLException;
|
||||
|
||||
/**
|
||||
* Return the database type.
|
||||
@@ -94,7 +94,6 @@ public abstract class EnumToDbValueMap<T> {
|
||||
* </p>
|
||||
*/
|
||||
protected void addInternal(Object beanValue, T dbValue, String name) {
|
||||
|
||||
keyMap.put(beanValue, dbValue);
|
||||
valueMap.put(dbValue, beanValue);
|
||||
nameMap.put(name, beanValue);
|
||||
|
||||
@@ -10,5 +10,5 @@ public interface GeoTypeBinder {
|
||||
/**
|
||||
* Bind the geometry type.
|
||||
*/
|
||||
void bind(DataBind b, int dataType, Object data) throws SQLException;
|
||||
void bind(DataBinder binder, int dataType, Object data) throws SQLException;
|
||||
}
|
||||
|
||||
@@ -10,6 +10,6 @@ public interface ScalarDataReader<T> {
|
||||
/**
|
||||
* Read and return the appropriate value from the dataReader.
|
||||
*/
|
||||
T read(DataReader dataReader) throws SQLException;
|
||||
T read(DataReader reader) throws SQLException;
|
||||
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ public interface ScalarType<T> extends StringParser, StringFormatter, ScalarData
|
||||
* JDBC type.
|
||||
* </p>
|
||||
*/
|
||||
void bind(DataBind bind, T value) throws SQLException;
|
||||
void bind(DataBinder binder, T value) throws SQLException;
|
||||
|
||||
/**
|
||||
* Convert the value as necessary to the JDBC type.
|
||||
|
||||
@@ -114,20 +114,20 @@ public class ScalarTypeArrayList extends ScalarTypeArrayBase<List> implements Sc
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind bind, List value) throws SQLException {
|
||||
public void bind(DataBinder binder, List value) throws SQLException {
|
||||
if (value == null) {
|
||||
bindNull(bind);
|
||||
bindNull(binder);
|
||||
} else {
|
||||
bind.setArray(arrayType, toArray(value));
|
||||
binder.setArray(arrayType, toArray(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void bindNull(DataBind bind) throws SQLException {
|
||||
protected void bindNull(DataBinder binder) throws SQLException {
|
||||
if (nullable) {
|
||||
bind.setNull(Types.ARRAY);
|
||||
binder.setNull(Types.ARRAY);
|
||||
} else {
|
||||
bind.setArray(arrayType, toArray(EMPTY_LIST));
|
||||
binder.setArray(arrayType, toArray(EMPTY_LIST));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -68,20 +68,20 @@ class ScalarTypeArrayListH2 extends ScalarTypeArrayList {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind bind, List value) throws SQLException {
|
||||
public void bind(DataBinder binder, List value) throws SQLException {
|
||||
if (value == null) {
|
||||
bindNull(bind);
|
||||
bindNull(binder);
|
||||
} else {
|
||||
bind.setObject(toArray(value));
|
||||
binder.setObject(toArray(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void bindNull(DataBind bind) throws SQLException {
|
||||
protected void bindNull(DataBinder binder) throws SQLException {
|
||||
if (nullable) {
|
||||
bind.setNull(Types.ARRAY);
|
||||
binder.setNull(Types.ARRAY);
|
||||
} else {
|
||||
bind.setObject(toArray(EMPTY_LIST));
|
||||
binder.setObject(toArray(EMPTY_LIST));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,20 +109,20 @@ public class ScalarTypeArraySet extends ScalarTypeArrayBase<Set> implements Scal
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind bind, Set value) throws SQLException {
|
||||
public void bind(DataBinder binder, Set value) throws SQLException {
|
||||
if (value == null) {
|
||||
bindNull(bind);
|
||||
bindNull(binder);
|
||||
} else {
|
||||
bind.setArray(arrayType, toArray(value));
|
||||
binder.setArray(arrayType, toArray(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void bindNull(DataBind bind) throws SQLException {
|
||||
protected void bindNull(DataBinder binder) throws SQLException {
|
||||
if (nullable) {
|
||||
bind.setNull(Types.ARRAY);
|
||||
binder.setNull(Types.ARRAY);
|
||||
} else {
|
||||
bind.setArray(arrayType, toArray(EMPTY_SET));
|
||||
binder.setArray(arrayType, toArray(EMPTY_SET));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -69,20 +69,20 @@ class ScalarTypeArraySetH2 extends ScalarTypeArraySet {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind bind, Set value) throws SQLException {
|
||||
public void bind(DataBinder binder, Set value) throws SQLException {
|
||||
if (value == null) {
|
||||
bindNull(bind);
|
||||
bindNull(binder);
|
||||
} else {
|
||||
bind.setObject(toArray(value));
|
||||
binder.setObject(toArray(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void bindNull(DataBind bind) throws SQLException {
|
||||
protected void bindNull(DataBinder binder) throws SQLException {
|
||||
if (nullable) {
|
||||
bind.setNull(Types.ARRAY);
|
||||
binder.setNull(Types.ARRAY);
|
||||
} else {
|
||||
bind.setObject(toArray(EMPTY_SET));
|
||||
binder.setObject(toArray(EMPTY_SET));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,18 +41,17 @@ public abstract class ScalarTypeBaseDate<T> extends ScalarTypeBase<T> {
|
||||
public abstract T convertFromDate(java.sql.Date ts);
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, T value) throws SQLException {
|
||||
public void bind(DataBinder binder, T value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.DATE);
|
||||
binder.setNull(Types.DATE);
|
||||
} else {
|
||||
b.setDate(convertToDate(value));
|
||||
binder.setDate(convertToDate(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public T read(DataReader dataReader) throws SQLException {
|
||||
|
||||
Date ts = dataReader.getDate();
|
||||
public T read(DataReader reader) throws SQLException {
|
||||
Date ts = reader.getDate();
|
||||
return ts == null ? null : convertFromDate(ts);
|
||||
}
|
||||
|
||||
@@ -127,7 +126,6 @@ public abstract class ScalarTypeBaseDate<T> extends ScalarTypeBase<T> {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, T value) throws IOException {
|
||||
|
||||
if (value == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
@@ -77,18 +77,17 @@ public abstract class ScalarTypeBaseDateTime<T> extends ScalarTypeBase<T> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, T value) throws SQLException {
|
||||
public void bind(DataBinder binder, T value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.TIMESTAMP);
|
||||
binder.setNull(Types.TIMESTAMP);
|
||||
} else {
|
||||
b.setTimestamp(convertToTimestamp(value));
|
||||
binder.setTimestamp(convertToTimestamp(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public T read(DataReader dataReader) throws SQLException {
|
||||
|
||||
Timestamp ts = dataReader.getTimestamp();
|
||||
public T read(DataReader reader) throws SQLException {
|
||||
Timestamp ts = reader.getTimestamp();
|
||||
if (ts == null) {
|
||||
return null;
|
||||
} else {
|
||||
@@ -105,7 +104,6 @@ public abstract class ScalarTypeBaseDateTime<T> extends ScalarTypeBase<T> {
|
||||
|
||||
@Override
|
||||
public T jsonRead(JsonParser parser) throws IOException {
|
||||
|
||||
switch (parser.getCurrentToken()) {
|
||||
case VALUE_NUMBER_INT: {
|
||||
return convertFromMillis(parser.getLongValue());
|
||||
@@ -123,7 +121,6 @@ public abstract class ScalarTypeBaseDateTime<T> extends ScalarTypeBase<T> {
|
||||
|
||||
@Override
|
||||
public void jsonWrite(JsonGenerator writer, T value) throws IOException {
|
||||
|
||||
switch (mode) {
|
||||
case ISO8601: {
|
||||
writer.writeString(toJsonISO8601(value));
|
||||
@@ -179,7 +176,6 @@ public abstract class ScalarTypeBaseDateTime<T> extends ScalarTypeBase<T> {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, T value) throws IOException {
|
||||
|
||||
if (value == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
@@ -48,17 +48,17 @@ public abstract class ScalarTypeBaseVarchar<T> extends ScalarTypeBase<T> {
|
||||
public abstract String convertToDbString(T beanValue);
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, T value) throws SQLException {
|
||||
public void bind(DataBinder binder, T value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
b.setString(convertToDbString(value));
|
||||
binder.setString(convertToDbString(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public T read(DataReader dataReader) throws SQLException {
|
||||
String s = dataReader.getString();
|
||||
public T read(DataReader reader) throws SQLException {
|
||||
String s = reader.getString();
|
||||
if (s == null) {
|
||||
return null;
|
||||
} else {
|
||||
|
||||
@@ -22,17 +22,17 @@ public class ScalarTypeBigDecimal extends ScalarTypeBase<BigDecimal> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, BigDecimal value) throws SQLException {
|
||||
public void bind(DataBinder binder, BigDecimal value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.DECIMAL);
|
||||
binder.setNull(Types.DECIMAL);
|
||||
} else {
|
||||
b.setBigDecimal(value);
|
||||
binder.setBigDecimal(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getBigDecimal();
|
||||
public BigDecimal read(DataReader reader) throws SQLException {
|
||||
return reader.getBigDecimal();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -76,7 +76,6 @@ public class ScalarTypeBigDecimal extends ScalarTypeBase<BigDecimal> {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, BigDecimal b) throws IOException {
|
||||
|
||||
if (b == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
@@ -51,18 +51,17 @@ public class ScalarTypeBoolean {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Boolean value) throws SQLException {
|
||||
public void bind(DataBinder binder, Boolean value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.BOOLEAN);
|
||||
binder.setNull(Types.BOOLEAN);
|
||||
} else {
|
||||
b.setBoolean(value);
|
||||
binder.setBoolean(value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getBoolean();
|
||||
public Boolean read(DataReader reader) throws SQLException {
|
||||
return reader.getBoolean();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,20 +104,19 @@ public class ScalarTypeBoolean {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Boolean value) throws SQLException {
|
||||
public void bind(DataBinder binder, Boolean value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.BIT);
|
||||
binder.setNull(Types.BIT);
|
||||
} else {
|
||||
// use JDBC driver to convert boolean to bit
|
||||
b.setBoolean(value);
|
||||
binder.setBoolean(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getBoolean();
|
||||
public Boolean read(DataReader reader) throws SQLException {
|
||||
return reader.getBoolean();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -151,17 +149,17 @@ public class ScalarTypeBoolean {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Boolean value) throws SQLException {
|
||||
public void bind(DataBinder binder, Boolean value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.INTEGER);
|
||||
binder.setNull(Types.INTEGER);
|
||||
} else {
|
||||
b.setInt(toInteger(value));
|
||||
binder.setInt(toInteger(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean read(DataReader dataReader) throws SQLException {
|
||||
Integer i = dataReader.getInt();
|
||||
public Boolean read(DataReader reader) throws SQLException {
|
||||
Integer i = reader.getInt();
|
||||
if (i == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -239,17 +237,17 @@ public class ScalarTypeBoolean {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Boolean value) throws SQLException {
|
||||
public void bind(DataBinder binder, Boolean value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
b.setString(toString(value));
|
||||
binder.setString(toString(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean read(DataReader dataReader) throws SQLException {
|
||||
String string = dataReader.getString();
|
||||
public Boolean read(DataReader reader) throws SQLException {
|
||||
String string = reader.getString();
|
||||
if (string == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -350,7 +348,6 @@ public class ScalarTypeBoolean {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, Boolean val) throws IOException {
|
||||
|
||||
if (val == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
@@ -28,17 +28,17 @@ public class ScalarTypeByte extends ScalarTypeBase<Byte> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Byte value) throws SQLException {
|
||||
public void bind(DataBinder binder, Byte value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.TINYINT);
|
||||
binder.setNull(Types.TINYINT);
|
||||
} else {
|
||||
b.setByte(value);
|
||||
binder.setByte(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Byte read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getByte();
|
||||
public Byte read(DataReader reader) throws SQLException {
|
||||
return reader.getByte();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -104,7 +104,6 @@ public class ScalarTypeByte extends ScalarTypeBase<Byte> {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, Byte val) throws IOException {
|
||||
|
||||
if (val == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
@@ -30,11 +30,11 @@ public abstract class ScalarTypeBytesBase extends ScalarTypeBase<byte[]> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, byte[] value) throws SQLException {
|
||||
public void bind(DataBinder binder, byte[] value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(jdbcType);
|
||||
binder.setNull(jdbcType);
|
||||
} else {
|
||||
b.setBytes(value);
|
||||
binder.setBytes(value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ public class ScalarTypeBytesBinary extends ScalarTypeBytesBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getBytes();
|
||||
public byte[] read(DataReader reader) throws SQLException {
|
||||
return reader.getBytes();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -13,9 +13,8 @@ public class ScalarTypeBytesBlob extends ScalarTypeBytesBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] read(DataReader dataReader) throws SQLException {
|
||||
|
||||
return dataReader.getBinaryBytes();
|
||||
public byte[] read(DataReader reader) throws SQLException {
|
||||
return reader.getBinaryBytes();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -45,9 +45,9 @@ public class ScalarTypeBytesEncrypted implements ScalarType<byte[]> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, byte[] value) throws SQLException {
|
||||
public void bind(DataBinder binder, byte[] value) throws SQLException {
|
||||
value = dataEncryptSupport.encrypt(value);
|
||||
baseType.bind(b, value);
|
||||
baseType.bind(binder, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -76,8 +76,8 @@ public class ScalarTypeBytesEncrypted implements ScalarType<byte[]> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadIgnore(DataReader dataReader) {
|
||||
baseType.loadIgnore(dataReader);
|
||||
public void loadIgnore(DataReader reader) {
|
||||
baseType.loadIgnore(reader);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -118,9 +118,8 @@ public class ScalarTypeBytesEncrypted implements ScalarType<byte[]> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] read(DataReader dataReader) throws SQLException {
|
||||
|
||||
byte[] data = baseType.read(dataReader);
|
||||
public byte[] read(DataReader reader) throws SQLException {
|
||||
byte[] data = baseType.read(reader);
|
||||
data = dataEncryptSupport.decrypt(data);
|
||||
return data;
|
||||
}
|
||||
@@ -149,7 +148,6 @@ public class ScalarTypeBytesEncrypted implements ScalarType<byte[]> {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, byte[] value) throws IOException {
|
||||
|
||||
if (value == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
+2
-2
@@ -13,7 +13,7 @@ public class ScalarTypeBytesLongVarbinary extends ScalarTypeBytesBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getBinaryBytes();
|
||||
public byte[] read(DataReader reader) throws SQLException {
|
||||
return reader.getBinaryBytes();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,8 +13,8 @@ public class ScalarTypeBytesVarbinary extends ScalarTypeBytesBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getBytes();
|
||||
public byte[] read(DataReader reader) throws SQLException {
|
||||
return reader.getBytes();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,17 +22,16 @@ public class ScalarTypeCalendar extends ScalarTypeBaseDateTime<Calendar> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Calendar value) throws SQLException {
|
||||
public void bind(DataBinder binder, Calendar value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.TIMESTAMP);
|
||||
binder.setNull(Types.TIMESTAMP);
|
||||
} else {
|
||||
|
||||
if (jdbcType == Types.TIMESTAMP) {
|
||||
Timestamp timestamp = new Timestamp(value.getTimeInMillis());
|
||||
b.setTimestamp(timestamp);
|
||||
binder.setTimestamp(timestamp);
|
||||
} else {
|
||||
Date d = new Date(value.getTimeInMillis());
|
||||
b.setDate(d);
|
||||
binder.setDate(d);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,18 +25,18 @@ public class ScalarTypeChar extends ScalarTypeBaseVarchar<Character> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Character value) throws SQLException {
|
||||
public void bind(DataBinder binder, Character value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
String s = BasicTypeConverter.toString(value);
|
||||
b.setString(s);
|
||||
binder.setString(s);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Character read(DataReader dataReader) throws SQLException {
|
||||
String string = dataReader.getString();
|
||||
public Character read(DataReader reader) throws SQLException {
|
||||
String string = reader.getString();
|
||||
if (string == null || string.isEmpty()) {
|
||||
return null;
|
||||
} else {
|
||||
|
||||
@@ -28,18 +28,18 @@ public class ScalarTypeCharArray extends ScalarTypeBaseVarchar<char[]> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, char[] value) throws SQLException {
|
||||
public void bind(DataBinder binder, char[] value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
String s = BasicTypeConverter.toString(value);
|
||||
b.setString(s);
|
||||
binder.setString(s);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public char[] read(DataReader dataReader) throws SQLException {
|
||||
String string = dataReader.getString();
|
||||
public char[] read(DataReader reader) throws SQLException {
|
||||
String string = reader.getString();
|
||||
if (string == null) {
|
||||
return null;
|
||||
} else {
|
||||
|
||||
@@ -16,7 +16,7 @@ public abstract class ScalarTypeCidr extends ScalarTypeBaseVarchar<Cidr> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void bind(DataBind b, Cidr value) throws SQLException;
|
||||
public abstract void bind(DataBinder binder, Cidr value) throws SQLException;
|
||||
|
||||
@Override
|
||||
public Cidr convertFromDbString(String dbValue) {
|
||||
@@ -44,11 +44,11 @@ public abstract class ScalarTypeCidr extends ScalarTypeBaseVarchar<Cidr> {
|
||||
public static class Varchar extends ScalarTypeCidr {
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Cidr value) throws SQLException {
|
||||
public void bind(DataBinder binder, Cidr value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
b.setString(convertToDbString(value));
|
||||
binder.setString(convertToDbString(value));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -59,12 +59,12 @@ public abstract class ScalarTypeCidr extends ScalarTypeBaseVarchar<Cidr> {
|
||||
public static class Postgres extends ScalarTypeCidr {
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Cidr value) throws SQLException {
|
||||
public void bind(DataBinder binder, Cidr value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.OTHER);
|
||||
binder.setNull(Types.OTHER);
|
||||
} else {
|
||||
String strValue = convertToDbString(value);
|
||||
b.setObject(PostgresHelper.asInet(strValue));
|
||||
binder.setObject(PostgresHelper.asInet(strValue));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,8 +17,8 @@ public class ScalarTypeClob extends ScalarTypeStringBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getStringFromStream();
|
||||
public String read(DataReader reader) throws SQLException {
|
||||
return reader.getStringFromStream();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -37,17 +37,17 @@ public class ScalarTypeDate extends ScalarTypeBaseDate<java.sql.Date> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, java.sql.Date value) throws SQLException {
|
||||
public void bind(DataBinder binder, java.sql.Date value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.DATE);
|
||||
binder.setNull(Types.DATE);
|
||||
} else {
|
||||
b.setDate(value);
|
||||
binder.setDate(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public java.sql.Date read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getDate();
|
||||
public java.sql.Date read(DataReader reader) throws SQLException {
|
||||
return reader.getDate();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -35,12 +35,12 @@ public class ScalarTypeDayOfWeek extends ScalarTypeEnumWithMapping {
|
||||
* Bind DayOfWeek enum using getValue().
|
||||
*/
|
||||
@Override
|
||||
public void bind(DataBind b, Object value) throws SQLException {
|
||||
public void bind(DataBinder binder, Object value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.INTEGER);
|
||||
binder.setNull(Types.INTEGER);
|
||||
} else {
|
||||
// avoiding the map lookup
|
||||
b.setInt(((DayOfWeek) value).getValue());
|
||||
binder.setInt(((DayOfWeek) value).getValue());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,8 +48,8 @@ public class ScalarTypeDayOfWeek extends ScalarTypeEnumWithMapping {
|
||||
* Read DayOfWeek using int value.
|
||||
*/
|
||||
@Override
|
||||
public Object read(DataReader dataReader) throws SQLException {
|
||||
Integer i = dataReader.getInt();
|
||||
public Object read(DataReader reader) throws SQLException {
|
||||
Integer i = reader.getInt();
|
||||
if (i == null) {
|
||||
return null;
|
||||
} else {
|
||||
|
||||
@@ -21,11 +21,11 @@ public class ScalarTypeDouble extends ScalarTypeBase<Double> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Double value) throws SQLException {
|
||||
public void bind(DataBinder binder, Double value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.DOUBLE);
|
||||
binder.setNull(Types.DOUBLE);
|
||||
} else {
|
||||
b.setDouble(value);
|
||||
binder.setDouble(value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,7 +75,6 @@ public class ScalarTypeDouble extends ScalarTypeBase<Double> {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, Double value) throws IOException {
|
||||
|
||||
if (value == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
@@ -36,17 +36,17 @@ public class ScalarTypeDuration extends ScalarTypeBase<Duration> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind bind, Duration value) throws SQLException {
|
||||
public void bind(DataBinder binder, Duration value) throws SQLException {
|
||||
if (value == null) {
|
||||
bind.setNull(Types.BIGINT);
|
||||
binder.setNull(Types.BIGINT);
|
||||
} else {
|
||||
bind.setLong(value.getSeconds());
|
||||
binder.setLong(value.getSeconds());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration read(DataReader dataReader) throws SQLException {
|
||||
Long value = dataReader.getLong();
|
||||
public Duration read(DataReader reader) throws SQLException {
|
||||
Long value = reader.getLong();
|
||||
return (value == null) ? null : Duration.ofSeconds(value);
|
||||
}
|
||||
|
||||
|
||||
+5
-5
@@ -20,17 +20,17 @@ public class ScalarTypeDurationWithNanos extends ScalarTypeDuration {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind bind, Duration value) throws SQLException {
|
||||
public void bind(DataBinder binder, Duration value) throws SQLException {
|
||||
if (value == null) {
|
||||
bind.setNull(Types.DECIMAL);
|
||||
binder.setNull(Types.DECIMAL);
|
||||
} else {
|
||||
bind.setBigDecimal(convertToBigDecimal(value));
|
||||
binder.setBigDecimal(convertToBigDecimal(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration read(DataReader dataReader) throws SQLException {
|
||||
return convertFromBigDecimal(dataReader.getBigDecimal());
|
||||
public Duration read(DataReader reader) throws SQLException {
|
||||
return convertFromBigDecimal(reader.getBigDecimal());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-6
@@ -60,9 +60,8 @@ public class ScalarTypeEncryptedWrapper<T> implements ScalarType<T>, LocalEncryp
|
||||
}
|
||||
|
||||
@Override
|
||||
public T read(DataReader dataReader) throws SQLException {
|
||||
|
||||
byte[] data = dataReader.getBytes();
|
||||
public T read(DataReader reader) throws SQLException {
|
||||
byte[] data = reader.getBytes();
|
||||
String formattedValue = dataEncryptSupport.decryptObject(data);
|
||||
if (formattedValue == null) {
|
||||
return null;
|
||||
@@ -79,10 +78,9 @@ public class ScalarTypeEncryptedWrapper<T> implements ScalarType<T>, LocalEncryp
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, T value) throws SQLException {
|
||||
|
||||
public void bind(DataBinder binder, T value) throws SQLException {
|
||||
byte[] encryptedValue = encrypt(value);
|
||||
byteArrayType.bind(b, encryptedValue);
|
||||
byteArrayType.bind(binder, encryptedValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -51,9 +51,7 @@ public class ScalarTypeEnumStandard {
|
||||
*/
|
||||
@Override
|
||||
public Set<String> getDbCheckConstraintValues() {
|
||||
|
||||
LinkedHashSet<String> values = new LinkedHashSet<>();
|
||||
|
||||
Object[] ea = enumType.getEnumConstants();
|
||||
for (Object anEa : ea) {
|
||||
Enum<?> e = (Enum<?>) anEa;
|
||||
@@ -81,18 +79,17 @@ public class ScalarTypeEnumStandard {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Object value) throws SQLException {
|
||||
public void bind(DataBinder binder, Object value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
b.setString(format(value));
|
||||
binder.setString(format(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object read(DataReader dataReader) throws SQLException {
|
||||
|
||||
String string = dataReader.getString();
|
||||
public Object read(DataReader reader) throws SQLException {
|
||||
String string = reader.getString();
|
||||
if (string == null) {
|
||||
return null;
|
||||
} else {
|
||||
@@ -118,7 +115,6 @@ public class ScalarTypeEnumStandard {
|
||||
}
|
||||
return Enum.valueOf(enumType, (String) dbValue);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||
@@ -144,7 +140,6 @@ public class ScalarTypeEnumStandard {
|
||||
*/
|
||||
@Override
|
||||
public Set<String> getDbCheckConstraintValues() {
|
||||
|
||||
LinkedHashSet<String> values = new LinkedHashSet<>();
|
||||
for (Object anEnumArray : enumArray) {
|
||||
Enum<?> e = (Enum<?>) anEnumArray;
|
||||
@@ -154,18 +149,17 @@ public class ScalarTypeEnumStandard {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Object value) throws SQLException {
|
||||
public void bind(DataBinder binder, Object value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.INTEGER);
|
||||
binder.setNull(Types.INTEGER);
|
||||
} else {
|
||||
b.setInt(((Enum<?>) value).ordinal());
|
||||
binder.setInt(((Enum<?>) value).ordinal());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object read(DataReader dataReader) throws SQLException {
|
||||
|
||||
Integer ordinal = dataReader.getInt();
|
||||
public Object read(DataReader reader) throws SQLException {
|
||||
Integer ordinal = reader.getInt();
|
||||
if (ordinal == null) {
|
||||
return null;
|
||||
} else {
|
||||
@@ -196,7 +190,6 @@ public class ScalarTypeEnumStandard {
|
||||
if (dbValue == null || dbValue instanceof Enum<?>) {
|
||||
return dbValue;
|
||||
}
|
||||
|
||||
int ordinal = (Integer) dbValue;
|
||||
if (ordinal < 0 || ordinal >= enumArray.length) {
|
||||
String m = "Unexpected ordinal [" + ordinal + "] out of range [" + enumArray.length + "]";
|
||||
|
||||
+4
-6
@@ -45,9 +45,7 @@ public class ScalarTypeEnumWithMapping extends ScalarTypeEnumStandard.EnumBase i
|
||||
*/
|
||||
@Override
|
||||
public Set<String> getDbCheckConstraintValues() {
|
||||
|
||||
LinkedHashSet values = new LinkedHashSet();
|
||||
|
||||
Iterator<?> it = beanDbMap.dbValues();
|
||||
while (it.hasNext()) {
|
||||
Object dbValue = it.next();
|
||||
@@ -72,13 +70,13 @@ public class ScalarTypeEnumWithMapping extends ScalarTypeEnumStandard.EnumBase i
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Object value) throws SQLException {
|
||||
beanDbMap.bind(b, value);
|
||||
public void bind(DataBinder binder, Object value) throws SQLException {
|
||||
beanDbMap.bind(binder, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object read(DataReader dataReader) throws SQLException {
|
||||
return beanDbMap.read(dataReader);
|
||||
public Object read(DataReader reader) throws SQLException {
|
||||
return beanDbMap.read(reader);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -69,9 +69,8 @@ public class ScalarTypeFile extends ScalarTypeBase<File> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public File read(DataReader dataReader) throws SQLException {
|
||||
|
||||
InputStream is = dataReader.getBinaryStream();
|
||||
public File read(DataReader reader) throws SQLException {
|
||||
InputStream is = reader.getBinaryStream();
|
||||
if (is == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -91,14 +90,14 @@ public class ScalarTypeFile extends ScalarTypeBase<File> {
|
||||
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, File value) throws SQLException {
|
||||
public void bind(DataBinder binder, File value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(jdbcType);
|
||||
binder.setNull(jdbcType);
|
||||
} else {
|
||||
try {
|
||||
// stream from our file to the db
|
||||
InputStream fi = getInputStream(value);
|
||||
b.setBinaryStream(fi, value.length());
|
||||
binder.setBinaryStream(fi, value.length());
|
||||
} catch (IOException e) {
|
||||
throw new SQLException("Error trying to set file inputStream", e);
|
||||
}
|
||||
|
||||
@@ -21,17 +21,17 @@ public class ScalarTypeFloat extends ScalarTypeBase<Float> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Float value) throws SQLException {
|
||||
public void bind(DataBinder binder, Float value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.REAL);
|
||||
binder.setNull(Types.REAL);
|
||||
} else {
|
||||
b.setFloat(value);
|
||||
binder.setFloat(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Float read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getFloat();
|
||||
public Float read(DataReader reader) throws SQLException {
|
||||
return reader.getFloat();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -75,7 +75,6 @@ public class ScalarTypeFloat extends ScalarTypeBase<Float> {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, Float value) throws IOException {
|
||||
|
||||
if (value == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
@@ -16,7 +16,7 @@ public abstract class ScalarTypeInet extends ScalarTypeBaseVarchar<Inet> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void bind(DataBind b, Inet value) throws SQLException;
|
||||
public abstract void bind(DataBinder binder, Inet value) throws SQLException;
|
||||
|
||||
@Override
|
||||
public Inet convertFromDbString(String dbValue) {
|
||||
@@ -48,11 +48,11 @@ public abstract class ScalarTypeInet extends ScalarTypeBaseVarchar<Inet> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Inet value) throws SQLException {
|
||||
public void bind(DataBinder binder, Inet value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
b.setString(convertToDbString(value));
|
||||
binder.setString(convertToDbString(value));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -67,12 +67,12 @@ public abstract class ScalarTypeInet extends ScalarTypeBaseVarchar<Inet> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Inet value) throws SQLException {
|
||||
public void bind(DataBinder binder, Inet value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.OTHER);
|
||||
binder.setNull(Types.OTHER);
|
||||
} else {
|
||||
String strValue = convertToDbString(value);
|
||||
b.setObject(PostgresHelper.asInet(strValue));
|
||||
binder.setObject(PostgresHelper.asInet(strValue));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -17,12 +17,12 @@ public class ScalarTypeInetAddressPostgres extends ScalarTypeBaseVarchar<InetAdd
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, InetAddress value) throws SQLException {
|
||||
public void bind(DataBinder binder, InetAddress value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.OTHER);
|
||||
binder.setNull(Types.OTHER);
|
||||
} else {
|
||||
String strValue = convertToDbString(value);
|
||||
b.setObject(PostgresHelper.asInet(strValue));
|
||||
binder.setObject(PostgresHelper.asInet(strValue));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,17 +24,17 @@ public class ScalarTypeInteger extends ScalarTypeBase<Integer> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Integer value) throws SQLException {
|
||||
public void bind(DataBinder binder, Integer value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.INTEGER);
|
||||
binder.setNull(Types.INTEGER);
|
||||
} else {
|
||||
b.setInt(value);
|
||||
binder.setInt(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getInt();
|
||||
public Integer read(DataReader reader) throws SQLException {
|
||||
return reader.getInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -25,18 +25,17 @@ public class ScalarTypeJodaLocalTime extends ScalarTypeBase<LocalTime> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, LocalTime value) throws SQLException {
|
||||
public void bind(DataBinder binder, LocalTime value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.TIME);
|
||||
binder.setNull(Types.TIME);
|
||||
} else {
|
||||
b.setTime(new Time(value.toDateTimeToday().getMillis()));
|
||||
binder.setTime(new Time(value.toDateTimeToday().getMillis()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public LocalTime read(DataReader dataReader) throws SQLException {
|
||||
|
||||
Time sqlTime = dataReader.getTime();
|
||||
public LocalTime read(DataReader reader) throws SQLException {
|
||||
Time sqlTime = reader.getTime();
|
||||
if (sqlTime == null) {
|
||||
return null;
|
||||
} else {
|
||||
@@ -71,7 +70,6 @@ public class ScalarTypeJodaLocalTime extends ScalarTypeBase<LocalTime> {
|
||||
return new LocalTime(value);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public LocalTime convertFromMillis(long systemTimeMillis) {
|
||||
return new LocalTime(systemTimeMillis, DateTimeZone.getDefault());
|
||||
@@ -94,7 +92,6 @@ public class ScalarTypeJodaLocalTime extends ScalarTypeBase<LocalTime> {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, LocalTime value) throws IOException {
|
||||
|
||||
if (value == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
+5
-6
@@ -18,19 +18,18 @@ public class ScalarTypeJodaLocalTimeUTC extends ScalarTypeJodaLocalTime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, LocalTime value) throws SQLException {
|
||||
public void bind(DataBinder binder, LocalTime value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.TIME);
|
||||
binder.setNull(Types.TIME);
|
||||
} else {
|
||||
Time sqlTime = new Time(value.getMillisOfDay());
|
||||
b.setTime(sqlTime);
|
||||
binder.setTime(sqlTime);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public LocalTime read(DataReader dataReader) throws SQLException {
|
||||
|
||||
Time sqlTime = dataReader.getTime();
|
||||
public LocalTime read(DataReader reader) throws SQLException {
|
||||
Time sqlTime = reader.getTime();
|
||||
if (sqlTime == null) {
|
||||
return null;
|
||||
} else {
|
||||
|
||||
@@ -23,11 +23,11 @@ abstract class ScalarTypeJsonCollection<T> extends ScalarTypeBase<T> implements
|
||||
/**
|
||||
* Bind null or empty list (when not nullable).
|
||||
*/
|
||||
protected void bindNull(DataBind bind) throws SQLException {
|
||||
protected void bindNull(DataBinder binder) throws SQLException {
|
||||
if (nullable) {
|
||||
bind.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
bind.setString("[]");
|
||||
binder.setString("[]");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -71,8 +71,8 @@ public class ScalarTypeJsonList {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List read(DataReader dataReader) throws SQLException {
|
||||
String json = dataReader.getString();
|
||||
public List read(DataReader reader) throws SQLException {
|
||||
String json = reader.getString();
|
||||
try {
|
||||
// parse JSON into modifyAware list
|
||||
return EJson.parseList(json, true);
|
||||
@@ -82,14 +82,14 @@ public class ScalarTypeJsonList {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind bind, List value) throws SQLException {
|
||||
public void bind(DataBinder binder, List value) throws SQLException {
|
||||
if (value == null) {
|
||||
bindNull(bind);
|
||||
bindNull(binder);
|
||||
} else if (value.isEmpty()) {
|
||||
bind.setString("[]");
|
||||
binder.setString("[]");
|
||||
} else {
|
||||
try {
|
||||
bind.setString(EJson.write(value));
|
||||
binder.setString(EJson.write(value));
|
||||
} catch (IOException e) {
|
||||
throw new SQLException("Failed to format List into JSON content", e);
|
||||
}
|
||||
@@ -97,11 +97,11 @@ public class ScalarTypeJsonList {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void bindNull(DataBind bind) throws SQLException {
|
||||
protected void bindNull(DataBinder binder) throws SQLException {
|
||||
if (nullable) {
|
||||
bind.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
bind.setString("[]");
|
||||
binder.setString("[]");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,17 +148,17 @@ public class ScalarTypeJsonList {
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Override
|
||||
public void bind(DataBind bind, List value) throws SQLException {
|
||||
public void bind(DataBinder binder, List value) throws SQLException {
|
||||
if (value == null) {
|
||||
bindNull(bind);
|
||||
bindNull(binder);
|
||||
} else {
|
||||
bind.setObject(PostgresHelper.asObject(pgType, formatValue(value)));
|
||||
binder.setObject(PostgresHelper.asObject(pgType, formatValue(value)));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void bindNull(DataBind bind) throws SQLException {
|
||||
bind.setObject(PostgresHelper.asObject(pgType, nullable ? null : "[]"));
|
||||
protected void bindNull(DataBinder binder) throws SQLException {
|
||||
binder.setObject(PostgresHelper.asObject(pgType, nullable ? null : "[]"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,7 +35,6 @@ public abstract class ScalarTypeJsonMap extends ScalarTypeBase<Map> {
|
||||
* Return the ScalarType for the requested dbType and postgres.
|
||||
*/
|
||||
public static ScalarTypeJsonMap typeFor(boolean postgres, int dbType) {
|
||||
|
||||
switch (dbType) {
|
||||
case Types.VARCHAR:
|
||||
return VARCHAR;
|
||||
@@ -59,9 +58,8 @@ public abstract class ScalarTypeJsonMap extends ScalarTypeBase<Map> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map read(DataReader dataReader) throws SQLException {
|
||||
|
||||
String content = dataReader.getStringFromStream();
|
||||
public Map read(DataReader reader) throws SQLException {
|
||||
String content = reader.getStringFromStream();
|
||||
if (content == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -82,15 +80,14 @@ public abstract class ScalarTypeJsonMap extends ScalarTypeBase<Map> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map read(DataReader dataReader) throws SQLException {
|
||||
|
||||
InputStream is = dataReader.getBinaryStream();
|
||||
public Map read(DataReader reader) throws SQLException {
|
||||
InputStream is = reader.getBinaryStream();
|
||||
if (is == null) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
try (InputStreamReader reader = new InputStreamReader(is)) {
|
||||
return parse(reader);
|
||||
try (InputStreamReader inputStreamReader = new InputStreamReader(is)) {
|
||||
return parse(inputStreamReader);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new SQLException("Error reading Blob stream from DB", e);
|
||||
@@ -98,13 +95,12 @@ public abstract class ScalarTypeJsonMap extends ScalarTypeBase<Map> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Map value) throws SQLException {
|
||||
|
||||
public void bind(DataBinder binder, Map value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.BLOB);
|
||||
binder.setNull(Types.BLOB);
|
||||
} else {
|
||||
String rawJson = formatValue(value);
|
||||
b.setBytes(rawJson.getBytes(StandardCharsets.UTF_8));
|
||||
binder.setBytes(rawJson.getBytes(StandardCharsets.UTF_8));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -130,9 +126,8 @@ public abstract class ScalarTypeJsonMap extends ScalarTypeBase<Map> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map read(DataReader dataReader) throws SQLException {
|
||||
|
||||
String rawJson = dataReader.getString();
|
||||
public Map read(DataReader reader) throws SQLException {
|
||||
String rawJson = reader.getString();
|
||||
if (rawJson == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -140,13 +135,12 @@ public abstract class ScalarTypeJsonMap extends ScalarTypeBase<Map> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Map value) throws SQLException {
|
||||
|
||||
public void bind(DataBinder binder, Map value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
String rawJson = formatValue(value);
|
||||
b.setString(rawJson);
|
||||
binder.setString(rawJson);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-3
@@ -19,10 +19,9 @@ public abstract class ScalarTypeJsonMapPostgres extends ScalarTypeJsonMap {
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Override
|
||||
public void bind(DataBind bind, Map value) throws SQLException {
|
||||
|
||||
public void bind(DataBinder binder, Map value) throws SQLException {
|
||||
String rawJson = (value == null) ? null : formatValue(value);
|
||||
bind.setObject(PostgresHelper.asObject(postgresType, rawJson));
|
||||
binder.setObject(PostgresHelper.asObject(postgresType, rawJson));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -32,9 +32,8 @@ public abstract class ScalarTypeJsonNode extends ScalarTypeBase<JsonNode> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonNode read(DataReader dataReader) throws SQLException {
|
||||
|
||||
String content = dataReader.getStringFromStream();
|
||||
public JsonNode read(DataReader reader) throws SQLException {
|
||||
String content = reader.getStringFromStream();
|
||||
if (content == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -63,7 +62,6 @@ public abstract class ScalarTypeJsonNode extends ScalarTypeBase<JsonNode> {
|
||||
|
||||
@Override
|
||||
public JsonNode read(DataReader dataReader) throws SQLException {
|
||||
|
||||
InputStream is = dataReader.getBinaryStream();
|
||||
if (is == null) {
|
||||
return null;
|
||||
@@ -76,13 +74,12 @@ public abstract class ScalarTypeJsonNode extends ScalarTypeBase<JsonNode> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind dataBind, JsonNode value) throws SQLException {
|
||||
|
||||
public void bind(DataBinder binder, JsonNode value) throws SQLException {
|
||||
if (value == null) {
|
||||
dataBind.setNull(Types.BLOB);
|
||||
binder.setNull(Types.BLOB);
|
||||
} else {
|
||||
String rawJson = formatValue(value);
|
||||
dataBind.setBlob(rawJson.getBytes(StandardCharsets.UTF_8));
|
||||
binder.setBlob(rawJson.getBytes(StandardCharsets.UTF_8));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -114,9 +111,8 @@ public abstract class ScalarTypeJsonNode extends ScalarTypeBase<JsonNode> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonNode read(DataReader dataReader) throws SQLException {
|
||||
|
||||
String rawJson = dataReader.getString();
|
||||
public JsonNode read(DataReader reader) throws SQLException {
|
||||
String rawJson = reader.getString();
|
||||
if (rawJson == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -124,13 +120,12 @@ public abstract class ScalarTypeJsonNode extends ScalarTypeBase<JsonNode> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind dataBind, JsonNode value) throws SQLException {
|
||||
|
||||
public void bind(DataBinder binder, JsonNode value) throws SQLException {
|
||||
if (value == null) {
|
||||
dataBind.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
String rawJson = formatValue(value);
|
||||
dataBind.setString(rawJson);
|
||||
binder.setString(rawJson);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -22,9 +22,9 @@ public abstract class ScalarTypeJsonNodePostgres extends ScalarTypeJsonNode {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind bind, JsonNode value) throws SQLException {
|
||||
public void bind(DataBinder binder, JsonNode value) throws SQLException {
|
||||
String rawJson = (value == null) ? null : formatValue(value);
|
||||
bind.setObject(PostgresHelper.asObject(postgresType, rawJson));
|
||||
binder.setObject(PostgresHelper.asObject(postgresType, rawJson));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+4
-4
@@ -214,17 +214,17 @@ public class ScalarTypeJsonObjectMapper {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind bind, T value) throws SQLException {
|
||||
public void bind(DataBinder binder, T value) throws SQLException {
|
||||
if (pgType != null) {
|
||||
String rawJson = (value == null) ? null : formatValue(value);
|
||||
bind.setObject(PostgresHelper.asObject(pgType, rawJson));
|
||||
binder.setObject(PostgresHelper.asObject(pgType, rawJson));
|
||||
} else {
|
||||
if (value == null) {
|
||||
bind.setNull(Types.VARCHAR); // use varchar, otherwise SqlServer/db2 will fail with 'Invalid JDBC data type 5.001.'
|
||||
binder.setNull(Types.VARCHAR); // use varchar, otherwise SqlServer/db2 will fail with 'Invalid JDBC data type 5.001.'
|
||||
} else {
|
||||
try {
|
||||
String json = objectWriter.writeValueAsString(value);
|
||||
bind.setString(json);
|
||||
binder.setString(json);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new SQLException("Unable to create JSON", e);
|
||||
}
|
||||
|
||||
@@ -73,8 +73,8 @@ public class ScalarTypeJsonSet {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set read(DataReader dataReader) throws SQLException {
|
||||
String json = dataReader.getString();
|
||||
public Set read(DataReader reader) throws SQLException {
|
||||
String json = reader.getString();
|
||||
try {
|
||||
// parse JSON into modifyAware list
|
||||
return EJson.parseSet(json, true);
|
||||
@@ -84,14 +84,14 @@ public class ScalarTypeJsonSet {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind bind, Set value) throws SQLException {
|
||||
public void bind(DataBinder binder, Set value) throws SQLException {
|
||||
if (value == null) {
|
||||
bindNull(bind);
|
||||
bindNull(binder);
|
||||
} else if (value.isEmpty()) {
|
||||
bind.setString("[]");
|
||||
binder.setString("[]");
|
||||
} else {
|
||||
try {
|
||||
bind.setString(EJson.write(value));
|
||||
binder.setString(EJson.write(value));
|
||||
} catch (IOException e) {
|
||||
throw new SQLException("Failed to format Set into JSON content", e);
|
||||
}
|
||||
@@ -99,11 +99,11 @@ public class ScalarTypeJsonSet {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void bindNull(DataBind bind) throws SQLException {
|
||||
protected void bindNull(DataBinder binder) throws SQLException {
|
||||
if (nullable) {
|
||||
bind.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
bind.setString("[]");
|
||||
binder.setString("[]");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,17 +155,17 @@ public class ScalarTypeJsonSet {
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Override
|
||||
public void bind(DataBind bind, Set value) throws SQLException {
|
||||
public void bind(DataBinder binder, Set value) throws SQLException {
|
||||
if (value == null) {
|
||||
bindNull(bind);
|
||||
bindNull(binder);
|
||||
} else {
|
||||
bind.setObject(PostgresHelper.asObject(pgType, formatValue(value)));
|
||||
binder.setObject(PostgresHelper.asObject(pgType, formatValue(value)));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void bindNull(DataBind bind) throws SQLException {
|
||||
bind.setObject(PostgresHelper.asObject(pgType, nullable ? null : "[]"));
|
||||
protected void bindNull(DataBinder binder) throws SQLException {
|
||||
binder.setObject(PostgresHelper.asObject(pgType, nullable ? null : "[]"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,17 +28,17 @@ public class ScalarTypeLocalTime extends ScalarTypeBase<LocalTime> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind bind, LocalTime value) throws SQLException {
|
||||
public void bind(DataBinder binder, LocalTime value) throws SQLException {
|
||||
if (value == null) {
|
||||
bind.setNull(Types.TIME);
|
||||
binder.setNull(Types.TIME);
|
||||
} else {
|
||||
bind.setTime(Time.valueOf(value));
|
||||
binder.setTime(Time.valueOf(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public LocalTime read(DataReader dataReader) throws SQLException {
|
||||
Time time = dataReader.getTime();
|
||||
public LocalTime read(DataReader reader) throws SQLException {
|
||||
Time time = reader.getTime();
|
||||
return (time == null) ? null : time.toLocalTime();
|
||||
}
|
||||
|
||||
|
||||
+5
-5
@@ -16,17 +16,17 @@ public class ScalarTypeLocalTimeWithNanos extends ScalarTypeLocalTime {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind bind, LocalTime value) throws SQLException {
|
||||
public void bind(DataBinder binder, LocalTime value) throws SQLException {
|
||||
if (value == null) {
|
||||
bind.setNull(Types.BIGINT);
|
||||
binder.setNull(Types.BIGINT);
|
||||
} else {
|
||||
bind.setLong(value.toNanoOfDay());
|
||||
binder.setLong(value.toNanoOfDay());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public LocalTime read(DataReader dataReader) throws SQLException {
|
||||
Long value = dataReader.getLong();
|
||||
public LocalTime read(DataReader reader) throws SQLException {
|
||||
Long value = reader.getLong();
|
||||
return (value == null) ? null : LocalTime.ofNanoOfDay(value);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,17 +21,17 @@ public class ScalarTypeLong extends ScalarTypeBase<Long> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Long value) throws SQLException {
|
||||
public void bind(DataBinder binder, Long value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.BIGINT);
|
||||
binder.setNull(Types.BIGINT);
|
||||
} else {
|
||||
b.setLong(value);
|
||||
binder.setLong(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getLong();
|
||||
public Long read(DataReader reader) throws SQLException {
|
||||
return reader.getLong();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,7 +80,6 @@ public class ScalarTypeLong extends ScalarTypeBase<Long> {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, Long value) throws IOException {
|
||||
|
||||
if (value == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
@@ -22,18 +22,17 @@ public class ScalarTypeMathBigInteger extends ScalarTypeBase<BigInteger> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, BigInteger value) throws SQLException {
|
||||
public void bind(DataBinder binder, BigInteger value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.BIGINT);
|
||||
binder.setNull(Types.BIGINT);
|
||||
} else {
|
||||
b.setLong(value.longValue());
|
||||
binder.setLong(value.longValue());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigInteger read(DataReader dataReader) throws SQLException {
|
||||
|
||||
Long value = dataReader.getLong();
|
||||
public BigInteger read(DataReader reader) throws SQLException {
|
||||
Long value = reader.getLong();
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -81,7 +80,6 @@ public class ScalarTypeMathBigInteger extends ScalarTypeBase<BigInteger> {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, BigInteger value) throws IOException {
|
||||
|
||||
if (value == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
@@ -35,12 +35,12 @@ public class ScalarTypeMonth extends ScalarTypeEnumWithMapping {
|
||||
* Bind Month enum value.
|
||||
*/
|
||||
@Override
|
||||
public void bind(DataBind b, Object value) throws SQLException {
|
||||
public void bind(DataBinder binder, Object value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.INTEGER);
|
||||
binder.setNull(Types.INTEGER);
|
||||
} else {
|
||||
// avoiding the map lookup
|
||||
b.setInt(((Month) value).getValue());
|
||||
binder.setInt(((Month) value).getValue());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,8 +48,8 @@ public class ScalarTypeMonth extends ScalarTypeEnumWithMapping {
|
||||
* Read Month enum from integer.
|
||||
*/
|
||||
@Override
|
||||
public Object read(DataReader dataReader) throws SQLException {
|
||||
Integer i = dataReader.getInt();
|
||||
public Object read(DataReader reader) throws SQLException {
|
||||
Integer i = reader.getInt();
|
||||
if (i == null) {
|
||||
return null;
|
||||
} else {
|
||||
|
||||
@@ -49,17 +49,17 @@ public class ScalarTypeMonthDay extends ScalarTypeBase<MonthDay> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public MonthDay read(DataReader dataReader) throws SQLException {
|
||||
Date ts = dataReader.getDate();
|
||||
public MonthDay read(DataReader reader) throws SQLException {
|
||||
Date ts = reader.getDate();
|
||||
return ts == null ? null : convertFromDate(ts);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, MonthDay value) throws SQLException {
|
||||
public void bind(DataBinder binder, MonthDay value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.DATE);
|
||||
binder.setNull(Types.DATE);
|
||||
} else {
|
||||
b.setDate(convertToDate(value));
|
||||
binder.setDate(convertToDate(value));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -37,9 +37,8 @@ public class ScalarTypePostgresHstore extends ScalarTypeBase<Map> {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public Map read(DataReader dataReader) throws SQLException {
|
||||
|
||||
Object value = dataReader.getObject();
|
||||
public Map read(DataReader reader) throws SQLException {
|
||||
Object value = reader.getObject();
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -50,8 +49,8 @@ public class ScalarTypePostgresHstore extends ScalarTypeBase<Map> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Map value) throws SQLException {
|
||||
b.setObject(value);
|
||||
public void bind(DataBinder binder, Map value) throws SQLException {
|
||||
binder.setObject(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -22,17 +22,17 @@ public class ScalarTypeShort extends ScalarTypeBase<Short> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Short value) throws SQLException {
|
||||
public void bind(DataBinder binder, Short value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.SMALLINT);
|
||||
binder.setNull(Types.SMALLINT);
|
||||
} else {
|
||||
b.setShort(value);
|
||||
binder.setShort(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Short read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getShort();
|
||||
public Short read(DataReader reader) throws SQLException {
|
||||
return reader.getShort();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -76,7 +76,6 @@ public class ScalarTypeShort extends ScalarTypeBase<Short> {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, Short value) throws IOException {
|
||||
|
||||
if (value == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
@@ -21,17 +21,17 @@ public abstract class ScalarTypeStringBase extends ScalarTypeBase<String> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, String value) throws SQLException {
|
||||
public void bind(DataBinder binder, String value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
b.setString(value);
|
||||
binder.setString(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getString();
|
||||
public String read(DataReader reader) throws SQLException {
|
||||
return reader.getString();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -75,7 +75,6 @@ public abstract class ScalarTypeStringBase extends ScalarTypeBase<String> {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, String value) throws IOException {
|
||||
|
||||
if (value == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
@@ -22,17 +22,17 @@ public class ScalarTypeTime extends ScalarTypeBase<Time> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Time value) throws SQLException {
|
||||
public void bind(DataBinder binder, Time value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.TIME);
|
||||
binder.setNull(Types.TIME);
|
||||
} else {
|
||||
b.setTime(value);
|
||||
binder.setTime(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Time read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getTime();
|
||||
public Time read(DataReader reader) throws SQLException {
|
||||
return reader.getTime();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -77,7 +77,6 @@ public class ScalarTypeTime extends ScalarTypeBase<Time> {
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutput dataOutput, Time value) throws IOException {
|
||||
|
||||
if (value == null) {
|
||||
dataOutput.writeBoolean(false);
|
||||
} else {
|
||||
|
||||
@@ -54,19 +54,18 @@ public class ScalarTypeTimestamp extends ScalarTypeBaseDateTime<Timestamp> {
|
||||
return t;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, Timestamp value) throws SQLException {
|
||||
public void bind(DataBinder binder, Timestamp value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.TIMESTAMP);
|
||||
binder.setNull(Types.TIMESTAMP);
|
||||
} else {
|
||||
b.setTimestamp(value);
|
||||
binder.setTimestamp(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Timestamp read(DataReader dataReader) throws SQLException {
|
||||
return dataReader.getTimestamp();
|
||||
public Timestamp read(DataReader reader) throws SQLException {
|
||||
return reader.getTimestamp();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -10,7 +10,6 @@ public class ScalarTypeUUIDBinary extends ScalarTypeUUIDBase {
|
||||
|
||||
private final boolean optimized;
|
||||
|
||||
|
||||
protected ScalarTypeUUIDBinary(boolean optimized) {
|
||||
super(false, Types.BINARY);
|
||||
this.optimized = optimized;
|
||||
@@ -36,17 +35,17 @@ public class ScalarTypeUUIDBinary extends ScalarTypeUUIDBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, UUID value) throws SQLException {
|
||||
public void bind(DataBinder binder, UUID value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.BINARY);
|
||||
binder.setNull(Types.BINARY);
|
||||
} else {
|
||||
b.setBytes(convertToBytes(value, optimized));
|
||||
binder.setBytes(convertToBytes(value, optimized));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID read(DataReader dataReader) throws SQLException {
|
||||
byte[] bytes = dataReader.getBytes();
|
||||
public UUID read(DataReader reader) throws SQLException {
|
||||
byte[] bytes = reader.getBytes();
|
||||
if (bytes == null) {
|
||||
return null;
|
||||
} else {
|
||||
@@ -106,7 +105,6 @@ public class ScalarTypeUUIDBinary extends ScalarTypeUUIDBase {
|
||||
*/
|
||||
public static byte[] convertToBytes(Object value, boolean optimized) {
|
||||
|
||||
|
||||
UUID uuid = (UUID) value;
|
||||
byte[] ret = new byte[16];
|
||||
long l = uuid.getMostSignificantBits();
|
||||
|
||||
@@ -15,8 +15,8 @@ public class ScalarTypeUUIDNative extends ScalarTypeUUIDBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID read(DataReader dataReader) throws SQLException {
|
||||
Object value = dataReader.getObject();
|
||||
public UUID read(DataReader reader) throws SQLException {
|
||||
Object value = reader.getObject();
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -27,8 +27,8 @@ public class ScalarTypeUUIDNative extends ScalarTypeUUIDBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, UUID value) throws SQLException {
|
||||
b.setObject(value);
|
||||
public void bind(DataBinder binder, UUID value) throws SQLException {
|
||||
binder.setObject(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,17 +19,17 @@ public class ScalarTypeUUIDVarchar extends ScalarTypeUUIDBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, UUID value) throws SQLException {
|
||||
public void bind(DataBinder binder, UUID value) throws SQLException {
|
||||
if (value == null) {
|
||||
b.setNull(Types.VARCHAR);
|
||||
binder.setNull(Types.VARCHAR);
|
||||
} else {
|
||||
b.setString(formatValue(value));
|
||||
binder.setString(formatValue(value));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID read(DataReader dataReader) throws SQLException {
|
||||
String value = dataReader.getString();
|
||||
public UUID read(DataReader reader) throws SQLException {
|
||||
String value = reader.getString();
|
||||
if (value == null) {
|
||||
return null;
|
||||
} else {
|
||||
|
||||
@@ -38,8 +38,8 @@ public class ScalarTypeUtilDate {
|
||||
}
|
||||
|
||||
@Override
|
||||
public java.util.Date read(DataReader dataReader) throws SQLException {
|
||||
Timestamp timestamp = dataReader.getTimestamp();
|
||||
public java.util.Date read(DataReader reader) throws SQLException {
|
||||
Timestamp timestamp = reader.getTimestamp();
|
||||
if (timestamp == null) {
|
||||
return null;
|
||||
} else {
|
||||
@@ -48,11 +48,11 @@ public class ScalarTypeUtilDate {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind dataBind, java.util.Date value) throws SQLException {
|
||||
public void bind(DataBinder binder, java.util.Date value) throws SQLException {
|
||||
if (value == null) {
|
||||
dataBind.setNull(Types.TIMESTAMP);
|
||||
binder.setNull(Types.TIMESTAMP);
|
||||
} else {
|
||||
dataBind.setTimestamp(new Timestamp(value.getTime()));
|
||||
binder.setTimestamp(new Timestamp(value.getTime()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +66,6 @@ public class ScalarTypeUtilDate {
|
||||
return BasicTypeConverter.toUtilDate(value);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Date convertFromTimestamp(Timestamp ts) {
|
||||
return new java.util.Date(ts.getTime());
|
||||
|
||||
@@ -76,12 +76,12 @@ public class ScalarTypeWrapper<B, S> implements ScalarType<B> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind b, B value) throws SQLException {
|
||||
public void bind(DataBinder binder, B value) throws SQLException {
|
||||
if (value == null) {
|
||||
scalarType.bind(b, null);
|
||||
scalarType.bind(binder, null);
|
||||
} else {
|
||||
S sv = converter.unwrapValue(value);
|
||||
scalarType.bind(b, sv);
|
||||
scalarType.bind(binder, sv);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -141,14 +141,13 @@ public class ScalarTypeWrapper<B, S> implements ScalarType<B> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadIgnore(DataReader dataReader) {
|
||||
dataReader.incrementPos(1);
|
||||
public void loadIgnore(DataReader reader) {
|
||||
reader.incrementPos(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public B read(DataReader dataReader) throws SQLException {
|
||||
|
||||
S sv = scalarType.read(dataReader);
|
||||
public B read(DataReader reader) throws SQLException {
|
||||
S sv = scalarType.read(reader);
|
||||
if (sv == null) {
|
||||
return nullValue;
|
||||
}
|
||||
@@ -174,7 +173,6 @@ public class ScalarTypeWrapper<B, S> implements ScalarType<B> {
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public Object toJdbcType(Object value) {
|
||||
|
||||
Object sv = converter.unwrapValue((B) value);
|
||||
if (sv == null) {
|
||||
return nullValue;
|
||||
|
||||
@@ -23,17 +23,17 @@ public class ScalarTypeYear extends ScalarTypeBase<Year> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(DataBind bind, Year value) throws SQLException {
|
||||
public void bind(DataBinder binder, Year value) throws SQLException {
|
||||
if (value == null) {
|
||||
bind.setNull(Types.INTEGER);
|
||||
binder.setNull(Types.INTEGER);
|
||||
} else {
|
||||
bind.setInt(value.getValue());
|
||||
binder.setInt(value.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Year read(DataReader dataReader) throws SQLException {
|
||||
Integer value = dataReader.getInt();
|
||||
public Year read(DataReader reader) throws SQLException {
|
||||
Integer value = reader.getInt();
|
||||
return (value == null) ? null : Year.of(value);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user