0

私はSQLが初めてで、netbeansとmysqlを使用しています。

データベースに対してログインの詳細をチェックするサーブレットを作成しようとしています。

いくつかのコード ラインを見つけましたが、データベースとやり取りしません。また、私が見つけたすべての例も機能しません。私は何を間違っていますか。

ここにコードの一部があります

package login;

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

/**
 *
 * @author john
 */
public class LoginServlet extends HttpServlet {



     protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        String userName = request.getParameter("userName");


        if (Validate.CheckUser(userName)) {
            RequestDispatcher rs = request.getRequestDispatcher("Welcome");
            rs.forward(request, 
            response          
            );
        }
else
{
          RequestDispatcher rs = request.getRequestDispatcher("index.html");
            rs.include(request ,   response);  
        }
}
}

package login;

import java.sql.*;

/**
 *
 * @author john
 */
public class Validate {

    public static boolean CheckUser(String userName) {
        boolean st = false;

        try {
            Class.forName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource");

            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mynewdatabase?zeroDateTimeBehavior=convertToNull", "root", "admin");

            PreparedStatement ps = con.prepareStatement("SELECT userName FROM userData where userName=?");
            ps.setString(1, userName);
            ResultSet rs = ps.executeQuery();
            st = rs.next();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return st;
    }
}

これをデータベースに接続するために必要な追加の手順は何ですか。最新バージョンの netbeans を使用しています。

私はすでに 5.1.26-bin.jar ファイルをライブラリに入れています。Mynewdatabase は問題なく実行されています (別のアプリケーションで以前に接続プールを使用して JSP に接続しました)。

ただし、このアプリケーションはデータベースに接続しません。ここでは接続プールを使用していません。

どんな助けでも素晴らしいでしょう。

4

3 に答える 3

2

データベースへの接続は、NetBeans やサーブレットとはまったく関係ありません。不必要な複雑さを追加する前に、データベース クラスを機能させることをお勧めします。

エラーを投稿していただけると助かります。「機能していません」は役に立ちません。

MySQL のドライバ クラスは正しくないようです。する必要がありますcom.mysql.jdbc.Driver

しかし、あなたのコードにはそれよりも多くの問題があります。

クエリにより、ユーザー名が返されます。パスワードがありませんか?役に立ちません。

ルート管理者パスワードを使用してデータベースにアクセスするアプリケーションはありません。アプリの ID を作成し、そのタスクを実行するのに十分なアクセス許可のみを付与します。

メソッドでリソースを閉じません。これを実行すると問題が発生します。

まったく機能するようになったら戻ってきてください。

于 2013-09-30T09:34:40.483 に答える
0

コードは次のようになります。

 Class.forName("com.mysql.jdbc.Driver");

 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mynewdatabase", "root", "admin");

また、 mysql ドライバーの jar ファイルをクラスパスに追加する必要があります。最初に、データベース urlの単純なパラメーターを使用してデータベースに接続してみてください。準備が整ったら、複雑なパラメーターに移動してください。

于 2013-09-30T14:12:15.193 に答える
0

データベースから取得するには、この方法を使用する必要があります

while(rs.next())
{
String coulm1=rs.getString(1);
String column2=rs.getString(2);
}
于 2013-09-30T09:34:08.223 に答える