日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

oracle long转为string,实现全局拦截前端传入的Long类型id转String

發布時間:2023/12/2 HTML 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle long转为string,实现全局拦截前端传入的Long类型id转String 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1遇到的問題

在開發過程中存在這樣一種問題,我們使用的id主鍵主要有long類型和varchar類型

當主鍵id為long類型并且長度超過16位,當返回給前端時,前端會出現js解析的參數如果是Long類型的并且長度過大就會出現精度丟失。這就會造成后臺返回的值與前端拿到的不一致問題。

2解決思路

根據加固項目采用Spring+springMVC+mango的架構設計前后端參數傳遞都有統一出入口,

根據FastJsonHttpMessageConverter實現了HttpMessageConverter對于后臺返回的Java對象解析為outStream后返回給前端,在配置中實現攔截。

在 SpringMVC進入readString方法前會根據@requestBody選擇HttpMessageConverter,http請求是基于文 本的瀏覽器和服務器通過交換原始文件進行通信這就意味著需要將我們的Java對象序列化和反序列化,及將Java對象解析到String變量中,當執行 readString方法時綁定string參數輸出響應報文。

(響應時)springmvc-----java對象------HttpMessageConverter----outStream----響應報文

3實例說明

加固項目applicationContext-http.xml部分配置

application/json;charset=UTF-8

text/plain;charset=UTF-8

在Java對象轉為json對象時會被FastJsonHttpMessageConverter這個處理類攔截,攔截時會觸發自己配置的toStringSerializer處理類,該類中可以自定義所需要處理返回給前端的數據。

public class ToStringSerializer implements ValueFilter {

@Override

public Object process(Object object, String name, Object value) {

if(value != null && value instanceof Long) {

if(((Long) value).longValue()>=10000000000000000L) {

value = value+"";

}

}

return value;

}

}

自定義類ToStringSerializer 實現了ValueFilter 繼承了SerializeFilter接口重寫了process方法

該方法有三個參數:json對象,對象key,對象value當key對應的值為long類型且長度超過十六位此時統一在處理類中將該值轉為字符串類型然后返回給前端。

總結

以上是生活随笔為你收集整理的oracle long转为string,实现全局拦截前端传入的Long类型id转String的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。