本以为JDBC里面的类和方法学的不错。但是在遇到一个,从内存数据库H2中把里面的数据都导入ORACLE数据库中。通过页面的单击按钮进行保存。在这个过程中犯了难。
原因如下,将H2中不确定的表导入oracle中对应的表。首先H2的表不确定导致了不可能每一个表都持久化,所以没有办法在程序里写一个POJO。就算有,H2中数据库表可能变化,如果一旦发生变化,那么POJO也要随之变化,导致程序的不稳定,所以在这个需求中必须要舍弃POJO,用最原始的JDBC的方式进行创建查找和插入。
在ResultSet中有个方法可以获取ResultSetMetaData
ResultSet rs;
ResultSetMetaData rsd = rs.getMetaData();//获取该数据。
在ResultSetMetaData有关于返回的ResultSet表信息以及列名字,以及列的类型。但是该类型由于不同数据库间不同所以导致要自己修改。获取了以上信息就可以拿来生成创建对应表和列,以及插入查找等动作了。
面向对象思想思考了太多,导致写这种过程化的程序的时候感觉很轻巧很便捷。