1. 程式人生 > >Linux下jdbc連線mysql

Linux下jdbc連線mysql

    經過一天時間的摸索終於搞定了java伺服器小程式連線mysql的問題。當然過程是鬱悶的,還好最後做出來了。完成過程中參閱了網上一位朋友的經驗,在此表示一下感謝。下面簡單地總結一下:

一,安裝jdbc驅動
   探索並下載jdbc驅動,解壓出一個資料夾。一般裡面有它的原始碼和打包檔案。直接把那個jar檔案copy到你的jdk下的lib中,並修改一下classpath,把這個jar檔案包括到classpath中。假如那個jar檔案是jdbc.jar,那你的classpath中新增一下:
    $JAVA_HOME/lib/jdbc.jar

二,把上面的那個jar檔案放到tomcat中的your/tomcat/common/lib和your/tomcat/share/lib下。

三,登出,使classpath有效。

四,按照上面的設定一般來說已經是可以用的了。可以先用一個程式測試一下。
  1。先開啟MYSQL--./musql.server start
  2。一般你剛解開的jdbc驅動中都有幾個測試程式,它們會用test資料據進行測試。你只要執行一下那個class檔案就可以了。
  3。現在開始你的伺服器小程式測試。先執行tomcat--./startup.sh
  4。編寫一個java程式:程式碼如下:
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class MySqlNamesTest extends HttpServlet
{
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>MySql Test</title>");
        out.println("</head>");
        out.println("<h1>A list of names from a <br>MySql table</H1>");
        out.println("<table border = /"1/" cellpadding=/"5/""
            + " cellspacing=/"0/" width=/"300/">");
        out.println("<tr><td><b>First Name</b></td><td><b>"
            +"Last Name</b></td></tr>");

        String connectionURL = "jdbc:mysql://localhost:3306/LaxsongTest";
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;
        try{
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            connection = DriverManager.getConnection(connectionURL,"root","");
            statement = connection.createStatement();
            resultSet = statement.executeQuery("select FirstName,LastName from Name "+"order by lastName,FirstName");
        while(resultSet.next()){
            out.println(
            "<tr><td>"
            + resultSet.getString("FirstName")
            +"</td><td>"
            + resultSet.getString("lastName")
            + "</td></tr>");
        }
        if(resultSet!=null){
            resultSet.close();
        }
        }catch(ClassNotFoundException e){
            System.out.println(
            "couldn`t find the mm "+"database driver:"
            + e.getMessage());
        }catch(InstantiationException e){
            System.err.println(e.getMessage());
        }catch(IllegalAccessException e){
            System.err.println(e.getMessage());
        }catch(SQLException e){
            System.err.println("SQL Problem :" +e.getMessage());
            System.err.println("SQL State :"+e.getSQLState());
            System.err.println("Vendor Error: "+e.getErrorCode());
        }finally{
            try{
                if(connection !=null){
                    connection.close();
                }
            }catch(SQLException e){
                System.err.println(e.getMessage());
            }
        }
        out.println("<body>");
        out.println("</body>");
        out.println("</html>");
    }

    /*public static void main(String args[])
    {
        //HttpServletRequest request;HttpServletResponse response;
        MySqlNamesTest m= new MySqlNamesTest();
        //m.doGet(request,response);
    }*/
}
  5。編譯一下生成一個class檔案。把這個class檔案放到你的INT-WEB下的classes中,並配置一下web.xml檔案。
  6。開啟瀏覽器,輸入正確的地址來檢測。
  7。如果得不到想要的結果,那麼可以開啟catalina.out來看看什麼地方出了問題。一般這裡的提示足夠你找到錯誤所在。
  8。如果修改一原程式,並新編譯生成了class檔案,那麼替換掉原來的class檔案後,請重新執行tomcat,否則你得不到新的結果。