0

大家好,我正在开发简单的 jsp 文件,该文件从学生那里获取一些信息,如姓名、性别、技能等,我将其定向到 servlet 并给她提供数据库连接。但是当我运行代码时,它没有连接到数据库。有人可以帮帮我吗。这是我的 servlet 代码

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException 
{
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    Connection con=null;
    String url ="jdbc:mysql://localhost:3306/";
    String dbName="student_db";
    String driver = "com.mysql.jdbc.Driver";
    String username = "root";
    String password = "admin";


    String bttn_value = request.getParameter("submit");
    if(bttn_value.equalsIgnoreCase("submit"))
    {
        String name = request.getParameter("fname");

        String gender = request.getParameter("gender");
        String skill ="";
        System.out.println("2222222222");
        String skills[]= request.getParameterValues("skill");
        for(int i=0;i<skills.length;i++)
        {
            skill +=skills[i]+",";
        }
        String addr=request.getParameter("adname");
        String country = request.getParameter("country");
        Statement stmt;

    try
    {
        System.out.println("444444444444");
        Class.forName(driver).newInstance();
        System.out.println("333333333");
        con = DriverManager.getConnection(url + dbName, username,
                password);

        System.out.print("Connected to database");
        String query1= "insert into student values  name='"
             +name +"',gender='"+gender+ "',skills='"+skill + "',addname='" 
             +addr +"',country='" +country +"'";
        stmt =con.createStatement();
        stmt.executeUpdate(query1);
        out.print("<br>");
        response.sendRedirect("std.jsp");
        con.close();
        System.out.print("Disconnected from DB");

    }
    catch (Exception e)
    {
        out.println(e.getMessage());
        System.out.println("123456");

    }

这是我的控制台 在此处输入图像描述

和我得到的输出

在此处输入图像描述

预先感谢您,任何帮助都是可观的。

4

1 回答 1

1

代码不需要创建新实例来注册驱动程序。 Class.forName(driver);就足够了。

try
{
    System.out.println("444444444444");
    Class.forName(driver);
    System.out.println("333333333");
    con = DriverManager.getConnection(url + dbName, username,
            password);

    System.out.print("Connected to database");
    String query1= "insert into student values  name='"
         +name +"',gender='"+gender+ "',skills='"+skill + "',addname='" 
         +addr +"',country='" +country +"'";
    stmt =con.createStatement();
    stmt.executeUpdate(query1);
    out.print("<br>");
    response.sendRedirect("std.jsp");
    con.close();
    System.out.print("Disconnected from DB");

}

还要确保 MySql JDBC 驱动程序在您的类路径中。您可以下载 jar 或从 maven 中将其拉入。

马文

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.21</version>
</dependency>

直接下载

要导入 jar,首先下载 jar 文件并将其放在文件系统中,最好放在项目中。

  1. 在 Eclipse 中右键单击您的项目并选择属性,然后选择 Java Build Path.
  2. 接下来单击Libraries选项卡并单击 Add JARs(如果 .jar 在您的项目中)或 Add External Jars(如果 .jar 在外部)。
  3. 找到 jar 文件并单击确定。

在此处输入图像描述

要获得更多有用的调试信息,请尝试在您的 catch 中打印堆栈跟踪,一旦问题解决,就可以将其删除。我怀疑它会告诉你它找不到 mysql 驱动程序。

catch (Exception e)
{
    e.printStackTrace();
    out.println(e.getMessage());
    System.out.println("123456");

}

如果您的问题仍未解决,请将此堆栈跟踪与您的问题一起发布。

于 2012-12-22T08:22:20.793 回答