Q erro é essE?

5 respostas
Z

eai,

seguinte, na hr de fazer a conexao com meu banco mysql, qdo eu rodo o programa ele dá esse erro:
java.lang.ClassNotFoundException: com/mysql/jdbc/Driver

alguem pode me ajudar??

e como eu coloco a pasta “com” e a pasta “org” no meu ClassPath???

falow!

5 Respostas

F

Vc tá importanto o driver com o import com… ou lá no Class.forName?

O arquivo jar está no classpath?

Z

olhae o codigo:

os imports:

import javax.swing.*;
import java.awt.*;
import java.util.Calendar;
import java.awt.event.*;
import java.text.*;
import java.util.Date;
import java.sql.*;
import org.apache.xml.utils.synthetic.Class;

o codigo pra conectar:

public void conectBanco() {
		
		try {
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			con = DriverManager.getConnection("jdbc:mysql//localhost:3306/cadastro","root","");
			stm = con.createStatement();
		}
		catch(Exception ex) {
			System.err.println(ex);
		}
	}

entao eu só copiei o arquivo .jar pra pasta jre/lib/ext, agora esse negocio de CLassPath eu nao entendi direito!

valeu…

F

Dê uma olhada na primeira linha, quando trabalhamos com banco é recomendável lançar a exceção

public void conectBanco() <b>throws SQLException</b>{

try {

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

con = DriverManager.getConnection(jdbc:mysql//localhost:3306/cadastro”,“root”,"");

stm = con.createStatement();

}

catch(Exception ex) {

System.err.println(ex);

}

}

As variáveis estão declaradas?
O arquivo jar é recomendável que vc faça da seguinte forma:

–> Imagine que o diretório root(raiz) da sua aplicação seja C:\AplicJava, dentro deste diretório vc cria uma pasta chamada lib e coloca o arquivo jar referente ao banco de dados que você está utilizando, seja ele oracle, sql server, hsqldb, mysql…

–> Se você não estiver usando uma ferramenta(eclipse, JCreator, …) você teve de fazer a seguinte configuração

  • setar o java_home: diretório onde o JDK está instalado
    ex: C:\j2sdk1.4.2_06(esta assim na minha máquina)
  • setar o classpath: aponta para o diretório lib dentro do diretório acima
  • setar o path: aponta para o diretório bin dentro do java_home

–> Se não fez isso, recomento que o faça

Voltando ao assunto, coloque o jar dentro do lib que eu citei, adicione o caminho físico do jar dentro do seu classpath(deve ser por isso que está dando o erro) e faça o teste.

Qual o seu windows?

Z

eu estou usando o win XP Pro
sim, as variaveis foram declaradas.
eu uso o eclipse…

ae meu codigo completo:

import javax.swing.*;
import java.awt.*;
import java.util.Calendar;
import java.awt.event.*;
import java.text.*;
import java.util.Date;
import java.sql.*;
import org.apache.xml.utils.synthetic.Class;

public class SistemaLocadora extends JFrame &#123;
	private JPanel PainelCentral,PainelStatus,PainelEsq,
				   PainelCent,PainelDir;
	private JMenuBar mbPrincipal;
	private JMenu mArquivo,mLocacao,mRelatorio,mSobre,
				  mNovo,mExclui,mAltera,mConsulta;
	private JMenuItem miNovoCli,miNovoTit,miExcluiCli,
					  miExcluiTit,miAlteraCli,miAlteraTit,
					  miConsultaCli,miConsultaTit,miNovaLoc,
					  miExcluiLoc,miAlteraLoc,miConsultaLoc,
					  miReserva,miRelatCli,miRelatTit,miSair;
	private Container c = getContentPane&#40;&#41;;
	private JLabel lbData,lbHora,lbOperador;
	private String data1,hora1;
	private Timer timer;
	private int dia,mes,ano;
	private UIManager.LookAndFeelInfo&#91;&#93; visual = UIManager.getInstalledLookAndFeels&#40;&#41;;
	private JToolBar tBar;
	private Connection con = null;
	private Statement stm = null;

	public SistemaLocadora&#40;String user&#41; &#123;
		super&#40;"&#58;&#58;Sistema de Locadora"&#41;;
		criaTela&#40;&#41;;
		
		//Calendar cd = Calendar.getInstance&#40;&#41;;
		/*data1 = cd.get&#40;Calendar.DATE&#41; +"/"+ cd.get&#40;Calendar.MONTH&#41; +"/"+
				cd.get&#40;Calendar.YEAR&#41;;*/
		/*dia = cd.get&#40;Calendar.DATE&#41;;
		mes = cd.get&#40;Calendar.MONTH&#41;;
		ano = cd.get&#40;Calendar.YEAR&#41;;
		if&#40;mes == 0&#41;
			mes = 01;
		if&#40;mes == 1 &#41;
			mes = 02;
		if&#40;mes == 2&#41;
			mes = 03;
		if&#40;mes == 3&#41;
			mes = 04;
		if&#40;mes == 4&#41;
			mes = 05;
		if&#40;mes == 5&#41;
			mes = 06;
		if&#40;mes == 6&#41;
			mes = 07;
		if&#40;mes == 7&#41;
			mes = 8;
		if&#40;mes == 8&#41;
			mes = 9;
		if&#40;mes == 9&#41;
			mes = 10;
		if&#40;mes == 10&#41;
			mes = 11;
		if&#40;mes == 11&#41;
			mes = 12;
		if&#40;dia &lt; 10&#41;
		    data1 = "0" + dia + " / " + mes + " / " + ano;
		if&#40;dia &gt;= 10&#41;
			data1 = dia + " / " + mes + " / " + ano;*/
		
		Date data = new Date&#40;&#41;;
		SimpleDateFormat estiloData = new SimpleDateFormat&#40;"dd/MM/yyyy"&#41;;
		
		lbData.setText&#40;estiloData.format&#40;data&#41;&#41;;
		
		timer = new Timer&#40;1000,new ActionListener&#40;&#41; &#123;
			public void actionPerformed&#40;ActionEvent e&#41;
			&#123;
				Calendar cd1 = Calendar.getInstance&#40;&#41;;
				int hora = cd1.get&#40;Calendar.HOUR_OF_DAY&#41;;
				int min = cd1.get&#40;Calendar.MINUTE&#41;;
				int seg = cd1.get&#40;Calendar.SECOND&#41;;
				
				hora1 = hora +" &#58; "+ min +" &#58; "+ seg;
				
				lbHora.setText&#40;hora1&#41;;
			&#125;
		&#125;
		&#41;;
		timer.start&#40;&#41;;
		lbOperador.setText&#40;"Operador&#58; "+user&#41;;
		conectBanco&#40;&#41;;
	&#125;

	/*public static void main&#40;String&#91;&#93; args&#41; &#123;
		SistemaLocadora sis = new SistemaLocadora&#40;&#41;;
		sis.setDefaultCloseOperation&#40;JFrame.EXIT_ON_CLOSE&#41;;
	&#125;*/
	
	public void criaTela&#40;&#41; &#123;
		try &#123;
			UIManager.setLookAndFeel&#40;visual&#91;2&#93;.getClassName&#40;&#41;&#41;;
		&#125;
		catch&#40;Exception e&#41; &#123;
			e.printStackTrace&#40;&#41;;
		&#125;
		
		mbPrincipal = new JMenuBar&#40;&#41;;
		setJMenuBar&#40;mbPrincipal&#41;;
		
		tBar = new JToolBar&#40;&#41;;
		tBar.setPreferredSize&#40;new Dimension&#40;50,30&#41;&#41;;
		c.add&#40;tBar, BorderLayout.NORTH&#41;;
		
		mArquivo = new JMenu&#40;"Arquivo"&#41;;
		mLocacao = new JMenu&#40;"Locação"&#41;;
		mRelatorio = new JMenu&#40;"Relatórios"&#41;;
		mSobre = new JMenu&#40;"Sobre"&#41;;
		mNovo = new JMenu&#40;"Novo"&#41;;
		mExclui = new JMenu&#40;"Excluir"&#41;;
		mAltera = new JMenu&#40;"Alterar"&#41;;
		mConsulta = new JMenu&#40;"Consulta"&#41;;
		
		miNovoCli = new JMenuItem&#40;"Cliente"&#41;;
		miNovoTit = new JMenuItem&#40;"Título"&#41;;
		miExcluiCli = new JMenuItem&#40;"Cliente"&#41;;
		miExcluiTit = new JMenuItem&#40;"Título"&#41;;
		miAlteraCli = new JMenuItem&#40;"Cliente"&#41;;
		miAlteraTit = new JMenuItem&#40;"Título"&#41;;
		miConsultaCli = new JMenuItem&#40;"Cliente"&#41;;
		miConsultaTit = new JMenuItem&#40;"Título"&#41;;
		miSair = new JMenuItem&#40;"Sair"&#41;;
		
		mArquivo.setMnemonic&#40;'A'&#41;;
		mLocacao.setMnemonic&#40;'o'&#41;;
		mRelatorio.setMnemonic&#40;'l'&#41;;
		mSobre.setMnemonic&#40;'b'&#41;;
		
		mbPrincipal.add&#40;mArquivo&#41;;
		mbPrincipal.add&#40;mLocacao&#41;;
		mbPrincipal.add&#40;mRelatorio&#41;;
		mbPrincipal.add&#40;mSobre&#41;;
		
		mArquivo.add&#40;mNovo&#41;;
		mNovo.add&#40;miNovoCli&#41;;
		mNovo.add&#40;miNovoTit&#41;;
		mArquivo.add&#40;mExclui&#41;;
		mExclui.add&#40;miExcluiCli&#41;;
		mExclui.add&#40;miExcluiTit&#41;;
		mArquivo.add&#40;mAltera&#41;;
		mAltera.add&#40;miAlteraCli&#41;;
		mAltera.add&#40;miAlteraTit&#41;;
		mArquivo.add&#40;mConsulta&#41;;
		mConsulta.add&#40;miConsultaCli&#41;;
		mConsulta.add&#40;miConsultaTit&#41;;
		mArquivo.addSeparator&#40;&#41;;
		mArquivo.add&#40;miSair&#41;;
		
		PainelCentral = new JPanel&#40;&#41;;
		PainelStatus = new JPanel&#40;&#41;;
		PainelEsq = new JPanel&#40;&#41;;
		PainelCent = new JPanel&#40;&#41;;
		PainelDir = new JPanel&#40;&#41;;
		PainelStatus.setLayout&#40;new BorderLayout&#40;1,1&#41;&#41;;
		
		PainelCentral.setBorder&#40;BorderFactory.createLineBorder&#40;Color.LIGHT_GRAY&#41;&#41;;
		c.add&#40;PainelCentral&#41;;
		
		PainelStatus.setBorder&#40;BorderFactory.createEtchedBorder&#40;0&#41;&#41;;
		c.add&#40;PainelStatus,BorderLayout.SOUTH&#41;;
		
		PainelDir.setBorder&#40;BorderFactory.createLineBorder&#40;Color.GRAY&#41;&#41;;
		PainelDir.setPreferredSize&#40;new Dimension&#40;75,20&#41;&#41;;
		lbHora = new JLabel&#40;""&#41;;
		PainelDir.add&#40;lbHora&#41;;
		PainelDir.setToolTipText&#40;"Dia da semana, data"&#41;;
		PainelStatus.add&#40;PainelDir,BorderLayout.EAST&#41;;
		
		PainelCent.setBorder&#40;BorderFactory.createLineBorder&#40;Color.GRAY&#41;&#41;;
		PainelCent.setPreferredSize&#40;new Dimension&#40;50,25&#41;&#41;;
		lbData = new JLabel&#40;"",JLabel.CENTER&#41;;
		PainelCent.add&#40;lbData&#41;;
		PainelStatus.add&#40;PainelCent,BorderLayout.CENTER&#41;;
		
		PainelEsq.setLayout&#40;new GridLayout&#40;1,0&#41;&#41;;
		PainelEsq.setBorder&#40;BorderFactory.createLineBorder&#40;Color.GRAY&#41;&#41;;
		PainelEsq.setPreferredSize&#40;new Dimension&#40;640,20&#41;&#41;;
		lbOperador = new JLabel&#40;""&#41;;
		lbOperador.setForeground&#40;Color.BLUE&#41;;
		lbOperador.setFont&#40;new Font&#40;"Serif",Font.BOLD,13&#41;&#41;;
		PainelEsq.add&#40;lbOperador&#41;;
		PainelStatus.add&#40;PainelEsq,BorderLayout.WEST&#41;;
		
		setSize&#40;800,600&#41;;
		
		//inicio da função que faz com que a tela apareça no meio
		//do video
		Dimension video = Toolkit.getDefaultToolkit&#40;&#41;.getScreenSize&#40;&#41;;
		Dimension video2= video.getSize&#40;&#41;;
		Dimension form = getSize&#40;&#41;;
		setLocation&#40;&#40;video2.width - form.width&#41;/2,&#40;video2.height - form.height&#41;/2&#41;;
		//fim da função
		
		show&#40;&#41;;
	&#125;
	
	public void conectBanco&#40;&#41; &#123;
		
		try &#123;
			Class.forName&#40;"com.mysql.jdbc.Driver"&#41;.newInstance&#40;&#41;;
			con = DriverManager.getConnection&#40;"jdbc&#58;mysql&#58;//localhost&#58;3306/cadastro","root",""&#41;;
			stm = con.createStatement&#40;&#41;;
			stm.execute&#40;"SELECT * FROM cadastros"&#41;;
			ResultSet rs = stm.getResultSet&#40;&#41;;
			while&#40;rs.next&#40;&#41;&#41; &#123;
				int cod = rs.getInt&#40;"Codigo"&#41;;
				System.out.println&#40;"Codigo&#58;"+cod&#41;;
			&#125;
		&#125;
		catch&#40;Exception ex&#41; &#123;
			System.err.println&#40;ex&#41;;
		&#125;
	&#125;
&#125;
Z

ae pessoal, ja resolvi o problema…

valeu!!!

Criado 13 de dezembro de 2004
Ultima resposta 15 de dez. de 2004
Respostas 5
Participantes 2