之前一直用 ibator 或者 abator自动生成工具插件。
当然功能确定很强大,生成后需要改动的地方还有一些,简单看了下源码,支持比较广,源码比较多,修改的代价也比较大,一时冲动,自已写了个。
2011-06-14 至 2011-06-22 ,终于完成了!!!!
目前支持的功能比较局限:
(1) 支持 版本为 ibatis2.32.715 + spring2.56 组合。
(2) 支持 mysql数据库。
(3) 只支持单表。
比之ibator好的地方(个人感觉)
(1) 能够根据 表结构中表名 ,字段名的注释,自动生成注释。
(2) 没有那么多无用的代码 和 注释。
(3) 可以生成 service层,service层接口。
(4) 可以按需指定 文件对应的包名。
(4) 可以灵活地 进行按照公司自已需要地进行灵活扩展,如添加分页!
(5) 对我个人来说,更容易维护。
当然也实现的配置化:
数据库连接 配置:(这块项目开发中基本不用怎么改动)
driverClassName = com.mysql.jdbc.Driver url = jdbc:mysql://localhost:3306/test?zeroDateTimeBehavior=convertToNull username=testuser password=testuser
生成文件依赖的配置: (这块根据需要进行改动)
#tablename=exam_user_paper #tablename=exam_user_paper_quest tablename=exam_user_paper_record projecthome=E:/workspace/autogcode/ author=zhaoguoli domain_package_path=cn.xxt.domain ibatis_config_path=cn.xxt.dao.impl dao_package_path=cn.xxt.dao daoimpl_package_path=cn.xxt.dao.impl service_package_path=cn.xxt.service serviceimpl_package_path=cn.xxt.service.impl
生成的效果:(经过单元测试,一切正常)!
实现思路:
(1) 数据库 读取 表结构信息(元数据)。
(2) 控制格式 生成 文件。
(3) 数据库 类型 同 java类型的 转换。
(4) 确定各个文档生成的规则,按照规则 写 转换的工具类。
(5) 进行单元测试。
最核心的最是确定适应自已的规则。