如果你項目中的持久層用的是MyBatis,那麼這麼文章可能會幫你省掉以下繁瑣的操作:
- 根據表結構手動編寫POJO
- 編寫Mapper映射文件
- 編寫訪問持久層的DAO
- 多個表以上步驟重複多次
所有這些繁瑣的操作現在只需要改個jdbc配置即可一鍵幫你生成數據庫中所有表的ORM文件或指定表的ORM文件,並且可以定製化。讓你為所欲為!
先聲明下我不是通過開源的mybatis-generator實現的,因為mybatis-generator生成的信息比較冗餘或不是我想要的,如缺註釋,
下面先講我是如何實現自動根據表結構生成上述ORM文件的。然後會附上源代碼在github的URL及如何使用。
- 以mysql為例,mysql服務會自帶一個表information_schema用來存儲所有表的信息,其中information_schema.tables存儲所有表的基本信息,information_schema.columns存儲所有表的所有字段信息。通過這兩張表我可以查到我生成ORM文件所需的所有信息,包括表名、表註釋、字段名、字段類型、字段註釋等。
- 拿到這些信息再經過加工(如字段的下劃線分割變成駝峰命名,jdbcType轉化為java的數據類型等),然後將加工後的信息載入freemaker上下文。
- 編寫freemaker模板來定製ORM文件格式,然後結合freemaker上下文中的信息就可以一鍵生成所有表的ORM文件了。
實現該利器的大致思路如上,具體原理和使用方式請參考github:https://github.com/stathry/generator
具體怎麼使用在github首頁或README文件中有寫哦。
文章或代碼寫的糙的地方歡迎各位老司機指正或點評。如果覺得有收穫記得關注哦!
閱讀更多 高級JAVA指南 的文章