mybatis读取postgis的geometry对象
mybatis处理postgis的geometry对象需要自定义TypeHandler
自定义GeometryTypeHander
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.postgis.PGgeometry;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class GeometryTypeHandler extends BaseTypeHandler<PGgeometry> {
@Override
public void setNonNullParameter(PreparedStatement ps, int i, PGgeometry parameter, JdbcType jdbcType) throws SQLException {
ps.setObject(i,parameter);
}
@Override
public PGgeometry getNullableResult(ResultSet rs, String columnName) throws SQLException {
String value = rs.getString(columnName);
if(StringUtils.isNotBlank(value)){
return new PGgeometry(value);
}
return null;
}
@Override
public PGgeometry getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
String value = rs.getString(columnIndex);
if(StringUtils.isNotBlank(value)){
return new PGgeometry(value);
}
return null;
}
@Override
public PGgeometry getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
String value = cs.getString(columnIndex);
if(StringUtils.isNotBlank(value)){
return new PGgeometry(value);
}
return null;
}
}
指定type-handlers-package路径
我这里使用的是mybatis-plus配置如下:
mybatis-plus:
type-handlers-package: com.*.*