標籤:style blog http io ar 使用 sp java for
今天建立了一個表有十幾個欄位,建立完之後必然要寫一個與之對應的java domain實體類。這不是重複的工作嗎?為什麼不先把這個表的所有的欄位查出來,然後放到linux環境下,用sed工具在每一行的前面加上“private String ”,每一行的後面添加“;”。這樣可以節省很多重複工作。下面上sql代碼和sed命令。
查詢一個mysql表所有列的列名的sql代碼如下:
SELECT COLUMN_NAME FROM information_schema.COLUMNSWHERE table_name = 'table_name';
執行結果
OK,拿到所有的列名之後,上Linux環境建立一個新的檔案,把這個列名複製進去。儲存退出。
在Linux上用sed對這個每一行是一個列名的檔案進行處理。命令如下:
[[email protected] tmp]# sed -i "s/^/private String /g" web.txt [[email protected] tmp]# sed -i "s/$/; /g" web.txt
第一條命令的意思是在每一行的開頭添加“private String ”, “^”這個符號在Regex裡表示開頭的意思。第二條命令會在每一行的末尾添加“;”,“$”dollar貨幣符號在Regex裡表示行尾的意思。
再cat一下這個檔案,輸出如下:
[[email protected] tmp]# cat web.txt private String id; private String name; private String seq; private String redirect_url; private String isAll; private String percentage; private String user_pin_list; private String user_level_list; private String pid_list; private String path_list; private String param_list; private String created; private String creater; private String modified; private String modifier;
好,OK,把這些代碼貼進你的IDE裡去,因為String類型的變數居多,所以統一加上“String”。下面的工作就是欄位類型不對的就改類型。
這個流程可以少敲很多代碼。而且在使用Ibatis這個ORM的情況下,類的屬性名稱和資料庫表的欄位名如果是一樣的話,那麼你不用寫任何ResultMap。
最後在類名上加上“@Data”註解(lombok的註解),這樣就為所有的欄位產生Getter, Setter方法。整個類就很簡潔了。
快速建立和mysql表對應的java domain實體類