本文主要是介绍mybatis读取postgis的geometry对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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> {@Overridepublic void setNonNullParameter(PreparedStatement ps, int i, PGgeometry parameter, JdbcType jdbcType) throws SQLException {ps.setObject(i,parameter);}@Overridepublic PGgeometry getNullableResult(ResultSet rs, String columnName) throws SQLException {String value = rs.getString(columnName);if(StringUtils.isNotBlank(value)){return new PGgeometry(value);}return null;}@Overridepublic PGgeometry getNullableResult(ResultSet rs, int columnIndex) throws SQLException {String value = rs.getString(columnIndex);if(StringUtils.isNotBlank(value)){return new PGgeometry(value);}return null;}@Overridepublic 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.*.*
这篇关于mybatis读取postgis的geometry对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!