conforme a caelum
baixei o mysql connector/j
colei o
mysql-connector-java-5.1.12-bin.jar dentro do projeto jdbc
e tentei compilar este teste … mas naum consegui
[code]
package br.com.caelum.jdbc;
import java.sql.*;
public class ConnectionFactory {
public static Connection getConnection() throws SQLException {
try {
Class.forName(“com.mysql.jdbc.Driver”);
System.out.println(“Conectando ao banco”);
return DriverManager.getConnection(“jdbc:mysql://localhost/teste”, “root”, “root”);
} catch (ClassNotFoundException e){
throw new SQLException(e.getMessage());
}
}
}[/code]
package br.com.caelum.jdbc;
import java.sql.*;
import com.mysql.jdbc.*;
public class TestaConexao
{
public static void main ( String args[]) throws SQLException, ClassNotFoundException
{
Connection connection = ConnectionFactory.getConnection();
connection.close();
}
}
erro :
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The type Connection is ambiguous
at br.com.caelum.jdbc.TestaConexao.main(TestaConexao.java:11)
ALGUEM PODERIA ME DÁ UMA FORÇA ???
Não é apenas colar o driver do bd, tem que adicionar no classpath da sua aplicação.
Provavelmente existe o tipo Connection em mais de um pacote que você está usando. Ao invés de usar o * nos imports importe apenas os tipos que você precisa.
Isso se for numa aplicação java, mas numa aplicação web. Você não precisa colocar no classpath. Você coloca numa pasta chamada Web-Inf e lá você cria uma pasta lib. E joga o conectorJ lá. E pronto. Pelo menos comigo deu certo. Eu fiz isso usando o NetBeans, eu nunca fiz isso usando o Eclipse.
Importe só o que precisar…
[code]package br.com.caelum.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
public Connection getConnection() {
System.out.println("Conectando ao banco agora....");
try {
return DriverManager.getConnection("jdbc:mysql://localhost/teste",
"root", "root");
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}[/code]
vlew
rodou mas deu outro erro agora
Conectando ao banco
ERROS:
Exception in thread “com.mysql.jdbc.exceptions.jdbc4.CommunicationsException” principais: falha de ligação das Comunicações
O último pacote enviado com sucesso para o servidor foi de 0 milissegundos atrás. O motorista não tenha recebido todos os pacotes do servidor.
em sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method)
em sun.reflect.NativeConstructorAccessorImpl.newInstance (Fonte desconhecida)
em sun.reflect.DelegatingConstructorAccessorImpl.newInstance (Fonte desconhecida)
em java.lang.reflect.Constructor.newInstance (Fonte desconhecida)
em com.mysql.jdbc.Util.handleNewInstance (Util.java: 409)
em com.mysql.jdbc.SQLError.createCommunicationsException (SQLError.java: 1122)
em com.mysql.jdbc.ConnectionImpl.createNewIO (ConnectionImpl.java: 2260)
em com.mysql.jdbc.ConnectionImpl. (ConnectionImpl.java: 787)
em com.mysql.jdbc.JDBC4Connection. (JDBC4Connection.java: 49)
em sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method)
em sun.reflect.NativeConstructorAccessorImpl.newInstance (Fonte desconhecida)
em sun.reflect.DelegatingConstructorAccessorImpl.newInstance (Fonte desconhecida)
em java.lang.reflect.Constructor.newInstance (Fonte desconhecida)
em com.mysql.jdbc.Util.handleNewInstance (Util.java: 409)
em com.mysql.jdbc.ConnectionImpl.getInstance (ConnectionImpl.java: 357)
em com.mysql.jdbc.NonRegisteringDriver.connect (NonRegisteringDriver.java: 285)
em java.sql.DriverManager.getConnection (Fonte desconhecida)
em java.sql.DriverManager.getConnection (Fonte desconhecida)
em br.com.caelum.jdbc.ConnectionFactory.getConnection (ConnectionFactory.java: 9)
em br.com.caelum.jdbc.TestaConexao.main (TestaConexao.java: 14)
Causados por: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: falha do link Comunicações
O último pacote enviado com sucesso para o servidor foi de 0 milissegundos atrás. O motorista não tenha recebido todos os pacotes do servidor.
em sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method)
em sun.reflect.NativeConstructorAccessorImpl.newInstance (Fonte desconhecida)
em sun.reflect.DelegatingConstructorAccessorImpl.newInstance (Fonte desconhecida)
em java.lang.reflect.Constructor.newInstance (Fonte desconhecida)
em com.mysql.jdbc.Util.handleNewInstance (Util.java: 409)
em com.mysql.jdbc.SQLError.createCommunicationsException (SQLError.java: 1122)
em com.mysql.jdbc.MysqlIO. (MysqlIO.java: 344)
em com.mysql.jdbc.ConnectionImpl.createNewIO (ConnectionImpl.java: 2181)
… Mais 13
Causados por: java.net.ConnectException: Conexão recusada: contato
em java.net.PlainSocketImpl.socketConnect (Native Method)
na Fonte (java.net.PlainSocketImpl.doConnect Desconhecido)
em java.net.PlainSocketImpl.connectToAddress (Fonte desconhecida)
na Fonte (java.net.PlainSocketImpl.connect Desconhecido)
na Fonte (java.net.SocksSocketImpl.connect Desconhecido)
na Fonte (java.net.Socket.connect Desconhecido)
na Fonte (java.net.Socket.connect Desconhecido)
em java.net.Socket. (Fonte desconhecida)
em java.net.Socket. (Fonte desconhecida)
em com.mysql.jdbc.StandardSocketFactory.connect (StandardSocketFactory.java: 256)
em com.mysql.jdbc.MysqlIO. (MysqlIO.java: 293)
… 14 mais
O QUE SUCEDEU AGORA??? EU NÃO SEI SE FOI CRIADO UM BD ??? PQ EU NÃO CRIEI??/
da uma olhada - se vc souber alguma coisa de web … talves ajude !
- não esqueca de verificar seu classpath …
<%@ page contentType=“text/html” language=“java” import=“java.sql.*”%>
<%@ page errorPage=“error.jsp” %>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<title><%out.print(“Teste com banco”);%></title>
<meta http-equiv=“Content-Type” content=“text/html; charset=iso-8859-1”>
</head>
<body>
<table align=“center” border=“5” cellspacing=0 cellpadding=0 width=“100%” height=“100%”
color="#FFFFFF" bgcolor="#0000FF">
<%
try {
Class.forName("com.mysql.jdbc.Driver"); //O DRIVER mysql-connector-java-5.0.4-bin ou mais recente
Connection conn = DriverManager.getConnection( //DEVE SER COLOCADO NA PASTA:../minhapagina/WEB-INF/lib
"jdbc:mysql://servidor:3306/meu_banco_mysql?autoReconnect=true", "usuario", "senha");
Statement stmt = conn.createStatement();
String sqlStr;
int returnCode;
sqlStr = "SELECT * FROM tabela limit 30";
ResultSet rset = stmt.executeQuery(sqlStr);
while(rset.next()) {
String nome = rset.getString("NomeCampo");
%><tr><% out.print(nome);
%><br></tr><%
}
rset.close();
stmt.close();
conn.close();
} catch(ClassNotFoundException ex) {
%><br>Erro na conexao 11<br><%
ex.printStackTrace();
} catch(SQLException ex) { // for java.sql methods
%><br>Erro na conexao ...<br>
<%
ex.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
%>
</table>
</body>
</html>