编写一个程序,最大的难点在于开始的设计,设计完了,那么基本上就完成了一大半。这指的是写应用系统,因为编码并不需要很多时间,大部分的工作都有框架帮你完成。而现在要写的是框架,并不是应用系统,但也要有开始的设计阶段,只不过,一开始的设计,不会很全面,随着编码的进行,会不断的添加新东西进来,使得框架越来越完善,功能也越来越多。所以,在最开始的起步阶段,选择一个相对简单的功能,作为切入点,这就比较重要了。不要想着,一开始写,就要把这个框架写得很完美,很通用,又要考虑这,又要考虑那。结果就是,考虑的太多,却迟迟没法下手。结果可能就是还没开始就难产了。而我选择的切入点,就是最简单的类与表的映射。在java中,类没有继承关系,在数据库中,表没有关联关系,也就是单张表的情况。基于此,实现通用的增删查改,这个都已经实现了。注解扫描器实现了,拦截器也简单地实现了。那么接下来的开发计划有:
1. 多表关联的实现
2. 分页的实现
3. java类有继承关系的实现
4. 数据库事务的引入,连接池的使用
5. 自动建表的实现
6. 多线程的使用
7. 与一些框架、工具的整合,比如spring
8. 扩展功能的开发,比如通用上传文件,下载文件的方法实现,权限管理等
实际上,在这些计划中,有些都已经开发好了,比有使用连接池,几分钟就搞定了,引入jar包、配置文件,再修改两行代码,连接池就使用上了,主要是今天想看一下多表连接查询的性能,于是就把连接池配置了起来。连接5张表进行查询,查询10W次,花费时间15秒多一点,也就是1毫秒可以查询6次,当然我现在10W次的查询是一模一样的,而且数据库中也就几条数据,不能说明什么。通用下载方法(导出数据为Excel)也写好了,只是没有整合。
说了这么多,那这个框架,到底是咋样的呢?这里,就以我做测试用的Goods类来作为例子说明: