当前位置: 代码迷 >> J2SE >> JAVA中类方法的执行顺序,该怎么解决
  详细解决方案

JAVA中类方法的执行顺序,该怎么解决

热度:16   发布时间:2016-04-23 20:35:46.0
JAVA中类方法的执行顺序
JAVA初学者,很多地方不了解。
要做一个与数据库交互的系统,涉及到一些数据的增删改查工作,于是我建了个DAO.java

在这个里面,我把所有的功能方法(增删改查)都改成了静态方法。
DAO类里的成员变量我也都设成了静态,比如
static Statement stmt = null;
static ResultSet rs = null;
static ResultSetMetaData rsmd = null;


现在我在主界面的java里就可以通过DAO.fun()的方式来实现各种功能了,但是我发现DAO的静态方法中有一些可以封装的地方。
就是这些DAO的静态方法都要链接数据库,也就是都包含了这段代码
Connection con = ConnectToSqlServer.createConnection(); // 获得Connection对象
stmt = con.createStatement();


我想封装它,但是现在问题来了,由于我在主界面的java里是通过DAO.fun()这样通过类名来调用静态方法的方式,所以不知道有没有什么方法能使得以上那段代码能在“通过类名调用其静态方法”这个事件发生之前就执行一次(否则这些静态方法执行不了,因为没连接数据库)。

自己有想过一个解决方法:就是把以上那一段放在DAO的默认构造方法里,但这样的话,在主界面java中就必须要先实例化一个DAO对象,再去调用这些功能方法了。
不知道有没有别的实现方法呢?
------解决方案--------------------
将 Connection con = 定义为静态变量,然后在static块中去执行,每个class加载时都会先执行static块,这样就获得了con数据库连接。
不过
static Statement stmt = null;
static ResultSet rs = null;
static ResultSetMetaData rsmd = null;
这个方式不推荐,如果多线程的话,那么rs,stmt都会相互影响的,会出问题的。
  相关解决方案