当前位置:   article > 正文

MybatisPlus JSON格式handler_mybatis-plus type-handlers-package

mybatis-plus type-handlers-package
  1. import com.alibaba.fastjson.JSONObject;
  2. import org.apache.ibatis.type.BaseTypeHandler;
  3. import org.apache.ibatis.type.JdbcType;
  4. import org.apache.ibatis.type.MappedJdbcTypes;
  5. import org.apache.ibatis.type.MappedTypes;
  6. import java.sql.CallableStatement;
  7. import java.sql.PreparedStatement;
  8. import java.sql.ResultSet;
  9. import java.sql.SQLException;
  10. @MappedTypes(JSONObject.class)
  11. @MappedJdbcTypes(JdbcType.VARCHAR)
  12. public class MySqlJsonHandler extends BaseTypeHandler<JSONObject>{
  13. /**
  14. * 设置非空参数
  15. * @param ps
  16. * @param i
  17. * @param parameter
  18. * @param jdbcType
  19. * @throws SQLException
  20. */
  21. @Override
  22. public void setNonNullParameter(PreparedStatement ps, int i, JSONObject parameter, JdbcType jdbcType) throws SQLException {
  23. ps.setString(i,String.valueOf(parameter.toJSONString()));
  24. }
  25. /**
  26. * 根据列名,获取可以为空的结果
  27. * @param rs
  28. * @param columnName
  29. * @return
  30. * @throws SQLException
  31. */
  32. @Override
  33. public JSONObject getNullableResult(ResultSet rs, String columnName) throws SQLException {
  34. String sqlJson = rs.getString(columnName);
  35. if (null != sqlJson) {
  36. return JSONObject.parseObject(sqlJson);
  37. }
  38. return null;
  39. }
  40. /**
  41. * 根据列索引,获取可以为内控的接口
  42. * @param rs
  43. * @param columnIndex
  44. * @return
  45. * @throws SQLException
  46. */
  47. @Override
  48. public JSONObject getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
  49. String sqlJson = rs.getString(columnIndex);
  50. if (null != sqlJson) {
  51. return JSONObject.parseObject(sqlJson);
  52. }
  53. return null;
  54. }
  55. /**
  56. *
  57. * @param cs
  58. * @param columnIndex
  59. * @return
  60. * @throws SQLException
  61. */
  62. @Override
  63. public JSONObject getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
  64. String sqlJson = cs.getNString(columnIndex);
  65. if (null != sqlJson) {
  66. return JSONObject.parseObject(sqlJson);
  67. }
  68. return null;
  69. }
  70. }
  1. mybatis:
  2. mapper-locations: classpath:mapper/*.xml
  3. type-aliases-package: com.xxx.xxx.entity
  4. type-handlers-package: com.xxx.xxx.handler #增加此项配置
@TableField(typeHandler=MySqlJsonHandler.class)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/173085
推荐阅读
相关标签
  

闽ICP备14008679号