Urgente Ajuda uso da Conexao MYSQL

11 respostas
Adriana_Java

Ola a todos ,

Estou ainda com dificuldades para testar o mysql na minha maquina : Ja setei o classpath :

.;C:\j2sdk1.4.2_08\lib\tools.jar;C:\j2sdk1.4.2_08\lib\dt.jar;C:\j2sdk1.4.2_08\lib\htmlconverter.jar;C:\j2eesdk-1_4_01\lib\j2ee.jar;C:\j2eesdk-1_4_01\lib\j2ee-ri-svc.jar;C:\j2eesdk-1_4_01\lib\ejb10deployment.jar;C:\j2eesdk-1_4_01\lib\jhall.jar;C:\mysql-connector-java-3.1.10\mysql-connector-java-3.1.10-bin-g.jar[b]
Uso XP coloquei a seguinte classe de teste no projeto Tomcat do Eclipse

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JDBCExemplo {
public static void main(String[] args) {

try {
Class.forName("com.mysql.jdbc.Driver");
Connection con =
DriverManager.getConnection
("jdbc:mysql://3306/test"); // Duvida é esse localhost que eu coloco ou 8080 ????

System.out.println("Conectado!");
con.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
e Deu o erro depois do Run do Eclipse : java.lang.NoClassDefFoundError: org/aspectj/lang/Signature
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at JDBCExemplo.main(JDBCExemplo.java:10)
Exception in thread "main"
Depois fui para o prompt do Xp e rodei a mesma classe e deu o erro tbm :
java.lang.NoClassDefFoundError: org/aspectj/lang/Signature
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at JDBCExemplo.main(JDBCExemplo.java:10)
Exception in thread "main"

Alguem me ajuda o que será que está faltando nao estou enxergando a falha .......obrigada[code][u]

11 Respostas

R

8080 é a porta do tomcat, não a do mysql, use o seguinte:

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/nomeDoBanco?user=usuario&password=senha");
R

E não se esqueça de colocar o jar do driver do mysql no WEB-INF/lib da sua aplicação, ou colocar no TOMCAT_HOME/common/lib

:smiley:

LuizAvila

1 - Você está fazendo um programa que não vai rodar no tomcat, e sim no console do SO.

public static void main(String[] args) {

Portanto esqueça o tomcat nesse momento.

2 - A URL está errada não é:

jdbc:mysql://3306/test

e sim

jdbc:mysql://localhost:3306/test

levando em conta que a tua base de dados chama-se test
a porta é 3306 porta do servidor de banco de dados MySQL, novamente não confunda com o Tomcat Ainda.

Dê uma olhada no link abaixo é uma documentação do Driver de JDBC do MySQL

http://dev.mysql.com/doc/connector/j/en/index.html

Agroa o problema de quando vc executa no Eclipse é que o projeto não enxerga essas classes, apesar de elas estarem sendo definidas no classpath. Você deve indicar para o Eclipse o caminho de tuas classes. Para isso clique com o botão direito no teu projeto e vá em properties, depois clique em “java build path”, acesse então a aba libraries e adicione a classe do JDBC do MySQL pode ser tanto clicando em “Add JARs” ou em “Add External JARs”

Adriana_Java
Olá ,

 Vamos    coloquei o jar do driver do mysql no TOMCAT_HOME/common/lib e sobre este passo ja fiz tbm : Connection conn DriverManager.getConnection("jdbc:mysql://localhost/nomeDoBanco?user=usuario&password=senha");
java.lang.NoClassDefFoundError: org/aspectj/lang/Signature

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:141)

at JDBCExemplo.main(JDBCExemplo.java:10)

Exception in thread mainE no  console do SO dá tbm o mesmo erro

Sinceridade eu nao sei mais .Voces conhecem algum livro de MYSQL que mostre passo a passo como usar o JDBC e com exercicios ? Desde já agradeço a ajuda de vcs mas esta meio complicado .
Abraços
Mauricio_Linhares

Você tem que colocar o arquivo aspectjrt.jar que está na pasta “lib” do arquivo que você baixou da página do MySQL no seu classpath.

E

Vamos por partes, já tive essa experiência com Eclipse/MySQL

1- Verificar se o serviço do MySQL esta rondando.

2- Importar as classes do MySQL para dentro do eclipse.

Fazendo um Add JARs para o build path ou fazendo um Add External JARs… (prefiro esse último)

Para isso clique no nome da aplicação botão direito do mouse é a última opção (Properties)

Vai abrir uma janela, clique em Java Build Path, depois aba Libraries, veja os dois primeiros botões Add JARs… e Add External JARs…

Segue um código exemplo

/* Implementação do pattern Singleton para conexão a banco de dados */

package br.zj8t.patterns.singleton.DBConnection;

import java.sql.*;

public final class DBConnection {

	//Referência para instância única
	private static Connection instance = null;

	//Driver
	//private static String DRIVER_ODBC = "sun.jdbc.odbc.JdbcOdbcDriver";
	private static String DRIVER_ODBC = "org.gjt.mm.mysql.Driver";

	//Banco 
	//private static final String BANCO_ODBC = "jdbcdbc:banco";
	
	//	 Criando a conexão com o Banco de Dados
	String serverName = "localhost";
	String mydatabase = "Integra";
	String url = "jdbc:mysql://" + serverName + "/" + mydatabase; // a JDBC url
	String username = "root";
	String password = "sql";

	//Construtor privado
	private DBConnection() throws ClassNotFoundException, SQLException {
		try {
			Class.forName(DRIVER_ODBC);
			System.out.println("[Driver loaded]");

			instance = DriverManager.getConnection(url, username, password);
			System.out.println("[Connection done]");
			System.out.println("[Connection obtained]");

		} catch (ClassNotFoundException e) {

			System.err.println("[Class not found]");

		} catch (SQLException e) {

			System.err.println("[Connection erro]");

		}

	}

	//Fornece acesso a instância única
	public static Connection getConnection() throws ClassNotFoundException,
			SQLException {

		if (instance == null) {
			//Lazy instantation:só quando preciso
			new DBConnection();
		}

		//Retorna a instância única da conexão
		return instance;

	}

	//Encerra a conexão adequadamente
	public static void shutdown() throws ClassNotFoundException, SQLException {

		if (instance != null) {

			instance.close();
			instance = null;
			System.out.println("[Connection closed]");

		}
	}
}
Adriana_Java
Obrigada pela ajuda  depois pra rodar esta aplicacao ja segui os passos  acima tenho que dar um run no Eclipse ....e  com isso ja visualizo ?

 Adriana
tRuNkSnEt

Se voce estiver fazendo a consulta correta e exibindo-a corretamente. Sim. :mrgreen:

Dica.

Leia esse livro, é de leitura bem fácil é rápida porém indispensável.

JDBC e Java: Programação para Banco de Dados
GEORGE REESE

A

calma adriana, parece que voce esta muito apavorada, depois de tudo isso, crie uma classe de conexao, organize suas pastas e vc nao precisa sempre estar repetindo todas essas linhas de codigo, basta vc instancia-la sempre que for usar em uma outra classe, o codigo de Escher esta bom, mas se voce procurar aqui no forumpodera encontrar algo mais simples !
so uma dica

Fox_McCloud

Veja isso:

/**
 * DBConnection - conexao de banco
 * @(#)DBConnection Versão 1.0
 * @author McCloud
 * @version 1.0
*/
import java.util.*;
import java.sql.*;

public class DBConnection
{
	private Connection connection;
  	private Statement statement;

  	private String driver="com.mysql.jdbc.Driver";
  	private String url="jdbc:mysql://localhost/tabela";
  	private String login="root";
  	private String password="senha";

  	public DBConnection()
  	{
		open();
  	}

	public DBConnection(Properties props)
	{
		this.driver	= props.getProperty("driver");
		this.url	= props.getProperty("url");
		this.login	= props.getProperty("login");
		this.password	= props.getProperty("password");
		open();
	}

  	public DBConnection(String driver,String url,String login,String password)
	{
		this.driver	= driver;
		this.url	= url;
		this.login	= login;
		this.password	= password;
		open();
	}

	public static DBConnection getInstance()
	{
		return new DBConnection();
	}

  	public void open()
  	{
		try
		{
	  		Class.forName(driver);
		}
		catch (ClassNotFoundException e)
		{
			System.err.println("Error = " + e);
		}

		try
		{
	  		connection = DriverManager.getConnection(url, login, password);
	  		statement = connection.createStatement();
		}
		catch (SQLException e)
		{
	  		System.err.println("Error = " + e);
	  		connection = null;
		}
  	}

  	/** Efetua leitura do objeto de Connection
   	*
   	* @return objeto Connection
   	*/
  	public Connection getConnection()
  	{
    		return connection;
  	}

  	/** Efetua commit no banco
   	*
   	*/
  	public void commit() throws SQLException
  	{
    		connection.commit();
  	}

  	/** Efetua roolback no banco
   	*
   	*/
  	public void rollback() throws SQLException
  	{
    		connection.rollback();
  	}

  	/** Efetua commit no banco
   	*
   	* @param  autoCommit - estabelece autocommit
   	*/
  	public void setAutoCommit(boolean autoCommit) throws SQLException
  	{
    		connection.setAutoCommit(autoCommit );
  	}

  	/** Retorna uma consulta do banco de dados
   	*
   	* @param  String contendo a query
   	* @return cursor da query
   	*/
  	public ResultSet executeQuery(String sql) throws SQLException
  	{
    		return statement.executeQuery(sql);
  	}

  	/** Executa comando SQL
   	*
   	* @param  String contendo comando SQL a ser executado
   	* @return Status da execução do comando
   	*/
  	public int executeUpdate(String sql) throws SQLException
  	{
    		return statement.executeUpdate(sql);
  	}

  	/** Fecha conexão ao desalocar o objeto
   	*
   	*/
  	public void dispose()
  	{
    		try
    		{
      			connection.close();
    		}
    		catch (SQLException e)
    		{ }
  	}
}
import java.sql.*;

public class Teste {

	public Teste() throws SQLException{
		DBConnection classeConexao=new DBConnection();
		Connection conexao=classeConexao.getConnection();
		
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		StringBuffer sql = new StringBuffer();
		sql.append("SELECT * FROM TESTE");
		
		try{
			pstmt = conexao.prepareStatement(sql.toString());
		}
		catch(Exception e){
			e.printStackTrace();
		}
		
		rs=pstmt.executeQuery();
		while(rs.next()){
			System.out.println(""+rs.getInt("ID"));
			System.out.println(rs.getString("NOME"));
		}
		
	}
	
	public static void main(String args[]) throws SQLException{
		Teste teste=new Teste();
	}
	
}
Adriana_Java

OBRIGADA PELAS DICAS !!!

ADRIANA

Criado 31 de julho de 2005
Ultima resposta 4 de ago. de 2005
Respostas 11
Participantes 8