20252 月11
nutz:postgresql 中 PostGIS的几何数据类型处理
@Column
@ColDefine(customType = "GEOGRAPHY(Point,4326)", adaptor = PsqlPointAdaptor.class)
@ApiModelProperty(description = "坐标")
private String geomPoint;//值格式为"POINT(经度 纬度)"
import net.postgis.jdbc.PGgeometry;
import net.postgis.jdbc.geometry.Point;
import org.nutz.dao.jdbc.ValueAdaptor;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
public class PsqlPointAdaptor implements ValueAdaptor {
@Override
public Object get(ResultSet rs, String colName) throws SQLException {
return rs.getObject(colName);
}
@Override
public void set(PreparedStatement stat, Object obj, int index) throws SQLException{
if (null == obj) {
stat.setNull(index, Types.NULL);
} else {
String pointStr = (String) obj;
Point point = new Point(pointStr);
PGgeometry pgGeometry = new PGgeometry(point);
stat.setObject(index, pgGeometry, Types.OTHER);
}
}
}
<properties>
<postgis-jdbc.version>2024.1.0</postgis-jdbc.version>
</properties>
<dependencies>
<!-- PostGIS扩展类型 -->
<dependency>
<groupId>net.postgis</groupId>
<artifactId>postgis-jdbc</artifactId>
<version>${postgis-jdbc.version}</version>
</dependency>