0

我是 sql 新手,我正在使用 netbeans 和 mysql。

我正在尝试制作一个 servlet,它将根据数据库检查登录详细信息。

我发现了一些在线代码,但它不与数据库交互。我发现的每个例子也不起作用。我究竟做错了什么。

这是一些代码

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 或 servlet 没有任何关系。我建议您在添加不必要的复杂性之前让数据库类正常工作。

如果您发布错误会有所帮助。“不工作”没有帮助。

您的 MySQL 驱动程序类对我来说看起来不正确。应该是com.mysql.jdbc.Driver

但是您的代码还有很多错误。

您的查询会返回一个用户名。没有密码?没用。

任何应用程序都不应使用 root 管理员密码访问数据库。为应用程序创建一个 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 回答