这是我的DAO:
package be.pxl.ticket.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.sqlException;
import java.util.Date;
import be.pxl.ticket.bean.TicketBean;
public class TicketDAO {
private String url;
private String user;
private String password;
public TicketDAO(String url, String user, String password) {
this.url = url;
this.user = user;
this.password = password;
}
public void setDriver(String driver)
throws ClassNotFoundException {
// Laad de driver
Class.forName(driver);
}
public TicketBean getTicketById(int id) {
if (id > 0) {
try (Connection con = getConnection();
PreparedStatement stmt = con.prepareStatement(
"SELECT id, state, location, description, title, timeCreated, submitBy, assignedTo from tickettable WHERE id=?")) {
stmt.setInt(1, id);
try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
TicketBean ticket = new TicketBean();
ticket.setId(id);
ticket.setState(rs.getString("state"));
ticket.setLocation(rs.getString("location"));
ticket.setDescription(rs.getString("description"));
ticket.setTitle(rs.getString("title"));
ticket.setTimeCreated(rs.getDate("timeCreated"));
ticket.setSubmitBy(rs.getString("submitBy"));
ticket.setAssignedTo(rs.getString("assignedTo"));
return ticket;
} else {
return null;// als ticket niet wordt gevonden
}
} catch (sqlException e) {
e.printstacktrace();
System.out.println("Failed to get Ticket");
return null;
}
} catch (sqlException e1) {
// Todo Auto-generated catch block
e1.printstacktrace();
System.out.println("Failed to get Ticket 2");
return null;
}
} else {
System.out.println("Id must be greater than 0");
return null;
}
}
private Connection getConnection() throws sqlException {
return DriverManager.getConnection(url, user, password);
}
public void setUrl(String url) {
this.url = url;
}
public void setUser(String user) {
this.user = user;
}
public void setPassword(String password) {
this.password = password;
}
}
这是我的servlet:
package be.pxl.ticket.servlet;
import java.io.IOException;
import javax.servlet.servletexception;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import be.pxl.ticket.bean.TicketBean;
import be.pxl.ticket.dao.TicketDAO;
import be.pxl.ticket.service.ITicketService;
import be.pxl.ticket.service.TicketService;
@WebServlet("/Ticket")
public class TicketServlet extends HttpServlet {
private ITicketService service;
public void init() throws servletexception{
super.init();
service = new TicketService();
service.setTicketDAO(new TicketDAO("MysqL.jdbc://localhost/ticketdb1","root",""));
}
public void doGet(HttpServletRequest req, HttpServletResponse res) {
int id = Integer.parseInt(req.getParameter("id"));
TicketBean ticket = service.getTicketById(id);
System.out.println(id);
req.setAttribute("tb", ticket);
try {
req.getRequestdispatcher("TicketView.jsp").forward(req, res);//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
} catch (servletexception e) {
System.out.println("servlet-exception :0");
e.printstacktrace();
} catch (IOException e) {
System.out.println("something wrong with IO");
e.printstacktrace();
}
System.out.println("triggered doGet");
}
public void doPost(HttpServletRequest req, HttpServletResponse res) {
System.out.println("triggered doPost");
}
}
这是我的服务:
package be.pxl.ticket.service;
import java.sql.sqlException;
import be.pxl.ticket.bean.TicketBean;
import be.pxl.ticket.dao.TicketDAO;
public class TicketService implements ITicketService {
private TicketDAO ticketDAO;
@Override
public TicketBean getTicketById(int id){
// Todo Auto-generated method stub
return ticketDAO.getTicketById(id);
}
public TicketDAO getTicketDAO() {
return ticketDAO;
}
public void setTicketDAO(TicketDAO ticketDAO) {
this.ticketDAO = ticketDAO;
}
}
错误消息是:
java.sql.sqlException: No suitable driver found for MysqL.jdbc://localhost/ticketdb1
Failed to get Ticket 2
1
at java.sql.DriverManager.getConnection(UnkNown Source)
at java.sql.DriverManager.getConnection(UnkNown Source)
at be.pxl.ticket.dao.TicketDAO.getConnection(TicketDAO.java:68)
at be.pxl.ticket.dao.TicketDAO.getTicketById(TicketDAO.java:31)
at be.pxl.ticket.service.TicketService.getTicketById(TicketService.java:14)
at be.pxl.ticket.servlet.TicketServlet.doGet(TicketServlet.java:28)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
at java.util.concurrent.ThreadPoolExecutor.runWorker(UnkNown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(UnkNown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(UnkNown Source)
triggered doGet
我不知道这里有什么问题.我的库中有MysqL.jar和jstl.jar
它与驱动程序说了些什么,但它的设置如此
解决方法:
连接到服务器时检查线路
service.setTicketDAO(new TicketDAO("MysqL.jdbc://localhost/ticketdb1","root",""));
它应该是
service.setTicketDAO(new TicketDAO("jdbc:MysqL://localhost:3306/ticketdb1","root",""));
Check the database url, I changed it.
这里3306是默认的MysqL端口号更改,如果你的情况不同.
您还必须使用加载MysqL连接器的驱动程序
Class.forName("com.MysqL.jdbc.Driver");
并需要包含mysql-connector.jar文件.
希望它会有所帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。