JAVA

          人生若只如初見,何事秋風悲畫扇。

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            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),在小應用程序中點擊事件觸發(fā)此段代碼,如下:

          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);
          }
               

           

          但在運行時,程序頭也不回地直接死了,調試時發(fā)現(xiàn)程序是在

          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 閱讀(1166) 評論(3)  編輯  收藏 所屬分類: JEE學習

          評論

          # re: 咨詢一個自認為很奇怪的問題(在java中獲取數據庫連接時相關) 2008-07-15 16:30 Jkallen
          麻煩兄弟們,幫我頂下哈
          因為在現(xiàn)場,急啊...  回復  更多評論
            

          # re: 咨詢一個自認為很奇怪的問題(在java中獲取數據庫連接時相關) 2009-05-30 13:26 墻頭草
          廣告時間~~~~~~~~~


          ===================================================
          TinyMCE使用/集成/設置/詳解(1)
          TinyMCE使用/集成/設置/詳解(2)
          在FCKeditor中添加右鍵菜單
          FCKEditor自動過濾的解決辦法
          FCKeditor配置與擴展   回復  更多評論
            

          # re: 咨詢一個自認為很奇怪的問題(在java中獲取數據庫連接時相關) 2013-10-31 10:11 牛武子
          @Jkallen
          在現(xiàn)場 好苦逼哦  回復  更多評論
            

          主站蜘蛛池模板: 双鸭山市| 林口县| 门头沟区| 温州市| 乌什县| 临沧市| 深圳市| 汾西县| 江达县| 临沭县| 杂多县| 同江市| 沙坪坝区| 犍为县| 富民县| 长宁县| 渝北区| 万年县| 柘荣县| 涞水县| 永济市| 庆城县| 石阡县| 广水市| 大田县| 体育| 始兴县| 潼关县| 曲松县| 衡阳县| 柳河县| 定西市| 晋城| 茶陵县| 肇庆市| 葵青区| 丰镇市| 江油市| 昭通市| 柳江县| 泾阳县|