MySql ===&gt Como conectar?

50 respostas
RegisFurtado

Ae pessoal estou eu aqui de novo…

Não consegui conectar o MySql na minha aplicação !

Aqui esta minha classe de conexão…

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


public class conexao {

private static Connection conn;
private static final String URL = "jdbc:mysql://localhost:8080/[ o que mais coloco aqui !!! ? ] ";
private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String USUARIO = "root";
private static final String PASSWORD = "123";



public static Connection abreConexao() throws SQLException {
try {
if (conn == null) {
Class.forName(DRIVER);
conn = DriverManager.getConnection(URL, USUARIO, PASSWORD);



}
return conn;
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
}

50 Respostas

V

no seu URL coloca o seu banco… tipo

"jdbc:mysql://localhost:8080/[ o que mais coloco aqui !!! ? ] ";
"jdbc:mysql://localhost:8080/banco ";
RegisFurtado

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
 *
 * Created on 3 de Novembro de 2006, 09:20
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package baixar;

import java.net.*;
import java.sql.*;

/**
 *
 * @author Isael Faria Junior
 */
public class GerenciaBanco {
    private static final String URL     = "jdbc:mysql://Ip_da _maquina:3306/teste_java";
    private static final String DRIVER  = "com.mysql.jdbc.Driver";
    private static final String USUARIO = "bases";
    private static final String SENHA   = "senha";
    private String numero;
    private String sql;
    private Connection conn;
    
    /** Creates a new instance of GerenciaBanco */
    public GerenciaBanco(){
        sql    = new String();
        numero = new String();
     }
    
    private void Conectar_banco(String sql) throws SQLException,ClassNotFoundException {
       try{
            Class.forName(DRIVER);
            Connection conn = DriverManager.getConnection(URL,USUARIO, SENHA);
            Statement tabela = conn.createStatement(); // criando instancia de inserção.
            tabela.execute(sql);
            tabela.close();
       }
       catch(ClassNotFoundException e){
            System.out.println("Erro ao acessar o banco");
       }
       catch (SQLException e){
           System.out.println(e.getMessage());
       }
    }
    
    public void inserir_numeros(ElementoDownload elemento) throws SQLException, ClassNotFoundException{
        String sql = "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);
    }
    
    public void atualizar_dados(ElementoDownload elemento) throws SQLException, ClassNotFoundException {
        String sql="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);
    }
}
V

Driver
http://www.portaljava.com.br/home//modules.php?name=Downloads&d_op=getit&lid=4

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
Connection connection = null;
try
{
// Carregando o JDBC Driver
String driverName = "org.gjt.mm.mysql.Driver"; // MySQL MM JDBC driver
Class.forName(driverName);

// Criando a conexão com o Banco de Dados
String serverName = "localhost";
String mydatabase = "mydatabase";
String url = "jdbc:mysql://" + serverName + "/" + mydatabase; // a JDBC url
String username = "username";
String password = "password";
connection = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e)
{
//Driver não encontrado
System.out.println("O driver expecificado não foi encontrado.");
} catch (SQLException e)
{
//Não está conseguindo se conectar ao banco
System.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 ?

public static Connection abreConexao() throws SQLException
	{
		try
		{
			if (conn == null)
			{
				Class.forName(DRIVER);
				conn = DriverManager.getConnection(URL, USUARIO, PASSWORD);
			}	
			return conn;
		}
		catch (ClassNotFoundException e)
		{
			throw new SQLException(e.getMessage());
		}
	}
}

O meu atualizar vai ser modificado por causa do MySql ???

public void atualizar()
	{
		String sql ="select * from  tbAtendimento";
		try
		{
			st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
			rec = st.executeQuery(sql);
		}
		catch(Exception e)
		{
			JOptionPane.showMessageDialog(null,"Erro na atualização!","Erro",1);
		}
	}

por favor me deem uma ajuda ae.. já estou a 1 semana tentado fazer isso !

V

seu sql não altera

RegisFurtado

Algúem pode me dizer se do jeito que está postado ai em cima existe mais alguma coisa que eu devo fazer ?

V

Acho que este Tutorial pode te ajudar Regis :wink:

Dê uma lida ai

http://www.inf.furb.rct-sc.br/~jomi/java/pdf/jdbc.pdf

Abraço

RegisFurtado

Tutorial ÓTIMO ! Só que minha classe já esta feita conforme mostra o tutorial e não funciona ! :cry:

V

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

vc esta usando o driver q eu passei ???
se sim altere o endereço do driver para

driver ="org.gjt.mm.mysql.Driver";
V

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

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

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

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

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

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

o mesmo erro !? hsaushauh…

RegisFurtado

ahan ! vou tentar um outro caminho aqui… daqui a poco coloco o resultado haiuhaiuahai :stuck_out_tongue:

RegisFurtado
<blockquote>public static Connection abreConexao() throws SQLException

{

try

{

System.out.println(Entrou no try);

if (conn == null)

{

System.out.println(Entrou no if);

Class.forName(DRIVER);

System.out.println(passou class for name);

conn = DriverManager.getConnection(URL, USUARIO, PASSWORD);

System.out.println(CONECTOU);

}	

return conn;

}

catch (ClassNotFoundException e)

{

throw new SQLException(e.getMessage());

}

}

}

</blockquote>

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

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

RegisFurtado

AEEEEEEEE CONECTOU !!!

CONECTOU !!! CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!!CONECTOU !!! :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley:

Ae conseguiu conectar só que deu erro no meu método atualizar()…

V

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

vai postando suas duvidas ai… se eu naum conseguir… alguem consegue… o pessoal daki eh gente boaa…

RegisFurtado

Ae vai intaum :slight_smile:

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

faz algo assim

Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery ( "select * from tabela"); while (rset.next ()) System.out.println (rset.getString(1)); }

V

ou ao invés de mostrar com sysout… joga numa List :smiley:

RegisFurtado

Esta dando erro no Result set … :frowning:

ResultSet rset = stmt.executeQuery ("select * from tbAtendente");
V

mostre o erro… e o codigo… outra coisa… de uma olhada na api java sobre PreparedStatement… :wink: mto melhor e mais rapida

RegisFurtado

public void atualizar()
{

try
		{
			System.out.println("Entrou no try atualizar");
			 Statement stmt = conn.createStatement();
			 System.out.println("Statement no try atualizar");
			 ResultSet rset = 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(Exception e)
		{
			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

documentação amiguinho :wink: 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.

private void Conectar_banco(String sql) throws SQLException,ClassNotFoundException { try{ Class.forName(DRIVER); Connection conn = DriverManager.getConnection(URL,USUARIO, SENHA); Statement tabela = conn.createStatement(); // criando instancia de inserção. tabela.execute(sql); tabela.close(); }

V

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.

ludodarkness

:-o

Criado 9 de novembro de 2006
Ultima resposta 14 de nov. de 2006
Respostas 50
Participantes 4