如果需要將表數據轉化為XML形式數據的話,如果我們使用Spring的JDBC Template,那么常需要做的工作是創建一個RowMapper匿名類,在其中將字段與領域對象的某個屬性匹配上,然后得到領域對象鏈表形式的結果,此后展開這個集合,再將字段轉化為XML數據,其中進行了兩次名稱和值之間的匹配,硬編碼較多,比較費時間。如果我們利用Metadata(Metadata是解釋數據的數據,如果我們的研究對象是表格中的數據,那么表頭就是表格中數據的Metadata)則可以有效簡化這一過程。
下面先看需求,有一個emp雇員表,表中包括id,姓名name,年齡age和地址addr四個字段,如下所示:
我們需要把表中的記錄取出并變成如下格式的字符串:
































下面是負責取出數據的DAO類:
















































這里沒有用硬編碼的方式從行集中逐個取出字段,而是通過行集的Metadata得到字段的個數,再依次遍歷下去,在循環中得到的字段名稱和字段值放到對象NameValue中,它的代碼如下:


































將返回的表格數據鏈表變成最終的XML形式字符串的代碼如下:









































綜上所述,由于引入了Metadata的幫助,剩下的主要是sql語句中別名的書寫和根節點子節點的書寫了,這樣乏味的工作得到了簡化,出錯的幾率也大大減小了。
以上代碼可以從這里下載,需要的包請自行導入。