hiwzg 发表于 2013-1-30 02:05:49

Spring JDBC注解

最近在Review我自认为得意的数据基线生成代码的时候,发现了一些使用jdbc的问题,而这些问题都是在Rod JohnSon大牛在《expert one on one……》书中所阐述到的,实在是羞愧http://www.agoit.com/javascripts/fckeditor/editor/images/smiley/msn/sad_smile.gif。

       由于使用的是hsqldb数据库,并且数据库都是动态生成的,无法使用Hibernate这样的工具来进行ORM配置,需要使用JDBC来完成表结构的建立,数据的存储,查询等操作。
      
      这里运用的时候主要出现了几个问题:
   
[*]rs. ps用完了之后没有调用close()方法。   
[*]父类传输给子类的是Connection,不应该直接将Connection传输给子类,而是应该对该Connection进行封装,比如说做一个ConnectionWrapper,不提供Connection的close()方法,这样就能保证子类不会关掉该数据库的连接,或者把connection置为null了。   
[*]Template方法中提炼的Template模板方法的粒度还有问题。在子类中出现了很多对rs,ps的操作,而这些操作如果粒度划分合适的话,可以在父类中实现。子类不用操心JDBC的存储和查询操作。   
[*]Template所遵循的Workflow会有一些挂出点,每个子类可以根据需要选择遵循那个workflow。目前的做法是在Template中将可选的Workflow方法写好,然后子类去覆盖选择方法。如果更好的话,用Callback方法似乎更好一些。
        羞愧羞愧,昨天发生内存溢出问题,我第一想到的就是JDBC使用的问题。检查一下居然有这么多。Rod JohnSon关于JDBC的论述实在是经典,所设计的Spring JDBC框架有很多我可以学习的地方,希望吸取Spring JDBC Framework的精华,提高设计能力。
页: [1]
查看完整版本: Spring JDBC注解