请教banq 大哥,在jdbc开发中,过多使用static方法会有什么问题?

07-03-30 cuibaoliang2004
              

我从学java开始,都很少用static来写 数据库的insert select update delete等操作。一直都是jsp+bean(这个bean在页面都要成为对象的)。

工作后发现,公司代码中几乎所有的数据库操作都是静态方法。

我很疑惑,抛开静态方法带来的修改不变和软件架构上的不足不谈。

过多的使用静态方法会不会带来性能上的问题?

有人说当static方法中使用static变量的话会引发多线程的资源互斥的问题。不过在数据库操作中,确实很少使用静态变量。

当然不可否认,这种方法在开发初期确实加快了开发速度,使得很多老的代码中都延续了这种用法。

当然我还在坚持,用dao来实现数据库中操作。

只是我困惑确从来没有得到过解答,人家的程序也跑的好好的,凭什么说人家的不好?

困惑,希望哪位大哥不吝赐教,为小弟解惑

[该贴被cuibaoliang2004于2007年03月30日 10:17修改过]

              

zuly
2007-04-02 13:31

使用static方法原因是因为某个类一定cache了一些expensive的对象!

基于JTA的全局事务可以解决这种问题!个人观点,使用static来简单包装Persistence是技术力量不够表现之一!

cuibaoliang2004
2007-04-02 19:37

>个人观点,使用static来简单包装Persistence是技术力量不够表现之一!

我也曾用过static方法写一些小工具类,比如时间转化,ip转化等等.

不过,技术力量不够倒也不是吧,他们都是写java三年多的啦.更可能是一种刚开始时的习惯,后来没有深究这个问题吧.

对用static 方法来做持久化,我最大的恐怖在于

1 一个表对应一个类,这个都是用static方法那么,如果出现变动,那么一改都要改好多

2 返回的时候,不是统一用pojo,或者装有pojo的Aarraylist List 等容器装载.

而是hashmap(大map 套小map,key就是字段名),或者其他什么的混合体.

当我来接手或者改的时候痛苦无比.而重新写又要时间,偏偏时间是我们缺乏的,或者这是这个状况形成的原因吧

leyen
2007-04-14 23:28

返回是map这样的结果真的很恐怖,你还没看见过更恐怖的,返回一堆string[]或者object[]哈哈,然后在往页面一一对应的赋值,吓人不,愁人啊

gltbeyond
2007-04-15 21:08

jdbc中使用static方法,如static getResults(); 如果过多的人同时访问,就会在方法调用时,会不会A调用此方法没有执行完,线程切换,B来执行此方法,造成数据混乱, 我是这样想的.

2Go 1 2 下一页