diff --git a/pom.xml b/pom.xml index dea4a92..0cd29c5 100644 --- a/pom.xml +++ b/pom.xml @@ -50,6 +50,7 @@ UTF-8 + 2.8.6 4.3.6.RELEASE 3.3.1 1.7.18 @@ -63,10 +64,27 @@ guava 23.0 + + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} org.mybatis @@ -233,6 +251,22 @@ java-vector-tile 1.2.1 + + + log4j + log4j + ${log4j.version} + + + org.slf4j + slf4j-api + ${slf4j.version} + + + org.slf4j + slf4j-log4j12 + ${slf4j.version} + diff --git a/src/main/java/com/gis3c/common/json/JsonUtil.java b/src/main/java/com/gis3c/common/json/JsonUtil.java new file mode 100644 index 0000000..2bcca34 --- /dev/null +++ b/src/main/java/com/gis3c/common/json/JsonUtil.java @@ -0,0 +1,52 @@ +package com.gis3c.common.json; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationConfig; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationConfig; +import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import java.io.OutputStream; + +/** + * Created by hukekuan on 2017/12/19. + */ +public class JsonUtil { + private static ObjectMapper objectMapper = null; + private static Log log = LogFactory.getLog(JsonUtil.class); + static { + + objectMapper = new ObjectMapper(); + +// objectMapper.setDateFormat(new SimpleDateFormat(FormatUtil.DATE_FORMAT_LONG)); +// objectMapper.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES); +// objectMapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false); +// objectMapper.setFilters(new SimpleFilterProvider().setFailOnUnknownId(false)); + } + + public static String Stringify(Object object){ + try { + return objectMapper.writeValueAsString(object); + } catch (JsonProcessingException e) { + log.error(e.getMessage(), e); + } + return null; + } + + public static String Stringify(Object object, String... properties){ + return null; + } + + public static void Stringify(OutputStream out, Object objec){ + + } + + public static void Stringify(OutputStream out, Object object, String... properties){ + + } + + public static T Parse(String json, Class clazz){ + return null; + } +} diff --git a/src/main/java/com/gis3c/spatial/postgis/JsonTypeHandler.java b/src/main/java/com/gis3c/spatial/postgis/JsonTypeHandler.java index 44e0c49..aa56caa 100644 --- a/src/main/java/com/gis3c/spatial/postgis/JsonTypeHandler.java +++ b/src/main/java/com/gis3c/spatial/postgis/JsonTypeHandler.java @@ -1,5 +1,6 @@ package com.gis3c.spatial.postgis; +import com.gis3c.common.json.JsonUtil; import org.apache.ibatis.type.BaseTypeHandler; import org.apache.ibatis.type.JdbcType; @@ -14,21 +15,21 @@ import java.sql.SQLException; public class JsonTypeHandler extends BaseTypeHandler { @Override public void setNonNullParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException { - + ps.setString(i, JsonUtil.Stringify(parameter)); } @Override public Object getNullableResult(ResultSet rs, String columnName) throws SQLException { - return null; + return JsonUtil.Parse(rs.getString(columnName), Object.class); } @Override public Object getNullableResult(ResultSet rs, int columnIndex) throws SQLException { - return null; + return JsonUtil.Parse(rs.getString(columnIndex), Object.class); } @Override public Object getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { - return null; + return JsonUtil.Parse(cs.getString(columnIndex), Object.class); } }