Conectar classe com MySQL

10 respostas
RegisFurtado

Bom dia a todos…

Estou encontrando dificuldades em criar meu método conectar, onde ele foi feito no Sql Express e agora preciso passar para mySql …
E se no mySql eu também preciso de criar fonte de dados igual no Sql Server, bem é uma duvida facil porem não sei resolver, conto com a ajuda de todos que puderem ajudar

Obrigado

10 Respostas

Jair_Rillo_Junior

Primeiro, você va precisar do Drive JDBC do MySQL para fazer a conexão, você pode encontra-lo no site do mysql www.mysql.com.
Depois você vai ter que usar a classe Class.forName e a Interface Connection para fazer a conexão.
Seria algo mais ou menos assim

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(stringDeConexão);
....

Dê uma pesquisada no google sobre JDBC e MySQL ou na documentação do driver.

RegisFurtado

Ae vou colocar o meus dois métodos… o conectar e o gravar o que terei que modificar neles…

public boolean gravar()

		{
			System.out.println("entrou no gravar");

			String sql = "insert into tbAtendimento values ('"+ this.vendedor +"','"+ this.data +"','" + this.filial +"','"+ this.contato +"','"+ this.nomeFanta +"','"+ this.razaoSoc +"','"+ this.cargo +"','"+ this.dpto +"','"+ this.ramoAtiv +"','"+ this.end +"','"+ this.num +"','"+ this.bairro +"','"+ this.cidade +"','"+ this.compl +"','"+ this.cep +"','"+ this.uf +"','"+ this.clienteSN +"', '"+ this.numFunc +"' , '"+ this.telContato +"','"+ this.fax +"','"+ this.email +"','"+ this.site +"','"+ this.possui +"','"+ this.qual +"','"+ this.interesseCli +"','"+ this.pricCarac +"','"+ this.prodFaz +"','"+ this.modelo +"','"+ this.valorItem +"','"+ this.qtd +"' , '"+this.total+"' ,'"+ this.dtRetorno +"')";

			System.out.println(sql);
		    try
			{
				System.out.println("passou gravar");

				Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

				System.out.println("conectou gravar");

				Connection conn = DriverManager.getConnection(driver,"","");

				System.out.println("passou pelo conn gravar");

			    PreparedStatement pst = conn.prepareStatement(sql);

			    System.out.println("chamou o Statement gravar");

			    pst.executeUpdate();

			    System.out.println("executou o Statement gravar");

				//conn.close();
				return true;
			}
			catch (SQLException s)
			{
				if (s.getErrorCode() == 2627)
				{
					JOptionPane.showMessageDialog(null, "Chave primária duplicada!", "ERRO", 0);
					return false;
				}
				else
				{
				 	JOptionPane.showMessageDialog(null, "Erro inexperado.\n Entre em contato com o desenvolvedor e informe este número: " + s.getMessage(), "ERRO", 0);
					return false;
				}
			}
			catch(Exception e)
			{
				 e.printStackTrace();
				 return false;
			}
	}

Esse é o CONECTAR

public void conectar()
	{
			System.out.println("entrou");

		try
		{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			conn = DriverManager.getConnection(driver,"","");
			System.out.println("conectou");
		}
		catch(Exception e)
		{
			JOptionPane.showMessageDialog(null,"Erro na conexão!","Erro",1);
		}

	}

Tentei fazer um método conectar da seguinte forma

import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;



	public class Conexao
	{
		private static final String URL = "jdbc:mysql://localhost";
		private static final String DRIVER = "com.mysql.jdbc.Driver";
		private static final String USUARIO = "root";
  		private static final String SENHA = "123";
 
  		public static Connection abreConexao() throws SQLException
  		{
  			System.out.println("ENTROU NO CONECTAR");
  			try 
  			{
  				Class.forName(DRIVER);
  				System.out.println("PASSOU NO forName");
  				return (Connection) DriverManager.getConnection(URL,USUARIO,SENHA);
  			
  			}
  			catch (ClassNotFoundException e) 
  			{
  				throw new SQLException(e.getMessage());
  			}
  		}
  	
  		public   Conexao() throws SQLException
  		{
  			abreConexao() ;
  			System.out.println("CONECTOU COM SUCESSO");
  		}
}

O que eu devo modificar em cada método… ?

fabiozoroastro

Não escreva seus posts em maiúsculo.

RegisFurtado

Foi mal… nem tinha percebido quando vi já tinha postado :lol:

fabiozoroastro

http://www.portaljava.com/home/modules.php?name=Content&pa=showpage&pid=38]

:slight_smile:

RegisFurtado

Só uma duvida idiota… no Sql Server você tem que criar uma fonte de dados(odbc) onde tem fonte de dados do sistema e do usuario e tal… ok? e quando eu crio um banco em mySql tenho que fazer o q ? e eu criei um banco na mão, sem nenhum interface gráfica utilizando somente o MySQL Comand Line Client … só que onde fica gravado meu banco … são duvidas idiotas mais é a priemira vez que vejo isso…

Jair_Rillo_Junior

Uma dica, usa o MySQL Query Browser ou MySQL Front como interface para o banco MySQL.

Você não precisa criar fonte de dados OBDC, é apenas instalar ele, rodar e conectar usando JDBC.

Pelo que eu vi do seu último código tem um problema, ao invés de voce usar a interface java.sql.Connection você está usando a interface com.mysql.jdbc.Connection
Altere isso e rode, se der algum problema, posta o log para nós

RegisFurtado

você sabe algum link que eu possa achar um dos dois MySQL Query Browser ou MySQL Front ?

Jair_Rillo_Junior

O google sabe :wink:

O MySQL Query Browser você encontra no próprio site do MySQL, enquanto o MySQL Front você pode perguntar ao google que ele irá te responder :wink:

RegisFurtado

já to baixando… ae vou te que sair agora… amanhã na aprte da manhã voltarei se possivel acesse esse tópico para me ajudar a resolver esse problema, muito obrigado

Criado 7 de novembro de 2006
Ultima resposta 7 de nov. de 2006
Respostas 10
Participantes 3