1.需求描述:
软件开发完成后,交付客户给客户使用前通常需要数据库设计文档,很多程序员甚至项目经理自然会想到采用人海战术,一个项目组的成员,分模块来写,然后合并。作为程序员来说,这种方法是在是太low了。那么能否有自动化工具呢,当然有,用度娘搜索“数据库文档生成器”会出来很多个,他们的质量也会参差不齐,要么格式不满足公司文档格式需要。所以该问题的终极解决方案是理解数据库文档生成器的原理,然后自己动手实现一个,听起来是不是很难,其实现起来难度并不大,无图无真相,先上图。
2.技术点解析:
上面生成的效果图是不是很酷,现在我们就在一步一步解析是怎么生成的。
所需工具 |
作用 |
Microsot office |
用于生成word文档模板 |
开发语言 |
java |
Freemarker |
Java 模板语言 |
jdbc |
利用jdbc获取表的定义 |
这个问题可以拆分为:
- Word 文档模板:普通的doc、docx都是二进制文件,操作起来比较麻烦,那么我们可以采用变通的方式,用word 的xml格式。
另存一个看看,xml格式的doc长啥样:
天书一样的xml,是不是是不是很崩溃,其实你没必要完全看懂,看懂结构,找出你关心的部分即可,如果不会可以来回多试几次。
- 表结构元数据:
写java的同学,应该知道这是什么了,可能你没用过,但他就是存在。
- 将模板和元数据合并生成我们需要的文档。
从模板xml中找出需要循环的部分,加上foreach标签:
OK,现在数据有了,模板有了,问题就解决了。
3.代码实现:
1.获取表结构列表:
2.根据模板生成doc文件
4.后记:
利用模板+数据的思路,可以生产任何格式复杂格式的文档,如生成“***报告单.doc”等,并且可以降低开发难度,提高开发速度。
Java开发、互联网架构讨论QQ群: 297702426
邮箱:[email protected]
时间: 2024-11-05 01:34:53