【问题标题】:servlet netbeans mysql connectservlet netbeans mysql 连接
【发布时间】:2013-10-06 02:45:44
【问题描述】:

我是 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 连接池进行了连接)。

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

任何帮助都会很棒。

【问题讨论】:

  • 你的问题到底是什么?
  • 确保您提供正确的驱动程序名称和数据库名称。

标签: java mysql servlets netbeans


【解决方案1】:

连接到数据库与 NetBeans 或 servlet 没有任何关系。我建议您在添加不必要的复杂性之前让数据库类正常工作。

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

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

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

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

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

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

如果你让它正常工作就回来。

【讨论】:

  • 应用程序不应使用 root 管理员密码访问数据库。为应用程序创建一个 ID,并且只授予足够的权限来执行其任务。我该怎么做呢?我做过的netBeans教程都是用root作为访问数据库的用户。
  • 停止过度依赖 NetBeans 和糟糕的教程:dev.mysql.com/doc/refman/5.0/en/create-user.html
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    代码应该是这样的:

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

    您还需要将 mysql 驱动程序 jar 文件添加到类路径中。先尝试用数据库url中的简单参数连接数据库,等你准备好再去复杂的!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      相关资源
      最近更新 更多