亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用轉換器將 jOOQ 記錄轉換為 POJO

使用轉換器將 jOOQ 記錄轉換為 POJO

慕標琳琳 2021-12-10 10:03:47
在我的 Oracle 數據庫中,我有存儲為 VARCHAR 的金額值。從數據庫中檢索記錄時,我希望將它們映射到一個 POJO,其中金額值表示為雙精度值。不幸的是,我不能使用強制類型,因為在數據庫中所有內容都存儲為 VARCHAR,并且沒有模式將列標識為包含金額值的列。我正在查看jOOQ 轉換器,這似乎是我想要的。因此,我為此創建了一個 jOOQ 轉換器:public class DoubleConverter implements Converter<String, Double> {    @Override    public Double from(String stringValue) {        return new Double(stringValue);    }    @Override    public String to(Double doubleValue) {        DecimalFormat df = new DecimalFormat();        df.setMinimumFractionDigits(0);        df.setGroupingUsed(false);        return df.format(doubleValue);    }    @Override    public Class<String> fromType() {        return String.class;    }    @Override    public Class<Double> toType() {        return Double.class;    }}但是,每當我想將數據庫記錄映射到我的 POJO 時,我都想觸發這個轉換器record.into(MyClass.class),然后在我寫回數據庫時觸發回來。你建議如何實現這一目標?
查看完整描述

1 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

雖然我強烈建議您以某種方式獲取所有雙列的列表并在您的代碼生成配置中應用強制類型配置,但在您的特定情況下,您不必做太多事情就可以調用record.into(MyClass.class).


您record將只包含String值,而您的MyClass類將包含匹配的double屬性。jOOQ 將自動轉換String為double,反之亦然。默認情況下,DefaultRecordMapper和DefaultRecordUnmapper將被應用。


您可以通過指定 newRecordMapperProvider和 a來覆蓋它們,RecordUnmapperProvider如下所示:https : //www.jooq.org/doc/latest/manual/sql-execution/fetching/pojos-with-recordmapper-provider


正確地做到這一點需要一些工作。


查看完整回答
反對 回復 2021-12-10
  • 1 回答
  • 0 關注
  • 369 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號