Estou tendo um erro ao executar meu código, fiz algumas pesquisas e disseram que o problema era no conector do mysql, mas eu já coloquei o conector no meu projeto e continua dando o mesmo problema. O meu código deveria retornar uma lista de carros, mas só retorna colchetes.
Olá tem como mandar seu código e o erro sem ser em imagem e sim em texto mesmo . Voce pode inserir usando a ferramenta de inserir código do fórum
Classe DAO que faz a conexão com o banco de dados
package br.com.livro.domain;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class BaseDAO {
public BaseDAO() {
try {
// Necessário para utilizar o driver JDBC do MySQL
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// Erro de driver JDBC (adicione o driver .jar do MySQL em
// /WEB-INF/lib)
e.printStackTrace();
}
}
protected Connection getConnection() throws SQLException {
// URL de conexão com o banco de dados
String url = "jdbc:mysql://localhost/livro?useTimezone=true&serverTimezone=UTC&useSSL=false";
// Conecta utilizando a URL, usuário e senha.
Connection conn = DriverManager.getConnection(url, "livro", "livro123");
return conn;
}
public static void main(String[] args) throws SQLException {
BaseDAO db = new BaseDAO();
// Testa a conexão
Connection conn = db.getConnection();
System.out.println(conn);
}
}
Classe que lista os carros.
package br.com.livro.servlets;
import java.io.IOException;
import java.util.List;
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 br.com.livro.domain.*;
import br.com.livro.domain.CarroService;
@WebServlet("/carros/*")
public class CarroServlets extends HttpServlet {
private static final long serialVersionUID = 1L;
private CarroService carroService = new CarroService();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<Carro> carros = carroService.getCarros();
String carrosString = carros.toString();
resp.getWriter().write(carrosString);
}
}
Erro gerado:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at br.com.livro.domain.BaseDAO.<init>(BaseDAO.java:11)
at br.com.livro.domain.CarroDAO.<init>(CarroDAO.java:11)
at br.com.livro.domain.CarroService.<init>(CarroService.java:8)
at br.com.livro.servlets.CarroServlets.<init>(CarroServlets.java:18)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:151)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1042)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:761)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1591)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/livro?useTimezone=true&serverTimezone=UTC&useSSL=false
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at br.com.livro.domain.BaseDAO.getConnection(BaseDAO.java:23)
at br.com.livro.domain.CarroDAO.getCarros(CarroDAO.java:91)
at br.com.livro.domain.CarroService.getCarros(CarroService.java:13)
at br.com.livro.servlets.CarroServlets.doGet(CarroServlets.java:21)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1591)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
package br.com.livro.domain;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class CarroService {
private CarroDAO db = new CarroDAO();
// Lista todos os carros do banco de dados
public List<Carro> getCarros() {
try {
List<Carro> carros = db.getCarros();
return carros;
} catch (SQLException e) {
e.printStackTrace();
return new ArrayList<Carro>();
}
}
// Busca um carro pelo id
public Carro getCarro(Long id) {
try {
return db.getCarroById(id);
} catch (SQLException e) {
return null;
}
}
// Deleta o carro pelo id
public boolean delete(Long id) {
try {
return db.delete(id);
} catch (SQLException e) {
return false;
}
}
// Salva ou atualiza o carro
public boolean save(Carro carro) {
try {
db.save(carro);
return true;
} catch (SQLException e) {
return false;
}
}
// Busca o carro pelo nome
public List<Carro> findByName(String name) {
try {
return db.findByName(name);
} catch (SQLException e) {
return null;
}
}
public List<Carro> findByTipo(String tipo) {
try {
return db.findByTipo(tipo);
} catch (SQLException e) {
return null;
}
}
}
package br.com.livro.domain;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Carro implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String nome;
private String desc;
private String urlFoto;
private String urlVideo;
private String latitude;
private String longitude;
private String tipo;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getUrlFoto() {
return urlFoto;
}
public void setUrlFoto(String urlFoto) {
this.urlFoto = urlFoto;
}
public String getUrlVideo() {
return urlVideo;
}
public void setUrlVideo(String urlVideo) {
this.urlVideo = urlVideo;
}
public String getLatitude() {
return latitude;
}
public void setLatitude(String latitude) {
this.latitude = latitude;
}
public String getLongitude() {
return longitude;
}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
@Override
public String toString() {
return "Carro [id=" + id + ", nome=" + nome + ", desc=" + desc + ", urlFoto=" + urlFoto + ", urlVideo="
+ urlVideo + ", latitude=" + latitude + ", longitude=" + longitude + ", tipo=" + tipo + "]";
}
}
O erro está aqui . Ou seja o pacote dentro das pastas com.mysql.jdbc não foi encontrado
Bom eu não faço referência a classe do driver do jdbc pois não sei porque está dando este erro .Ai eu uso o Driver manager
ai eu uso só isso nos meus projetos.
Porque senão me engano isso atualizou onde a classe Driver da jdbc está