2013-07-19 63 views
2

我寫了一個小shell腳本來調用一個java類,它調用mysql db並返回一些結果集。如何在shell腳本中加載mysql jar並連接到MYSQL數據庫

我的殼素文字:

CP="." 
CP=$CP:/home/lib/mysql-connector-java-5.1.12-bin.jar 
export CP 
java -cp $CP com.util.Hello 

和我的Java代碼如下,

Hello.Java:

public static void main(String[] str) { 
Connection conn = null; 
      try 
      { 
       String userName = "root"; 
       String password = "root"; 
       String url = "jdbc:mysql://localhost:3306/test"; 
       Class.forName ("com.mysql.jdbc.Driver").newInstance(); 
       conn = DriverManager.getConnection (url, userName, password); 
       System.out.println ("Database connection established"); 

       Statement s = conn.createStatement(); 
       s.executeQuery ("select * from users"); 
       ResultSet rs = s.getResultSet(); 
       int count = 0; 
       while (rs.next()) 
       {      
        System.out.println (count + " rows were retrieved"); 
        count++;  
       } 
        rs.close(); 
        s.close(); 

     } 
     catch (Exception e) { 
      System.err.println ("Cannot connect to database server") 
     } 

} 

當我執行從Linux服務器下面我列舉得到的shell腳本錯誤,

無法連接到我在java class中打印的數據庫服務器

System.err.println ("Cannot connect to database server") 

可以幫助我如何從shell腳本加載mysql jar嗎?

以及如何在運行我的java類時使用它?

如果我從war文件運行這個類它的工作。

在此先感謝。

+0

如果你沒有捕獲並拋棄異常,那麼告訴問題是什麼會容易得多。做這個。刪除try/catch塊,向main方法聲明中添加「throws Exception」,再次運行,然後發佈整個堆棧跟蹤(錯誤消息)。 – Keith

+0

同時刪除'newInstance()'部分。您只需要使用以下方法加載類:Class.forName(「com.mysql.jdbc.Driver」); – Aviram

回答

0

您的需要,但在的Java JRE文件夾/JRE/lib/ext目錄文件夾使用mysql-connector-java的5.1.12-bin.jar我認爲這是運行Java數據庫程序簡單的方法