繁体   English   中英

servlet netbeans mysql连接

[英]servlet netbeans mysql connect

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

我正在尝试创建一个servlet来检查数据库的登录详细信息。

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

这是一些代码

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

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

任何帮助都会很棒。

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

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

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

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

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

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

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

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

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

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

代码应该是这样的:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM