Não consigo usar o getConnection para acessar o mysql
19 respostas
mysql
P
Pedrom
Boa tarde
Estou tentando conectar numa base mysql através do DriverManager.getConnection e não estou conseguindo.
Criei um projeto no Eclipse, fazendo uso do java e da opção de um projeto web - Dynamic Web Project. Após várias tentativas, utilizando o DriverManager.getConnection(url, usuario, senha) e debugando o projeto, percebi que ao rodar a aplicação pelo Rum on Server ou mesmo Debug on Server, ambos causam erro por não encontrar o Driver do mysql, porém se eu rodo a aplicação como desktop como uma Java Application a mesma reconhece o Driver e faz a conexão normalmente.
Alguém já passou por este conflito? tem algo que possa fazer para testar?
segue abaixo a classe de conexao:
packagebr.com.util;importjava.sql.*;publicclassMySqlConnection{privatestaticfinalStringurl="jdbc:mysql://localhost:3306/dbfinanceiro";privatestaticfinalStringuser="root";privatestaticfinalStringpsw="1234";publicConnectiongetConnection(){Connectionconn=null;try{conn=DriverManager.getConnection(url,user,psw);System.out.println("Driver MYSQL Conectado com Sucesso!");}catch(Exceptione){e.printStackTrace();}returnconn;}}
porém, se eu rodo esta mesma classe com uma appication java ele conecta normalmente.
S
staroski
Está faltando a dependência do MySql no seu projeto Web
P
Pedrom
me explica ai como adicionar esta dependência… pq já coloquei a biblioteca na pasta do projeto… botão direito e adicionar o build path mysql-connector-j-8.0.32.jar.
Segundo… quando rodo o projeto como uma aplicação ele passa pelo getConnection e conecta o banco.
Apenas quando rodo esta mesma aplicação como projeto web é que o mesmo dá erro.
preciso adicionar esta biblioteca ao path do windows tb? pelo que li só ao projeto em questão! é isso??
desde já agradeço sua ajuda e a do Lucas
S
staroski
Como você está fazendo para executar a aplicação Web?
P
Pedrom
criei o arquivo index.jsp as classes dao e beans e chamo esta conexão… ai clico botão direito run on server em cima do nome do projeto e executo…
como estava debugando pra ajudar a entender onde estava o erro foi que vi q quando chego nesta linha do DriverManager.getConnection foi q vi que dava erro… porém se executo como run as java application ele passa e conecta.
deu pra entender?
há como por imagem aqui… pq se quiser eu posto a imagem
S
staroski
E o server está configurado com as mesmas dependências da Java Application?
Chegou a conferir se os jars estão no WEB-INF/lib quando o server está executando?
P
Pedrom
Não… esta pasta lib está vazia…
Quais arquivos devo por lá?
o de conexão??
S
staroski
Todos os JARs que sua aplicação depende, por exemplo o mysql-connector-j-8.0.32.jar.
Em princípio você consegue configurar isso no próprio eclipse.
Se clicar duas vezes no seu server, vai abrir a página de Overview, lá tem um link “Open launch configuration” onde você configura o classpath do server.
P
Pedrom
posso arrastar a biblioteca e soltar lá? ou melhor copiar??
outra coisa… devo alterar o caminho lá do build path para este endereço dentro desta pasta lib??
S
staroski
Não, se seu server estiver configurado direito na IDE, quando você publicar sua aplicação, a própria IDE deve copiar os JARs lá
Pode
P
Pedrom
vou testar agora
P
Pedrom
Nada, amigo!!
arrastei a pasta e nada!!
Informei o novo path e tb não deu resultado.
há algum problema quando há a mensagem q o projetoj is required and cannot be removed from the server que impacte nesta ação?
o que posso tentar mais?? Há outra forma de conectar com este banco?
S
staroski
Qual é o servidor que você está usando?
P
Pedrom
Mysql Workbench 8.0 CE
acabei de fazer a conexão wizard pelo netbeans, mesma biblioteca (mysql connector J) q baixei e funcionou tb…
vou copiar agora mesmo código para o netbeans para ver se vai rodar
S
staroski
Não conheço, dá uma olhada na documentação dele de como você configura o classpath das web applications.
P
Pedrom
Staroski… me da uma ajuda aki…
vi que podia criar uma conexão pela janela de perspectiva… selecionei o database development e consegui colocar o banco a a senha e a conexão com o driver mysql-connect-j…ou seja… conexão normal…
Como poderia desenvolver a classe de conexão para chamar essa conexão?? você saberia??
S
staroski
Então pelo jeito você tem um pool de conexões.
Deve conseguir o objeto Connection usando o jndi name de sua conexão.
O código seria mais ou menos assim: