Skip to content

Commit

Permalink
encapsulation code to method level for reuse
Browse files Browse the repository at this point in the history
  • Loading branch information
mawen12 committed Sep 25, 2024
1 parent 8d9ba98 commit 28af7e9
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 83 deletions.
25 changes: 7 additions & 18 deletions src/main/java/org/apache/ibatis/type/BlobTypeHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,31 +36,20 @@ public void setNonNullParameter(PreparedStatement ps, int i, byte[] parameter, J

@Override
public byte[] getNullableResult(ResultSet rs, String columnName) throws SQLException {
Blob blob = rs.getBlob(columnName);
byte[] returnValue = null;
if (null != blob) {
returnValue = blob.getBytes(1, (int) blob.length());
}
return returnValue;
return toPrimitiveBytes(rs.getBlob(columnName));
}

@Override
public byte[] getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
Blob blob = rs.getBlob(columnIndex);
byte[] returnValue = null;
if (null != blob) {
returnValue = blob.getBytes(1, (int) blob.length());
}
return returnValue;
return toPrimitiveBytes(rs.getBlob(columnIndex));
}

@Override
public byte[] getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
Blob blob = cs.getBlob(columnIndex);
byte[] returnValue = null;
if (null != blob) {
returnValue = blob.getBytes(1, (int) blob.length());
}
return returnValue;
return toPrimitiveBytes(cs.getBlob(columnIndex));
}

private byte[] toPrimitiveBytes(Blob blob) throws SQLException {
return blob == null ? null : blob.getBytes(1, (int) blob.length());
}
}
22 changes: 7 additions & 15 deletions src/main/java/org/apache/ibatis/type/CharacterTypeHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,28 +33,20 @@ public void setNonNullParameter(PreparedStatement ps, int i, Character parameter

@Override
public Character getNullableResult(ResultSet rs, String columnName) throws SQLException {
String columnValue = rs.getString(columnName);
if (columnValue != null && !columnValue.isEmpty()) {
return columnValue.charAt(0);
}
return null;
return toCharacter(rs.getString(columnName));
}

@Override
public Character getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
String columnValue = rs.getString(columnIndex);
if (columnValue != null && !columnValue.isEmpty()) {
return columnValue.charAt(0);
}
return null;
return toCharacter(rs.getString(columnIndex));
}

@Override
public Character getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
String columnValue = cs.getString(columnIndex);
if (columnValue != null && !columnValue.isEmpty()) {
return columnValue.charAt(0);
}
return null;
return toCharacter(cs.getString(columnIndex));
}

private Character toCharacter(String value) {
return value == null || value.isEmpty() ? null : value.charAt(0);
}
}
22 changes: 7 additions & 15 deletions src/main/java/org/apache/ibatis/type/DateOnlyTypeHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,29 +33,21 @@ public void setNonNullParameter(PreparedStatement ps, int i, Date parameter, Jdb

@Override
public Date getNullableResult(ResultSet rs, String columnName) throws SQLException {
java.sql.Date sqlDate = rs.getDate(columnName);
if (sqlDate != null) {
return new Date(sqlDate.getTime());
}
return null;
return toSqlDate(rs.getDate(columnName));
}

@Override
public Date getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
java.sql.Date sqlDate = rs.getDate(columnIndex);
if (sqlDate != null) {
return new Date(sqlDate.getTime());
}
return null;
return toSqlDate(rs.getDate(columnIndex));
}

@Override
public Date getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
java.sql.Date sqlDate = cs.getDate(columnIndex);
if (sqlDate != null) {
return new Date(sqlDate.getTime());
}
return null;
return toSqlDate(cs.getDate(columnIndex));
}

private java.sql.Date toSqlDate(Date date) {
return date == null ? null : new java.sql.Date(date.getTime());
}

}
23 changes: 8 additions & 15 deletions src/main/java/org/apache/ibatis/type/DateTypeHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,28 +34,21 @@ public void setNonNullParameter(PreparedStatement ps, int i, Date parameter, Jdb

@Override
public Date getNullableResult(ResultSet rs, String columnName) throws SQLException {
Timestamp sqlTimestamp = rs.getTimestamp(columnName);
if (sqlTimestamp != null) {
return new Date(sqlTimestamp.getTime());
}
return null;
return toDate(rs.getTimestamp(columnName));
}

@Override
public Date getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
Timestamp sqlTimestamp = rs.getTimestamp(columnIndex);
if (sqlTimestamp != null) {
return new Date(sqlTimestamp.getTime());
}
return null;
return toDate(rs.getTimestamp(columnIndex));
}

@Override
public Date getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
Timestamp sqlTimestamp = cs.getTimestamp(columnIndex);
if (sqlTimestamp != null) {
return new Date(sqlTimestamp.getTime());
}
return null;
return toDate(cs.getTimestamp(columnIndex));
}

private Date toDate(Timestamp timestamp) {
return timestamp == null ? null : new Date(timestamp.getTime());
}

}
23 changes: 8 additions & 15 deletions src/main/java/org/apache/ibatis/type/TimeOnlyTypeHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,28 +34,21 @@ public void setNonNullParameter(PreparedStatement ps, int i, Date parameter, Jdb

@Override
public Date getNullableResult(ResultSet rs, String columnName) throws SQLException {
Time sqlTime = rs.getTime(columnName);
if (sqlTime != null) {
return new Date(sqlTime.getTime());
}
return null;
return toDate(rs.getTime(columnName));
}

@Override
public Date getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
Time sqlTime = rs.getTime(columnIndex);
if (sqlTime != null) {
return new Date(sqlTime.getTime());
}
return null;
return toDate(rs.getTime(columnIndex));
}

@Override
public Date getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
Time sqlTime = cs.getTime(columnIndex);
if (sqlTime != null) {
return new Date(sqlTime.getTime());
}
return null;
return toDate(cs.getTime(columnIndex));
}

private Date toDate(Time time) {
return time == null ? null : new Date(time.getTime());
}

}
11 changes: 6 additions & 5 deletions src/main/java/org/apache/ibatis/type/YearMonthTypeHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,19 +40,20 @@ public void setNonNullParameter(PreparedStatement ps, int i, YearMonth yearMonth

@Override
public YearMonth getNullableResult(ResultSet rs, String columnName) throws SQLException {
String value = rs.getString(columnName);
return value == null ? null : YearMonth.parse(value);
return toYearMonth(rs.getString(columnName));
}

@Override
public YearMonth getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
String value = rs.getString(columnIndex);
return value == null ? null : YearMonth.parse(value);
return toYearMonth(rs.getString(columnIndex));
}

@Override
public YearMonth getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
String value = cs.getString(columnIndex);
return toYearMonth(cs.getString(columnIndex));
}

private YearMonth toYearMonth(String value) {
return value == null ? null : YearMonth.parse(value);
}

Expand Down

0 comments on commit 28af7e9

Please sign in to comment.