0

こんにちは皆さん、名前、性別、スキルなどの学生から情報を取得する単純なjspファイルを開発しています。それをサーブレットに送信し、データベース接続を指定しています.しかし、コードを実行すると、データベースに接続されません. 誰かが私を助けてくれませんか。これが私のサーブレットコードです

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException 
{
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    Connection con=null;
    String url ="jdbc:mysql://localhost:3306/";
    String dbName="student_db";
    String driver = "com.mysql.jdbc.Driver";
    String username = "root";
    String password = "admin";


    String bttn_value = request.getParameter("submit");
    if(bttn_value.equalsIgnoreCase("submit"))
    {
        String name = request.getParameter("fname");

        String gender = request.getParameter("gender");
        String skill ="";
        System.out.println("2222222222");
        String skills[]= request.getParameterValues("skill");
        for(int i=0;i<skills.length;i++)
        {
            skill +=skills[i]+",";
        }
        String addr=request.getParameter("adname");
        String country = request.getParameter("country");
        Statement stmt;

    try
    {
        System.out.println("444444444444");
        Class.forName(driver).newInstance();
        System.out.println("333333333");
        con = DriverManager.getConnection(url + dbName, username,
                password);

        System.out.print("Connected to database");
        String query1= "insert into student values  name='"
             +name +"',gender='"+gender+ "',skills='"+skill + "',addname='" 
             +addr +"',country='" +country +"'";
        stmt =con.createStatement();
        stmt.executeUpdate(query1);
        out.print("<br>");
        response.sendRedirect("std.jsp");
        con.close();
        System.out.print("Disconnected from DB");

    }
    catch (Exception e)
    {
        out.println(e.getMessage());
        System.out.println("123456");

    }

ここに私のコンソールがあります ここに画像の説明を入力

そして、私が得ている出力

ここに画像の説明を入力

事前に感謝します。

4

1 に答える 1

1

ドライバーを登録するためにコードで新しいインスタンスを作成する必要はありません。 Class.forName(driver);十分であろう。

try
{
    System.out.println("444444444444");
    Class.forName(driver);
    System.out.println("333333333");
    con = DriverManager.getConnection(url + dbName, username,
            password);

    System.out.print("Connected to database");
    String query1= "insert into student values  name='"
         +name +"',gender='"+gender+ "',skills='"+skill + "',addname='" 
         +addr +"',country='" +country +"'";
    stmt =con.createStatement();
    stmt.executeUpdate(query1);
    out.print("<br>");
    response.sendRedirect("std.jsp");
    con.close();
    System.out.print("Disconnected from DB");

}

また、MySql JDBC ドライバーがクラスパスにあることを確認してください。jar をダウンロードするか、maven からプルすることができます。

メイヴン

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.21</version>
</dependency>

直接ダウンロード

jar をインポートするには、最初に jar ファイルをダウンロードし、ファイル システム内 (できればプロジェクト内) に配置します。

  1. Eclipse でプロジェクトを右クリックし、プロパティを選択してから Java Build Path.
  2. 次にLibrariesタブをクリックし、Add JARs (.jar がプロジェクト内にある場合) または Add External Jars (.jar が外部にある場合) をクリックします。
  3. jar ファイルを見つけて、[OK] をクリックします。

ここに画像の説明を入力

より有用なデバッグ情報を取得するには、キャッチでスタック トレースを出力してみてください。これは、問題が解決されたら削除できます。mysql ドライバーが見つからないというメッセージが表示されると思います。

catch (Exception e)
{
    e.printStackTrace();
    out.println(e.getMessage());
    System.out.println("123456");

}

それでも問題が解決しない場合は、このスタック トレースを質問とともに投稿してください。

于 2012-12-22T08:22:20.793 に答える