servlet netbeans mysql连接

时间:2013-09-30 09:30:39

标签: java mysql servlets netbeans

我是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);  
        }
}
}

AND

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)。

此应用程序不会连接到数据库。我这里没有使用连接池。

任何帮助都会很棒。

3 个答案:

答案 0 :(得分:2)

连接到数据库与NetBeans或servlet完全没有关系。我建议你在添加不必要的复杂功能之前让数据库类正常工作。

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

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

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

您的查询带回了用户名。没有密码?没用。

没有应用程序应使用root管理员密码访问数据库。为应用程序创建一个ID,并且只有GRANT足够的权限才能执行其任务。

您不会关闭方法中的资源。如果你让它运行,你会遇到问题。

如果你让它完全起作用,请回来。

答案 1 :(得分:0)

要从数据库中检索,您应该使用这种方式

while(rs.next())
{
String coulm1=rs.getString(1);
String column2=rs.getString(2);
}

答案 2 :(得分:0)

代码应该是这样的:

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

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

您还需要将 mysql驱动程序 jar文件添加到类路径中。首先尝试使用数据库URL 中的简单参数连接数据库,然后在完全准备好后转移到复杂的数据库!