大家好,我正在开发简单的 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");
}
这是我的控制台
以及我得到的输出
预先感谢您,任何帮助都是值得赞赏的。
最佳答案
代码不需要创建新实例来注册驱动程序。 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 拉取它。
Maven
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
要导入 jar,首先下载 jar 文件并将其放置在您的文件系统中,最好放置在您的项目中。
- 在 Eclipse 中右键单击您的项目并选择属性,然后
Java 构建路径
。 - 接下来单击
Libraries
选项卡,然后单击“添加 JAR”(如果 .jar 位于 您的项目)或添加外部 Jars(如果 .jar 在外部)。 - 找到 jar 文件并单击“确定”。
要获得更有用的调试信息,请尝试在捕获中打印堆栈跟踪,一旦问题解决,就可以将其删除。我怀疑它会告诉你它找不到 mysql 驱动程序。
catch (Exception e)
{
e.printStackTrace();
out.println(e.getMessage());
System.out.println("123456");
}
如果您的问题仍未解决,请将此堆栈跟踪与您的问题一起发布。
关于mysql - servlet 数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001198/