大家好我正在开发简单的jsp文件,该文件从学生那里获取一些信息,如姓名,性别,技能等,我将它指向servlet并给她数据库连接。但是当我运行代码时它没有连接到db。有人可以帮助我。这是我的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");
}
这是我的控制台
和我得到的输出
提前感谢您,任何帮助都很明显。
答案 0 :(得分: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中取出它。
<强>的Maven 强>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
要导入jar,首先下载jar文件并将其放在文件系统中,最好是在项目中。
Java Build Path
。Libraries
选项卡,然后单击添加JAR(如果.jar位于
你的项目)或添加外部罐子(如果.jar在外面)。
要获得更有用的调试信息,请尝试在catch中打印stacktrace,一旦问题得到解决,就可以删除它。我怀疑它会告诉你它无法找到mysql驱动程序。
catch (Exception e)
{
e.printStackTrace();
out.println(e.getMessage());
System.out.println("123456");
}
如果您的问题仍未解决,请发布此问题的堆栈跟踪。