1. 程式人生 > >源於專案:通用初始化JavaBean屬性類

源於專案:通用初始化JavaBean屬性類

      在大型專案中,一張資料表可能有100甚至200個欄位,對應的javaBean欄位也會有這麼多,比如我們公司,做銀行系統,一張資料表150個欄位很正常。在系統中我們需要向資料表寫javaBean,比如新增。對於150個欄位的javaBean,實際上在業務上處理的可能最多50個欄位,但是其它欄位在資料庫中不允許為空。我們不得不手工呼叫javaBean的set方法對其它屬性給於預設的值比如0或者空串。問題出來了:手工呼叫set方法初始屬性沒錯,問題是100個set方法你能保證不錯,不遺漏?在維護中我也經常發現一些BUG的產生是因為部分欄位初始化遺漏。聯想以前所瞭解的java反射機制和多型,我想我們可以做一個公共的方法,在例項化javaBean的時候初始化部分或者全部屬性,至少保證它不為空或者是系統允許的預設值,然後在業務邏輯中處理一些需要處理的欄位。InitBean.java是基於以上幾點所寫的,恩,100%原創~! 這個類可以擴充套件,稍加修改為符合具體專案需求,比如只初始化某一型別的屬性等等,重要的不是程式碼,而是思想和麵對問題所想到的解決思路。程式碼如下:

InitBean.java

tese1.java(測試javaBean)

 

tese2.java(測試javaBean)

如果你能更好的修改,使之更強大和實用,歡迎交流,互相學習:[email protected]

相關推薦

源於專案:通用初始JavaBean屬性

      在大型專案中,一張資料表可能有100甚至200個欄位,對應的javaBean欄位也會有這麼多,比如我們公司,做銀行系統,一張資料表150個欄位很正常。在系統中我們需要向資料表寫javaBean,比如新增。對於150個欄位的javaBean,實際上在業務上處理的可能

專案初始通用執行緒池

說明:在專案初始階段,有的時候需要維護一個通用的執行緒池,用來非同步執行寫操作,不影響主執行緒。直接上程式碼吧! package com.fy.agent.api.config.thread; import org.springframework.conte

集合初始器、初始器、匿名

匿名類 對象初始化器1:集合初始化器集合添加數據的兩種方法第一種方法:第二種方法:利用集合初始化器2:對象初始化器1.當一個類中有構造方法,我們可以用構造方法來進行實例化一個對象2.當一個類中沒有任何的構造方法,這個時候我們就可以利用對象初始化器進行實例化一個對象3:匿名類集合初始化器、類初始化器、匿名類

Spring 如何初始泛型實例

Spring在 Java 中對於泛型類型,比如這樣簡單的類定義class Processor<T> {}如果直接初始化時要指定具體類型的話,我們可以這麽寫Processor<String> processor = new Processor<>(); //Java 7 及

通用初始樣式

normal uri hid shee sim detail object active 版本 通用初始化樣式 ------- body{ margin: 0;padding: 0;font-family: "微軟雅黑";overflow: hidden;} body,

Vue原理(一)——初始data屬性

插入 一個 date pda 屬性 data屬性 bject 個數 [] let app = new Vue({ data: { text: "text", text2: "text2" } }) 第一步: 使用observe

weex專案初始

建立一個weex應用 我們使用weex-toolkit來建立weex 安裝weex-toolkit npm install weex-toolkit -g 建立一個app weex create weex-project ###開發 cd

專案啟動初始資料到記憶體中

有一部分資料庫資料需要在專案啟動時就載入到記憶體中,以減少資料庫互動次數.降低伺服器和資料庫壓力. 可以利用物件初始化靜態變數時,賦予資料庫的資料,已ueser表為例 1、資料庫互動的Mapper,獲取資料庫資訊 public interface UserMapper { @M

Spring Boot神器!專案啟動初始就靠它

在我們實際工作中,總會遇到這樣需求,在專案啟動的時候需要做一些初始化的操作,比如初始化執行緒池,提前載入好加密證書等。今天就給大家介紹一個 Spring Boot 神器,專門幫助大家解決專案啟動初始化資源操作。 這個神器就是 CommandLineRunner,CommandLineR

Kendo UI開發教程 3 初始Data 屬性

                前面在介紹準備Kendo UI開發環境時我們使用jQuery的方法將一個HTML元素轉換成一個Kendo UI控制元件: $(“#datepicker”).kendoDatePicker();除了使用jQuery外掛的方法來初始化方法外,每個Kendo 控制元件還可以通過dat

vue-cli專案初始及常見‘怪’問題

/*命令用綠色標註*/ /*加程式碼用 ++ 表示,減程式碼用 --表示,更改程式碼用 +-表示*/ 1.專案初始化 1.$ vue init webpack [專案名稱--可省略,預設在當前資料夾下建立(檔名最好純小寫,當前檔案目錄最好也是)] 2.按回車並填入

關於java裡面Collection包括List,Map等初始內部匿名和泛型的一個例子

package com.yang.generalType; import java.util.ArrayList; import java.util.List; public class TestGeneralType { /** * @param args

深入理解java虛擬機器(三)(一個載入器只初始一次物件,不同類載入器可以對同一類物件進行初始

package com.ygl; class Final{public static final int x=6/3;//此處x在編譯時能計算出值,是編譯時的常量,則System.out.println(Final.x);直接輸出值,不再執行下面static(前提是fina

本地專案git初始並提交遠端倉庫

1、先在遠端倉庫(如github)建立專案,為了避免錯誤,不要初始化README, license, 或者gitignore檔案 . 2、開啟Terminal終端 3、切換到你的本地專案目錄 4、初

Git專案初始--客戶端

分散式專案版本管理工具,效果遠超SVN,誰用誰知道?安裝(windows):git的安裝通常是按照正常順序執行安裝即可,沒什麼複雜的?基礎配置:linu下載:wget命令即可linux下的最重要的安裝依賴的問題?安裝Git?tar -zxvf git的gz包編譯?make p

c++ 子建構函式初始及父構造初始

  我們知道,構造方法是用來初始化類物件的。如果在類中沒有顯式地宣告建構函式,那麼編譯器會自動建立一個預設的建構函式;並且這個預設的建構函式僅僅在沒有顯式地宣告建構函式的情況下才會被建立建立。   建構函式與父類的其它成員(成員變數和成員方法)不同,它不能被子類繼承。因此,在建立子類物件時,為了初始化從父類

斯坦福大學機器學習筆記——聚(k-均值聚演算法、損失函式、初始、聚數目的選擇)

上面的部落格的演算法都是有監督學習的演算法,即對於每個資料我們都有該資料對應的標籤,資料集的形式如下: 而今天我們學習的演算法是一種無監督學習的演算法——聚類,該演算法中的每個資料沒有標籤,資料集的形式如下: K-均值聚類 k-均值聚類是一種最常見

構造方法、初始塊以及欄位的初始順序

構造方法 首先,以下程式碼為何無法通過編譯?哪兒出錯了? public class Test { public static void main(String[] a

GitHub上建立專案初始本地工程提交到GitHub上

一:GitHub上建立專案 如圖輸入選擇對應資訊,點選Create repository,完成專案建立。 專案名選擇專案公開還是私有增加一個license,用來對開源專案做一些約束。(有時間會整理一下的) 二:初始化本地工程提交到GitHub上 完成上面的建立後,專案是空

Web專案啟動初始監聽器如何獲取spring bean

我們在專案開發中可能會遇到這樣的需求,在專案啟動的時候我們通過web.xml配置載入一個監聽器,然後在監聽器中初始化我們專案中所需要的資料,那我們分析一下實現 1: 首先建立監聽器,實現javax.servlet.ServletContextListener public