JAVA

人生若只如初见,何事秋风悲画扇。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  50 随笔 :: 25 文章 :: 157 评论 :: 0 Trackbacks

我用以下代码用来测试数据库连接是否正常:

 try {
            logger.info("start to registerDriver...");
            DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
            logger.info(pros.getProperty("dbURL")+"--"+pros.getProperty("user")+"--"+ pros.getProperty("password"));
            con = DriverManager.getConnection(pros.getProperty("dbURL"), pros.getProperty("user"), pros.getProperty("password"));;
            if (con != null) {
                st = con.createStatement();
                rs = st.executeQuery("select 1 from dual");
                rs.next();
                if (rs.getInt(1) == 1) {
                    res = true;
                }
            }
        }

 

然后我做了一个java application桌面小应用程序(extends FrameView),在小应用程序中点击事件触发此段代码,如下:

private void dbTestMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                              
    //
从配置文件中读取连接相关属性
    String info = "
数据库连接异常,请确认配置文件是参数是否正确。";
    Properties per = new Properties();
    try {
        logger.info("start to test the db connection...");
        per.load(new FileInputStream(Content.configFile));
        logger.info("system have loaded the config files successfully");
      
        DbOper db = new DbOper();
        if (db.checkDBConnect(per)) {
            info = "
数据库连接正常";
        }
        logger.info("
数据连接测试结果:" + info);
    } catch (Exception e) {
        logger.error("Exception when test the DB connection, ",e);
    }

 

    if (aboutBox == null) {
        JFrame mainFrame = AnalyseExcelApp.getApplication().getMainFrame();
        aboutBox = new DBTestResultBox(mainFrame, info);
        aboutBox.setLocationRelativeTo(mainFrame);
    }
    AnalyseExcelApp.getApplication().show(aboutBox);
}
     

 

但在运行时,程序头也不回地直接死了,调试时发现程序是在

con = DriverManager.getConnection(pros.getProperty("dbURL"), pros.getProperty("user"), pros.getProperty("password"));;
这一行,不行了,也不报错,就直接在此行一直呆着,啥也不做...

 

另外还有二种情况,也让我比较奇怪:

1. 若同样调用此段测试代码,但不是在java application中,而是直接在一个普通的java类的main方法中,测可以测试通过。

2. 若数据库边的是本机的数据库,那么此段测试代码也可以通过,在java applicationjava类的main方法中均可以。

 

为什么,连接远程数据时,在java application中会无故down掉呢?

 

ps. 排除数据库地址,用户名,密码等错误;我的JDBC驱动是ojdbc14.jar,JDK 1.5

posted on 2008-07-15 16:28 Jkallen 阅读(1148) 评论(3)  编辑  收藏 所属分类: JEE学习

评论

# re: 咨询一个自认为很奇怪的问题(在java中获取数据库连接时相关) 2008-07-15 16:30 Jkallen
麻烦兄弟们,帮我顶下哈
因为在现场,急啊...  回复  更多评论
  

# re: 咨询一个自认为很奇怪的问题(在java中获取数据库连接时相关) 2009-05-30 13:26 墙头草
广告时间~~~~~~~~~


===================================================
TinyMCE使用/集成/设置/详解(1)
TinyMCE使用/集成/设置/详解(2)
在FCKeditor中添加右键菜单
FCKEditor自动过滤的解决办法
FCKeditor配置与扩展   回复  更多评论
  

# re: 咨询一个自认为很奇怪的问题(在java中获取数据库连接时相关) 2013-10-31 10:11 牛武子
@Jkallen
在现场 好苦逼哦  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: