在JSP中的JavaBean设置静态属性和方法有没有意义?

在BS结构应用开发中,我们都会碰到联接数据库的问题。一般的作法是把
数据库联接放在一个对象中(封装)。
比如这个类名叫DbConn,它有一个最重要的方法
public Connection getConn(),
还有一些属性描述了JDBC数据库联接,
比如String jndiName,String jdbcDriver,String jdbcURL,
String user,String password,
相信大家都可以轻松理解。

现在在每个页面里生成DbConn的实例,对象名为objConn,然后
调用它的getConn实例方法,以此操作数据库。

我现在的想法是把getConn改成public static Connection getConn();
这样在页面中就无需生成对象。好象很合理。但我又想到,每次HTTP请求都要load一次DbConn类,getConn()是不是静态的好象对性能没有什么提高。而且每次请求不会利用原有DbConn,不会产生单子模式的应用。


不知道大家对这个问题是怎么看的,我的初步结论是这个改动似乎是无关
紧要的。

我现在想了一下,还是有意义的。
假设虚拟机load一个CLASS所占用的内存等于实例化一个Object所需要的内存,采用static 方法和属性会节省一半的内存。如果访问量大的话,这是
很可观的。

你看看jive就是用的public static Connection getConn();

但是访问量大时,就只能通过一个连接去连接数据库,你想想是多么可怕的事情?
连接池是必须的。

怎么可能只有一个连接?
只不过方法是 static 的,并不表示 Connection 只有一个啊

> 但是访问量大时,就只能通过一个连接去连接数据库
是否与静态方法只能访问静态变量有关?

static method

singleton model


memory pool


这三个概念是独立的,但是他们的组合会产生不同的效果。


在数据库连接这个主题上,
只要用1,3就可以了。
2可以不用。

我觉得iceant is right.

mark