|
@@ -8,11 +8,37 @@ import org.postgis.PGgeometry;
|
|
|
import org.postgis.binary.BinaryParser;
|
|
|
import org.postgis.binary.BinaryWriter;
|
|
|
|
|
|
+/**
|
|
|
+ * PostgreSQL值映射器,JDBC索引{@link java.sql.Types 1111}, JDBC类型java.lang.Object,支持的数据库类型:
|
|
|
+ * <ol>
|
|
|
+ * <li>cidr</li>
|
|
|
+ * <li>inet</li>
|
|
|
+ * <li>macaddr</li>
|
|
|
+ * <li>box</li>
|
|
|
+ * <li>circle</li>
|
|
|
+ * <li>interval</li>
|
|
|
+ * <li>line</li>
|
|
|
+ * <li>lseg</li>
|
|
|
+ * <li>path</li>
|
|
|
+ * <li>point</li>
|
|
|
+ * <li>polygon</li>
|
|
|
+ * <li>varbit</li>
|
|
|
+ * </ol>
|
|
|
+ *
|
|
|
+ * @author AE86
|
|
|
+ * @version 1.0.0
|
|
|
+ * @date 2022/8/24 23:43
|
|
|
+ */
|
|
|
public class PGOtherValueMapper extends AbstractValueMapper<Object> {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected boolean skipConvert(Object val) {
|
|
|
+ return val instanceof PGgeometry || val instanceof Geometry || val instanceof java.util.UUID;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
- protected Object convert(ConnectorMapper connectorMapper, Object val) throws Exception {
|
|
|
+ protected Object convert(ConnectorMapper connectorMapper, Object val) {
|
|
|
if (val instanceof String) {
|
|
|
- //测试下Geometry能不能用起来
|
|
|
try {
|
|
|
BinaryParser parser = new BinaryParser();
|
|
|
org.postgis.Geometry geo = parser.parse((String) val);
|
|
@@ -21,13 +47,7 @@ public class PGOtherValueMapper extends AbstractValueMapper<Object> {
|
|
|
} catch (Exception ex) {
|
|
|
return val;
|
|
|
}
|
|
|
- } else if (val instanceof PGgeometry)
|
|
|
- return val;
|
|
|
- else if (val instanceof Geometry) {
|
|
|
- return val;
|
|
|
- } else if (val instanceof java.util.UUID) {
|
|
|
- return val;
|
|
|
}
|
|
|
throw new ConnectorException(String.format("%s can not find type [%s], val [%s]", getClass().getSimpleName(), val.getClass(), val));
|
|
|
}
|
|
|
-}
|
|
|
+}
|