Dúvidas com relação a conexão com Mysql, usando o J-Conn

5 respostas
D
Estou tentando me conectar ao Mysql, usando o J-Connector. Coloco ele no ClassPath, coloco ele também na pasta do java/lib/ext/, emfim, eu o instalo normalmente.

Eu implemento o seguinte código:

Class.forName(com.mysql.jdbc.Driver);

Connection Conn = DriverManager.getConnection(jdbc:mysql//localhost/farmacia?user=teste&password=teste”);

Quando ele roda a linha Class.forname, ele funciona normal (o driver está corretament instalado). Mas quando ele roda a linha Connection Conn, ele levanta uma exceção e não conecta. E código compila normalmente (está tudo dentro de um bloco try). O MySql está corretamente instalado, o banco farmácia existe e o usuário teste também, com a permissão configurada normalmente. Já procurei em tutoriais e em outros fóruns, e não achei resposta para o que está acontecendo. Vocês são minha última esperança. Aguardo resposta.

5 Respostas

J

Acho que está faltando um : depois de mysql não???

Se não der, tenta assim:

D

Bom, não deu certo. Aquí vai o código da classe que deveria estar se conectando ao banco.

package farmacia;
import java.sql.*;
import javax.swing.*;

public class Cliente {
	private String CPF=new String();
	private String Nome=new String();
	private String Rua=new String();
	private String Numero=new String();
	private String Bairro=new String();
	private String Cidade=new String();
	private Connection Conn=null;
	private PreparedStatement Pstm;
	private ResultSet Rec;
	
	public String GetCPF(){return CPF;}
	public String GetNome(){return Nome;}
	public String GetRua(){return Rua;}
	public String GetNumero(){return Numero;}
	public String GetBairro(){return Bairro;}
	public String GetCidade(){return Cidade;}
	public void SetCPF(String CPF){this.CPF=CPF;}
	public void SetNome(String Nome){this.Nome=Nome;}
	public void SetRua(String Rua){this.Rua=Rua;}
	public void SetNumero(String Numero){this.Numero=Numero;}
	public void SetBairro(String Bairro){this.Bairro=Bairro;}
	public void SetCidade(String Cidade){this.Cidade=Cidade;}
	public void Conexao()
	{
		try
		{
			Class.forName("com.mysql.jdbc.Driver").newInstance();			
		}
		
		catch(Exception E)
		{
			JOptionPane.showMessageDialog(null,"Não foi possível encontrar o drive do MySQL ","Erro de driver",JOptionPane.ERROR_MESSAGE);
		}		
		try
		{
			Conn = DriverManager.getConnection("jdbc:mysql://localhost/farmacia?user=lost&password=lost");
			Pstm=Conn.prepareStatement("SELECT * FROM TBClientes");
			Rec=Pstm.executeQuery();
			Rec.next();
			CPF=Rec.getString(1);
			Nome=Rec.getString(2);
			Rua=Rec.getString(5);
			Numero=Rec.getString(6);
			Bairro=Rec.getString(4);
			Cidade=Rec.getString(3);
		}
		catch(Exception E)
		{
			JOptionPane.showMessageDialog(null,"Não foi possível estabelecer a conexão. ","Erro de driver",JOptionPane.ERROR_MESSAGE);
		}
	}
}

Como pode ver, aparentemente não há erro. Mas como falei, aparentemente. Pode dar uma olhada nesse código?
Aquí vai o código da classe que chama essa:

package farmacia;

import javax.swing.JPanel;
import java.sql.*;
import javax.swing.JInternalFrame;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class FClientes extends JInternalFrame {

	private JPanel jContentPane = null;
	private JButton jButton = null;
	private JButton jButton1 = null;
	private JButton jButton2 = null;
	private JButton jButton3 = null;
	private JButton jButton4 = null;
	private JButton jButton5 = null;
	private JButton jButton6 = null;
	private JLabel jLabel = null;
	private JLabel jLabel1 = null;
	private JLabel jLabel2 = null;
	private JLabel jLabel3 = null;
	private JTextField jTextField = null;
	private JTextField jTextField1 = null;
	private JTextField jTextField2 = null;
	private JTextField jTextField3 = null;
	private JLabel jLabel4 = null;
	private JTextField jTextField4 = null;
	private JLabel jLabel5 = null;
	private JTextField jTextField5 = null;
	private JButton jButton7 = null;
	private FFarmacia Farmacia;
	private Cliente cliente=new Cliente();
	/**
	 * This is the default constructor
	 */
	
	public FClientes(FFarmacia fFarmacia) {
		super();
		Farmacia=fFarmacia;
		initialize();
		cliente.Conexao();
		jTextField.setText(cliente.GetCPF());
		jTextField1.setText(cliente.GetNome());
		jTextField2.setText(cliente.GetRua());
		jTextField3.setText(cliente.GetNumero());
		jTextField4.setText(cliente.GetBairro());
		jTextField5.setText(cliente.GetCidade());
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(573, 257);
		this.setClosable(true);
		this.setContentPane(getJContentPane());
		this.setTitle("Cadastro de Clientes");
		this.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() {   
			 
			public void internalFrameClosed(javax.swing.event.InternalFrameEvent e) {    
				Farmacia.jMenuItem1.setEnabled(true);
			}
		
		});
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jLabel5 = new JLabel();
			jLabel5.setBounds(new java.awt.Rectangle(290,110,81,21));
			jLabel5.setText("Cidade");
			jLabel4 = new JLabel();
			jLabel4.setBounds(new java.awt.Rectangle(100,110,81,21));
			jLabel4.setText("Bairro");
			jLabel3 = new JLabel();
			jLabel3.setBounds(new java.awt.Rectangle(10,110,81,21));
			jLabel3.setText("Número");
			jLabel2 = new JLabel();
			jLabel2.setBounds(new java.awt.Rectangle(270,60,81,21));
			jLabel2.setText("Rua");
			jLabel1 = new JLabel();
			jLabel1.setBounds(new java.awt.Rectangle(10,60,81,21));
			jLabel1.setText("Nome");
			jLabel = new JLabel();
			jLabel.setBounds(new java.awt.Rectangle(10,10,81,21));
			jLabel.setText("CPF");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getJButton(), null);
			jContentPane.add(getJButton1(), null);
			jContentPane.add(getJButton2(), null);
			jContentPane.add(getJButton3(), null);
			jContentPane.add(getJButton4(), null);
			jContentPane.add(getJButton5(), null);
			jContentPane.add(getJButton6(), null);
			jContentPane.add(jLabel, null);
			jContentPane.add(jLabel1, null);
			jContentPane.add(jLabel2, null);
			jContentPane.add(jLabel3, null);
			jContentPane.add(getJTextField(), null);
			jContentPane.add(getJTextField1(), null);
			jContentPane.add(getJTextField2(), null);
			jContentPane.add(getJTextField3(), null);
			jContentPane.add(jLabel4, null);
			jContentPane.add(getJTextField4(), null);
			jContentPane.add(jLabel5, null);
			jContentPane.add(getJTextField5(), null);
			jContentPane.add(getJButton7(), null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setBounds(new java.awt.Rectangle(10,170,61,46));
			jButton.setToolTipText("Primeiro");
			jButton.setText("<<");
		}
		return jButton;
	}

	/**
	 * This method initializes jButton1	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton1() {
		if (jButton1 == null) {
			jButton1 = new JButton();
			jButton1.setBounds(new java.awt.Rectangle(70,170,61,46));
			jButton1.setToolTipText("Anterior");
			jButton1.setText("<");
		}
		return jButton1;
	}

	/**
	 * This method initializes jButton2	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton2() {
		if (jButton2 == null) {
			jButton2 = new JButton();
			jButton2.setBounds(new java.awt.Rectangle(130,170,61,46));
			jButton2.setToolTipText("Próximo");
			jButton2.setText(">");
		}
		return jButton2;
	}

	/**
	 * This method initializes jButton3	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton3() {
		if (jButton3 == null) {
			jButton3 = new JButton();
			jButton3.setBounds(new java.awt.Rectangle(190,170,61,46));
			jButton3.setToolTipText("Último");
			jButton3.setText(">>");
		}
		return jButton3;
	}

	/**
	 * This method initializes jButton4	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton4() {
		if (jButton4 == null) {
			jButton4 = new JButton();
			jButton4.setBounds(new java.awt.Rectangle(270,170,61,46));
			jButton4.setToolTipText("Novo");
			jButton4.setText("New");
		}
		return jButton4;
	}

	/**
	 * This method initializes jButton5	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton5() {
		if (jButton5 == null) {
			jButton5 = new JButton();
			jButton5.setBounds(new java.awt.Rectangle(410,170,61,46));
			jButton5.setToolTipText("Deletar");
			jButton5.setText("Del");
			jButton5.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					int Resposta = JOptionPane.showConfirmDialog(null,
							"Deseja realmente excluir esse registro?",
							"Confirmar a exclusão",
							JOptionPane.YES_NO_OPTION,
							JOptionPane.WARNING_MESSAGE);
					if (Resposta==JOptionPane.WARNING_MESSAGE)
					{
						
					}
					else
					{
						
					}
				}
			});
		}
		return jButton5;
	}

	/**
	 * This method initializes jButton6	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton6() {
		if (jButton6 == null) {
			jButton6 = new JButton();
			jButton6.setBounds(new java.awt.Rectangle(330,170,61,46));
			jButton6.setToolTipText("Editar");
			jButton6.setText("Edit");
		}
		return jButton6;
	}

	/**
	 * This method initializes jTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField() {
		if (jTextField == null) {
			jTextField = new JTextField();
			jTextField.setBounds(new java.awt.Rectangle(10,30,151,21));
			
		}
		return jTextField;
	}

	/**
	 * This method initializes jTextField1	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField1() {
		if (jTextField1 == null) {
			jTextField1 = new JTextField();
			jTextField1.setBounds(new java.awt.Rectangle(10,80,251,21));
		}
		return jTextField1;
	}

	/**
	 * This method initializes jTextField2	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField2() {
		if (jTextField2 == null) {
			jTextField2 = new JTextField();
			jTextField2.setBounds(new java.awt.Rectangle(270,80,281,21));
		}
		return jTextField2;
	}

	/**
	 * This method initializes jTextField3	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField3() {
		if (jTextField3 == null) {
			jTextField3 = new JTextField();
			jTextField3.setBounds(new java.awt.Rectangle(10,130,81,21));
		}
		return jTextField3;
	}

	/**
	 * This method initializes jTextField4	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField4() {
		if (jTextField4 == null) {
			jTextField4 = new JTextField();
			jTextField4.setBounds(new java.awt.Rectangle(100,130,181,21));
		}
		return jTextField4;
	}

	/**
	 * This method initializes jTextField5	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField5() {
		if (jTextField5 == null) {
			jTextField5 = new JTextField();
			jTextField5.setBounds(new java.awt.Rectangle(290,130,261,21));
		}
		return jTextField5;
	}

	/**
	 * This method initializes jButton7	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton7() {
		if (jButton7 == null) {
			jButton7 = new JButton();
			jButton7.setBounds(new java.awt.Rectangle(490,170,61,46));
			jButton7.setText("OK");
			jButton7.setToolTipText("Confirmar");
			jButton7.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					JOptionPane.showMessageDialog(null,"O Registro foi incluído com                                         sucesso.","Confirmação",JOptionPane.INFORMATION_MESSAGE);
				}
			});
		}
		return jButton7;
	}

}

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - AnjoSupremo[/color][/size] :joia:

D

Boa noite… gente, ninguém vai responder?[/code]

D

Achei o problema: O driver não acessa MySQL 4.1. Só funcionou quando instalei o mysql 4.0… Comentem isso… é normal? E detalhe: só entra como root, quando crio um usuário normal, ele não acessa ainda sim. O Que pode estar acontecendo?

M

Opa,

Isto pode ser uma incompatibilidade de versão ou coisa assim. Não estou lembrado mas acho que isto já aconteceu comigo, neste caso é só baixar a versão mais recente do driver que resolve o problema.

Agora, a questão do usuário do banco, não vi a exceção que gerou, mas acredito que é porque você não associou ele ao banco e ou as tabelas que está tentando acessar.

Dica: Acesse o mysql via prompt conectando com este usuário para ver se você consegue.

:okok:

Criado 5 de maio de 2006
Ultima resposta 14 de mai. de 2006
Respostas 5
Participantes 3