2013-07-19 31 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数据库程序简单的方法