Não consegui conectar o MySql na minha aplicação !
Aqui esta minha classe de conexão…
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassconexao{privatestaticConnectionconn;privatestaticfinalStringURL="jdbc:mysql://localhost:8080/[ o que mais coloco aqui !!! ? ] ";privatestaticfinalStringDRIVER="com.mysql.jdbc.Driver";privatestaticfinalStringUSUARIO="root";privatestaticfinalStringPASSWORD="123";publicstaticConnectionabreConexao()throwsSQLException{try{if(conn==null){Class.forName(DRIVER);conn=DriverManager.getConnection(URL,USUARIO,PASSWORD);}returnconn;}catch(ClassNotFoundExceptione){thrownewSQLException(e.getMessage());}}}
ahan já coloquei… é que eu copiei um código antigo…
o que mais está de errado ?
eu estou usando o MySQL Server 4.1… qual driver que eu devo utilizar ?
como é essa parte de exporta no classpath ? não sei mt… poderia me explicar melhor isso ?
aszarael
Cara usa o JConnerctorMysql 5, eu usei e deu certo
para fazer a conexão tente assim
*GerenciaBanco.java**Createdon3deNovembrode2006,09:20**Tochangethistemplate,chooseTools|TemplateManager*andopenthetemplateintheeditor.*/packagebaixar;importjava.net.*;importjava.sql.*;/** * * @author Isael Faria Junior */publicclassGerenciaBanco{privatestaticfinalStringURL="jdbc:mysql://Ip_da _maquina:3306/teste_java";privatestaticfinalStringDRIVER="com.mysql.jdbc.Driver";privatestaticfinalStringUSUARIO="bases";privatestaticfinalStringSENHA="senha";privateStringnumero;privateStringsql;privateConnectionconn;/** Creates a new instance of GerenciaBanco */publicGerenciaBanco(){sql=newString();numero=newString();}privatevoidConectar_banco(Stringsql)throwsSQLException,ClassNotFoundException{try{Class.forName(DRIVER);Connectionconn=DriverManager.getConnection(URL,USUARIO,SENHA);Statementtabela=conn.createStatement();// criando instancia de inserção.tabela.execute(sql);tabela.close();}catch(ClassNotFoundExceptione){System.out.println("Erro ao acessar o banco");}catch(SQLExceptione){System.out.println(e.getMessage());}}publicvoidinserir_numeros(ElementoDownloadelemento)throwsSQLException,ClassNotFoundException{Stringsql="INSERT INTO Gerencia (chave,download,data_download,status,data_status) values ('"+elemento.pegaChave()+"','"+elemento.foiBaixado()+"','"+elemento.pegaDataDownload()+"','"+elemento.pegaStatus()+"','"+elemento.pegaDataStatus()+"')";// String de inserção.this.Conectar_banco(sql);}publicvoidatualizar_dados(ElementoDownloadelemento)throwsSQLException,ClassNotFoundException{Stringsql="UPDATE Gerencia set download='"+elemento.foiBaixado()+"', data_download='"+elemento.pegaDataDownload()+"', status='"+elemento.pegaStatus()+"', data_status='"+elemento.pegaDataStatus()+"' where chave='"+elemento.pegaChave()+"'";this.Conectar_banco(sql);}}
pra utilizar. copie o .jar no seu projeto… e clique com o botão direito do mouse sobre o driver. Clique em build path … e clique em add to build path…
isso no Eclipse…
V
valdo1
Connectionconnection=null;try{// Carregando o JDBC DriverStringdriverName="org.gjt.mm.mysql.Driver";// MySQL MM JDBC driverClass.forName(driverName);// Criando a conexão com o Banco de DadosStringserverName="localhost";Stringmydatabase="mydatabase";Stringurl="jdbc:mysql://"+serverName+"/"+mydatabase;// a JDBC urlStringusername="username";Stringpassword="password";connection=DriverManager.getConnection(url,username,password);}catch(ClassNotFoundExceptione){//Driver não encontradoSystem.out.println("O driver expecificado não foi encontrado.");}catch(SQLExceptione){//Não está conseguindo se conectar ao bancoSystem.out.println("Não foi possível conectar ao Banco de Dados");}
seu código utilizando o driver MySQL MM JDBC driver
RegisFurtado
public CadastrarAtendimento() throws SQLException
{
abreConexao();
atualizar();
}
Ae eu criei o metodo abreConexao na minha classe e to chamando ele no meu construtor isso funciona com o mySql ?
Tutorial ÓTIMO ! Só que minha classe já esta feita conforme mostra o tutorial e não funciona !
V
valdo1
voce conseguiu colocar o driver no class path ??? qual erro q ele da !?!?
RegisFurtado
Ae valdo esse erro foi erro que apareceu quando eu fui tentar gravar os dados…
Isso ae é .jsp
RegisFurtado
Coloquei sim valdo eu utilizo o eclipse… fui ein project… proprieties… add external jar … coloquei o driver do MySql 3.1.10-bin.jar …
V
valdo1
vc esta usando o driver q eu passei ???
se sim altere o endereço do driver para
driver="org.gjt.mm.mysql.Driver";
V
valdo1
isso eh uma aplicação web ??? se for… vc tem q colokar o driver dentro da pasta WEB-INF/lib … e aii sim… vc da um build path
RegisFurtado
estou utilizando um driver que já tinha aqui…
RegisFurtado
cara na minha pasta WEB-INF só contem dois arquivos web.xml / web.xml~
é só eu colocar o driver ? não preciso de criar mais nada
V
valdo1
crie uma pasta chamada “lib” dentro de seu WEB-INF e então cole o .jar do driver la dentro … então clique com o botão direito do mouse sobre o .jar … e clique em build path… e depois em add build path …
RegisFurtado
Desculpe a ignorancia, mas eu criei a pasta lib / colokei meu aruivo .jar, só que quando clico com o botão direito não aparece nada de path… :?
V
valdo1
essas instruções Regis… é pra vc fazer direto no eclipse certo !?
se vc foi pelo eclipse ele aparecerá por la “Build Path” quando clica com o botão direito dobre o .jar dentro do lib
V
valdo1
ou então coloque o .jar dentro da pasta
Apache Tomcat\common\lib\mysql-connector.jar"
RegisFurtado
Fiz isso… minha tela no eclipse ficou assim …
tem dois .jar add pq um é o da pasta que eu criei no WEB-INF e o outro era de outra pasta que eu tinha criado inicialmente…
Eita ignorancia… to começando a fikcar stressado com MySQL ! :evil:
RegisFurtado
não deu pra enviar a tela pq fikou mt grande…mais no eclipse já tah add meu jar dentro do meu project dcertinho…
vou colocar agora o conector dentro do tomcat
V
valdo1
deixa soh um dentro do seu projeto. somento o de dentro da pasta lib…
RegisFurtado
da lib que esta dentro do WEB-INF ou do C:\Tomcat 5.0\common\lib ?? deixo qual dos dois
V
valdo1
o ideal seria o da lib… no caso de vc ter conseguido dar um build path…
RegisFurtado
Blz, já esta na lib do WEB-INF… já dei o build path pelo eclipse … só tem um problema continua dano erro na hora de conectar :shock:
V
valdo1
o mesmo erro !? hsaushauh…
RegisFurtado
ahan ! vou tentar um outro caminho aqui… daqui a poco coloco o resultado haiuhaiuahai
Ae da uma olhada coloquei para imprimir mensagens até aonde está indo … e ele só imprime até o if ! Não está executando Class.forName(DRIVER); o q pode ser ?
V
valdo1
onde vc declarou a conn ???
RegisFurtado
private static Connection conn;
private static final String URL = "jdbc:mysql://localhost:3306/Online";
private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String USUARIO = "root";
private static final String PASSWORD = "123";
public ResultSet rec;
public Statement st;
Declarei como variavel de instancia, na minha classe … junto com tudo
Ae conseguiu conectar só que deu erro no meu método atualizar()…
V
valdo1
aeeee asshaush…
RegisFurtado
Ta afin de me ajudar agora nos métodos atualizar() gravar() validaUsuario()… se você quiser depois leh envio tudo pra vc guardar de lembrança haiuhaiuahaui
V
valdo1
vai postando suas duvidas ai… se eu naum conseguir… alguem consegue… o pessoal daki eh gente boaa…
RegisFurtado
Ae vai intaum
Esse ae é meu conectar que está gerando erro !
Vou testar alguns prints aki pra ver até onde esta indo…
RegisFurtado
ae aqui pra mim apareceu que o erro é na hora de executar a linha
String sql ="select * from tbAtendente";
rec = st.executeQuery(sql);
po em MySQL muda alguma coisa o comando SQL ?
V
valdo1
faz algo assim
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery (
"select * from tabela");
while (rset.next ())
System.out.println (rset.getString(1));
}
V
valdo1
ou ao invés de mostrar com sysout… joga numa List
RegisFurtado
Esta dando erro no Result set …
ResultSetrset=stmt.executeQuery("select * from tbAtendente");
V
valdo1
mostre o erro… e o codigo… outra coisa… de uma olhada na api java sobre PreparedStatement… mto melhor e mais rapida
RegisFurtado
public void atualizar()
{
try{System.out.println("Entrou no try atualizar");Statementstmt=conn.createStatement();System.out.println("Statement no try atualizar");ResultSetrset=stmt.executeQuery("select * from tbAtendente");System.out.println("ResultSet no try atualizar");while(rset.next())System.out.println(rset.getString(1));st=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);System.out.println("st conn.create atualizar");System.out.println("executou o rec atualizar");}catch(Exceptione){JOptionPane.showMessageDialog(null,"Erro na atualização!","Erro",1);}}
O erro não esta no código… está na execução quando executo apareçe a mensagem ERRO NA ATUALIZAÇÃO …
desculpe a ignorancia mais onde eu vejo essa api java ? :oops:
RegisFurtado
como que eu jogo numa list ? ao inves de outprint ? :?: :?
V
valdo1
documentação amiguinho site da sun…
ArrayList list = new ArrayList;
ao invés de usar o sysout… coloke list.add(rs.getString);
RegisFurtado
voltando no atualizar() … porque sera que meu result set num esta funcionando ?
aszarael
O problema e que vc tem que fazer a conexão junto com a consulta ou inserção, pois o mysql não permite vc criar um metodo separado para abrir a conexão, falo isso porque tive o mesmo problema, de uma olhada no fonte que mandei e teste vera que conseguira acessar o banco e seu Statement estiver junto com o comando para abrir o banco.
vc naum pode chamar um metodo getConnection()… q retorna uma conexão pra vc poder fazer sua consulta ??
como funcionaria um DAO !?!
aszarael
Para ser sincero com dao, eu não sei, pois não usei.
Agora usando o jConnector posso dizer que ele não aceita, lhe obrigando a colocar a conexão junto com o sql.