Banco de dados MySQL erro ao conectar[Resolvido]

Oque pode ser…?

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/Program Files/MySQL/MySQL Workbench 6.3 CE/data/chamadosrl", "root", "admin");

Cara tenta algo como:

String URL = "jdbc:mysql://localhost:3306/chamadosrl";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(URL, "root", "admin");

Não resolveu, a mensagem de erro é esta:

Problema no Banco de Dados 1: No suitable driver found for
jdbc:mysql:localhost:3306/chamadosrl

O código:

try{
            Class.forName("com.mysql.jdbc.Driver");
            
            String SQL = "INSERT INTO chamdos (id, titulo, conteudo) VALUES(1";
            SQL += " '"+ titulo + "', '"+ conteudo + "')";
            
            
            try {
                
                
                String URL = "jdbc:mysql:localhost:3306/chamadosrl";
                
                Connection conn = DriverManager.getConnection(URL, "root", "admin");
                
                Statement stm = conn.createStatement();

                stm.execute(SQL);
                stm.close();
                conn.close();
                
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                //e.printStackTrace();
                out.println("Problema no Banco de Dados 1" + e.getMessage());
            }
            
            }catch(ClassNotFoundException ex){
                out.println("Problema no Banco de Dados 2");
                
            }
        

    
    
    
        }

Você esta rodando no tomcat? outro servidor? rondando com o main?

você adicionou a jar do mysql no projeto? http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.35/mysql-connector-java-5.1.35.jar

se você estiver rodando no tomcat, você vai precisar da linha
Class.forName("com.mysql.jdbc.Driver");

Estou rodando o tomcat.

Adicionei na pasta WEB-INF - Lib.

E esta linha está no projeto.

## Coloque o catch mais dois comandos:

} catch (SQLException e) {
                    // TODO Auto-generated catch block
                    //e.printStackTrace();
                    out.println("Problema no Banco de Dados 1: " + e.getMessage());
                    out.println("");
                    out.println("SQLState: " + e.getSQLState());
                    out.println("");
                    out.println("VendorError: " + e.getErrorCode());

Erro…

Problema no Banco de Dados 1: No suitable driver found for
jdbc:mysql:localhost:3306/chamadosrl SQLState: 08001 VendorError: 0

tem que estar nessa ordem:

String URL = "jdbc:mysql://localhost:3306/chamadosrl";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(URL, "root", "admin");

Não foi…

try{
String SQL = “INSERT INTO chamdos (id, titulo, conteudo) VALUES(1”;
SQL += " ‘"+ titulo + "’, ‘"+ conteudo + "’)";
try {

                String URL = "jdbc:mysql:localhost:3306/chamadosrl";
                Class.forName("com.mysql.jdbc.Driver");                
                Connection conn = DriverManager.getConnection(URL, "root", "admin");
                Statement stm = conn.createStatement();
                stm.execute(SQL);
                stm.close();
                conn.close();
                
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                //e.printStackTrace();
                out.println("Problema no Banco de Dados 1: " + e.getMessage());
                out.println("");
                out.println("SQLState: " + e.getSQLState());
                out.println("");
                out.println("VendorError: " + e.getErrorCode());
            }
            
            }catch(ClassNotFoundException ex){
                out.println("O driver ODBC não foi encontrado 2: ");
                
            }
        
        }

Desde que eu comecei a responder no guj, isso em 2010, esse erro já assombrava o povo:
A mensagem “No suitable driver found for” se refere ao fato de que a string que define a conexão estar errada, veja como está a tua:
jdbc:mysql:localhost:3306/chamadosrl
Note que, após o jdbc:mysql: não existe //
O correto deveria ser jdbc:mysql://localhost:3306/chamadosrl como o @victormenegusso sugeriu.

Pessoal eu refiz o meu código e funcionou:…

PrintWriter out = response.getWriter();

     String titulo = request.getParameter("txtTitulo");
        String conteudo = request.getParameter("txtConteudo");
        
        if (titulo.trim().length() < 4){
            out.println("Preencha o campo título");
        }else if (conteudo.trim().length() < 4){
            out.println("Preencha o campo conteudo");
        }else{
            
            try{
                Class.forName("com.mysql.jdbc.Driver");
                System.out.println("Driver encontrado!");
            }catch(ClassNotFoundException e){
                System.out.println("Driver não encontrado!" + e);
            }
            
            String URL = "jdbc:mysql://localhost:3306/chamadosrl";
            String user="root";
            String password="admin";
            
            Connection con=null;
            
            
             try {
                con = DriverManager.getConnection(URL, user, password);
                System.out.println("Conecção com sucesso!");
                
                String SQL = "INSERT INTO chamados (id, titulo, conteudo) VALUES(2 , '"+ titulo + "', '"+ conteudo + "')";
                
                Connection conn = DriverManager.getConnection(URL, user, password);
                Statement stm = conn.createStatement();
                stm.execute(SQL);
                stm.close();
                conn.close();
                out.println("Dados inseridos com sucesso!");
                
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                out.println("Problema no Banco de Dados : " + e.getMessage());
                out.println("");
                out.println("SQLState: " + e.getSQLState());
                out.println("");
                out.println("VendorError: " + e.getErrorCode());
            }

Aproveitando, estou com quase o mesmo problema… Mas pra mim aparece um Warning no projeto… com a mensagem:

Classpath Dependency Validor Message
Classpath entry /ProjetoWeb/src/main/webapp/WEB-INF/ojdbc6.jar will not be exported or published. Runtime ClassNotFoundExceptions may result.

as vezes você pode até melhorar, colocando usuario e senha como uma variavel, caso queira alterar usuario ficaria mais facil, não teria que ir diretamente na conexão. algo do tipo:

String URL = "jdbc:mysql://localhost:3306/chamadosrl";
Class.forName("com.mysql.jdbc.Driver");
String usuario = "root";
String senha = "admin";
Connection con = DriverManager.getConnection(URL, usuario, senha);

O alerta se refere à possibilidade de não conseguir exportar este jar com o teu projeto, quando você gerar o executável (jar/war).
A partir disto, você deve tentar entender como está utilizando esta biblioteca.
Sugiro estudar e aplicar o maven ou algo similar, para evitar estes problemas.

Eu prefiro a abordagem de ler de um arquivo de propriedades…

Atualmente criei um projeto Maven combinado com o JBoss, Oracle e o Java…

Esse warning não me atrapalha para executar o projeto… O problema mesmo é que ao iniciar um comando na página que criei (de gravar nome e email de um usuário), aparece o seguinte erro no logo do JBoss:

11:53:32,102 ERROR [stderr] (http--127.0.0.1-8088-1) java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@//localhost:1521/xe
11:53:32,106 ERROR [stderr] (http--127.0.0.1-8088-1)    at java.sql.DriverManager.getConnection(DriverManager.java:596)
11:53:32,107 ERROR [stderr] (http--127.0.0.1-8088-1)    at java.sql.DriverManager.getConnection(DriverManager.java:215)
11:53:32,108 ERROR [stderr] (http--127.0.0.1-8088-1)    at br.net.bcfsolutions.utils.Database.getConnection(Database.java:13)
11:53:32,109 ERROR [stderr] (http--127.0.0.1-8088-1)    at br.net.bcfsolutions.mb.ClientMB.guardarClient(ClientMB.java:38)
11:53:32,110 ERROR [stderr] (http--127.0.0.1-8088-1)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
11:53:32,111 ERROR [stderr] (http--127.0.0.1-8088-1)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
11:53:32,113 ERROR [stderr] (http--127.0.0.1-8088-1)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
11:53:32,114 ERROR [stderr] (http--127.0.0.1-8088-1)    at java.lang.reflect.Method.invoke(Method.java:606)
11:53:32,116 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
11:53:32,117 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
11:53:32,119 ERROR [stderr] (http--127.0.0.1-8088-1)    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
11:53:32,121 ERROR [stderr] (http--127.0.0.1-8088-1)    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
11:53:32,123 ERROR [stderr] (http--127.0.0.1-8088-1)    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
11:53:32,124 ERROR [stderr] (http--127.0.0.1-8088-1)    at javax.faces.component.UICommand.broadcast(UICommand.java:315)
11:53:32,126 ERROR [stderr] (http--127.0.0.1-8088-1)    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
11:53:32,129 ERROR [stderr] (http--127.0.0.1-8088-1)    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
11:53:32,130 ERROR [stderr] (http--127.0.0.1-8088-1)    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
11:53:32,131 ERROR [stderr] (http--127.0.0.1-8088-1)    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
11:53:32,132 ERROR [stderr] (http--127.0.0.1-8088-1)    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
11:53:32,133 ERROR [stderr] (http--127.0.0.1-8088-1)    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
11:53:32,134 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
11:53:32,135 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
11:53:32,138 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
11:53:32,139 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
11:53:32,140 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
11:53:32,141 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
11:53:32,142 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
11:53:32,145 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
11:53:32,148 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
11:53:32,149 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
11:53:32,150 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
11:53:32,151 ERROR [stderr] (http--127.0.0.1-8088-1)    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
11:53:32,152 ERROR [stderr] (http--127.0.0.1-8088-1)    at java.lang.Thread.run(Thread.java:745)

Compare o teu jdbc:oracle:thin:@//localhost:1521/xe com um que está correto e veja a diferença jdbc:oracle:thin:@localhost:1521:mkyong

Eu testei esse endereço jdbc:oracle:thin:@//localhost:1521/xe em um main (abaixo), e funcionou normalmente… Com o endereço enviado, não funcionou…

Nesse teste que fiz, eu consegui fazer um INSERT e um SELECT sem problemas… Só tenho problemas quando tento fazer pelo index.xhtml que criei com o Maven.

Database.java

package br.net.bcfsolutions.utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Database {

	public static Connection getConnection() throws SQLException {

		return DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "TESTE", "teste123");
	}
}

TesteSelect.java

package br.net.bcfsolutions.test;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import br.net.bcfsolutions.utils.Database;

public class TesteSelect {
	
	private static String name = "OUTRO TESTE";
	private static String email = "outro@teste";
	
	public static String getName() {
		return name;
	}

	public static String getEmail() {
		return email;
	}

	public static void main(String[] args) throws SQLException {
		
		System.out.println("Estabelecendo conexão...");
		
		Connection conn = Database.getConnection();
		Statement st = conn.createStatement();
	
		System.out.println("Conexão efetuada.. Statement criado...");
		System.out.println("Criando insert...");
		
		ResultSet rsq = st.executeQuery("insert into USUARIOS (id, nome, email) "
                + "values ((select max(ID) id from USUARIOS)+1,'" + getName() + "','" + getEmail() + "')");
		
		System.out.println("Dados inseridos...");
		
		ResultSet rs = st.executeQuery("Select * from USUARIOS order by ID");
		
		while(rs.next()){
			String id = rs.getString("ID");
			String name = rs.getString("NOME");
			String email = rs.getString("EMAIL");
		
			System.out.println(id + " | " + name + " | " + email);
			
		}
		
		rsq.close();
		rs.close();
		st.close();
		conn.close();

	}

}

Se qser continuar a me ajudar no topico que criei… La esta mais explicado oque fiz… rss

Ficarei mto agradecido =)