利用POI和JDBC校验数据库表结构

        随着系统开发的不断深入,数据库表也不断增加。目前我开发的一个小型内部管理系统,涉及50多张表。由于已经习惯了使用WORD文档记录表结构(可参见博客点击打开链接中第二节),但是多人开发,文档维护是个非常头疼的事情,而且不能保证在更改了数据库表结构后开发人员一定会及时更新文档。这就牵扯到,开发进入一定阶段,比如进入测试或者一个大的功能点开发结束时,需要及时更新和校验数据库文档。

        数据库表结构,属性少则十几个,多则几十个,用肉眼比对非常痛苦。这时我们可以借助POI读取文件的内容,再利用JDBC执行SQL语句,快速验证文档与数据库是否一致。大致思路如下。
        1.创建EXCEL文件,checkTableColumns.xls。将需要验证的表属性(英文名称,数据类型)两列粘贴到EXCEL文件的第一个Sheet中。并将Sheet重命名为该校验的数据库表名。
        2.利用POI读取EXCEL文件第一个Sheet,获取表名及属性数组。创建SQL查询语句组(每一条属性和数据类型创建一条语句)
           SELECT COUNT(*) FROM all_tab_columns WHERE table_name=‘tableName'  AND column_name='columnName' AND data_type='dataType'
        3.利用JDBC执行SQL语句组,并查询结果。如果该属性和数据类型能够在表中查到返回1,否则返回0。我们需要对累加SQl的执行结果。如果结果与表的数据总数相同,则表示文档与表结果一致,否则,我们需要查看哪一条属性与数据库不符。查询表的属性个数,可以使用如下SQL:
           SELECT COUNT(column_name) FROM user_col_comments WHERE table_name='tableName'

       按上面思路实现后,需要不断反复粘贴表属性到EXCEL中。其实,我们也可以完全再扩展开来,修改程序读取WORD文档本身,然后进行一次性检查,打印出不符合数据库的属性。
       

           

JY_BL检验病历 3 JY_BH检验病号 3 JY_MB0检验模板0 4 JY_SQD检验申请单 4 JY_MB1检验模板1 6 JY_LJJG类型1联机结果 6 JY_LJJG1类型2联机结果 6 JY_JYTB仪器图数据 7 JY_JYJG检验结果 7 JY_ZKJG质控结果 8 JY_ZK0检验质控0 8 JY_ZK1检验质控1 9 JY_XJJG检验细菌结果 9 JY_JYD检验调用单 10 JY_RYPBB检验人员排班 11 JY_JYD1检验费用明细 11 JY_REALTIMERESULT检验实时结果 12 JY_CHJG检验结果电子报告 12 JY_SQD2检验申请单2 12 JY_YQLJJK检验仪器联机接口 13 SJ_BSD0试剂报损单主 13 SJ_BSD1试剂报损单从 14 SJ_CGD0试剂采购单主 14 SJ_CGD1试剂采购单从 14 SJ_CKD0试剂出库单主 15 SJ_CKD1试剂出库单从 15 SJ_PDD0试剂盘点单主 15 SJ_PDD1试剂盘点单从 16 SJ_RKD0试剂入库单主 16 SJ_RKD1试剂入库单从 16 ZD_JYXZ检验须知字典 17 ZD_JYCS检验参数字典 17 ZD_JYBHLB检验病人类别 17 ZD_JYJGMS检验结果描述字典 17 ZD_JYXM0检验项目字典 18 ZD_JYXM2检验项目字典2 19 ZD_JYYB检验样本字典 19 ZD_JYYQ0检验仪器字典(主) 20 ZD_JYYQ1检验仪器字典(从) 20 ZD_JYYQPATTERN检验仪器型号 21 ZD_JYZB检验组别 22 ZD_JYZHXM0检验组合项目字典(主) 22 ZD_JYZHXM1检验组合项目字典(从) 22 ZD_JYZHXM2检验组合项目字典2 23 ZD_JYJSGS检验计算公式字典 23 ZD_JYXJ检验细菌字典 24 ZD_JYXJLX检验细菌类型 24 ZD_JYXJYM检验细菌药敏字典 24 ZD_JYXJMS检验细菌描述字典 24 ZD_JYXJPY检验细菌培养字典 25 ZD_JYYM检验药敏字典 25 ZD_JYJSXM仪器接收项目设置 25 ZD_JYJSZH仪器接收项目转换 26 ZD_JYNR检验内容 26 ZD_JYYBHFORMAT联机样本号格式定义 27 ZD_JYXM3常用检验结果定义 27 ZD_JYXJJLJSDWSZ细菌菌落记录单位定义 27 ZD_JYYQTSCS检验仪器特殊参数 27 ZD_JYYM1检验药敏字典从 28 ZD_JYTJDW检验体检单位定义 28 ZD_JYZKGZ0检验质控规则公式定义 28 ZD_JYZKGZ1检验常用质控规则定义 28 ZD_JYPBSZ检验排班定义 29 ZD_JYPBRY检验排班人员定义 29 ZD_JYPRINTSETUP检验打印格式定义 29 ZD_JYXJJSXM细菌接收项目定义 29 ZD_JYYJZH检验组合项目定义 30 ZD_JYMEIBIAOJSGS0酶标仪计算公式0 30 ZD_JYMEIBIAOJSGS1酶标仪计算公式1 30 ZD_JYMeiBiaoKHSZ酶标仪孔号设置 31 ZD_SJCS试剂厂商 31 ZD_SJGYS试剂供应商 31 ZD_SJHW试剂货位 31 ZD_SJRLBM试剂认领部门 31 ZD_SJXX试剂基本信息 32 ZD_SJZB试剂组别 32
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值