java.sql.SQLException: No suitable driver found for jdbc:mysql:/localhost/XXX?还是没有解决

本文介绍了一个用于添加学生信息的Servlet实现。该Servlet通过POST请求接收学生数据,并将其插入到MySQL数据库中。文章详细展示了如何使用Java连接数据库并执行SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package servlet;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;


public class Insert extends HttpServlet {
/**
* Constructor of the object.
*/
public Insert() {
super();
}


/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}


/**
* The doGet method of the servlet. <br>

* This method is called when a form has its tag value method equals to get.

* @param request
*            the request send by the client to the server
* @param response
*            the response send by the server to the client
* @throws ServletException
*             if an error occurred
* @throws IOException
*             if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println("  <BODY>");
out.print("    This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println("  </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}


/**
* The doPost method of the servlet. <br>

* This method is called when a form has its tag value method equals to
* post.

* @param request
*            the request send by the client to the server
* @param response
*            the response send by the server to the client
* @throws ServletException
*             if an error occurred
* @throws IOException
*             if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
boolean flag;


try {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("驱动包加载失败。");
System.exit(0);
}
// 建立与数据库的连接
Connection con=DriverManager.getConnection("jdbc:mysql:/localhost/org.lyy"
,"root","123456");
// 发送语句
Statement stmt = con.createStatement();
request.setCharacterEncoding("UTF-8");
String SID = request.getParameter("SID");
String SName = request.getParameter("SName");
String SSex = request.getParameter("SSex");
String SNum = request.getParameter("SNum");
String SPhone = request.getParameter("SPhone");
String SSubject = request.getParameter("SSubject");
String SCollege = request.getParameter("SCollege");
String PlaceOfBirth = request.getParameter("PlaceOfBirth");
String SPhoto = request.getParameter("SPhoto");
String sql = "select * from Student where SID='" + SID + "'";
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
flag = false;
} else {
sql = "INSERT INTO Student(SID,SName,SSex,SNum ,SPhone,SSubject,SCollege,PlaceOfBirth,SPhoto)  "
+ "VALUES ('"
+ SID
+ "','"
+ SName
+ "','"
+ SSex
+ "','"
+ SNum
+ "','"
+ SPhone
+ "','"
+ SSubject
+ "','"
+ SCollege
+ "','"
+ PlaceOfBirth
+ "','"
+ SPhoto + "')";
// 更新数据库,每一次对数据库进行操作后,都记得更新数据库;
stmt.executeUpdate(sql);
flag = true;
}
response.setContentType("text/html;charset=UTF-8"); // 定义页面显示类型与编码方式
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("  <HEAD><TITLE>添加成功</TITLE>");
out.println("</HEAD>");
out.println("  <BODY>");
out.println("<h4>");
if (flag == true) {
out.println("添加成功,可以继续添加... ...");
String trans = "<meta http-equiv=\"Refresh\" content=\"2;url=../InsertStudent.jsp\">";
out.println(trans);
} else {
out.println("添加的用户已经存在,请重新添加... ...");
String trans = "<meta http-equiv=\"Refresh\" content=\"2;url=../InsertStudent.jsp\">";
out.println(trans);
}
out.println("</h4>");
out.println("  </BODY>");
out.println("</HTML>");
out.flush();
out.close();
// 记住要close掉创建的对象和顺序
stmt.close();
con.close();


} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


/**
* Initialization of the servlet. <br>

* @throws ServletException
*             if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}


}


网上貌似没有正确的

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/electric_data?useSSL=false&characterEncoding=UTF-8 at java.sql.DriverManager.getConnection(DriverManager.java:689) at java.sql.DriverManager.getConnection(DriverManager.java:247) at com.electric.web.servlet.UploadStaticServlet.doPost(UploadStaticServlet.java:90) at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at com.electric.filter.CrosFilter.doFilter(CrosFilter.java:31) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:656) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) at org.apache.coyote.Abstract
最新发布
06-12
下午7:18:05: 正在执行 ':StudentManagementSystem.main()'… > Task :compileJava > Task :processResources UP-TO-DATE > Task :classes > Task :StudentManagementSystem.main() java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=gbk at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:706) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:229) at StudentManagementSystem.initDatabase(StudentManagementSystem.java:39) at StudentManagementSystem.<init>(StudentManagementSystem.java:24) at StudentManagementSystem$5.run(StudentManagementSystem.java:299) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.createStatement()" because "this.conn" is null at StudentManagementSystem.loadStudentData(StudentManagementSystem.java:267) at StudentManagementSystem.<init>(StudentManagementSystem.java:30) at StudentManagementSystem$5.run(StudentManagementSystem.java:299) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
06-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值