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]
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
LuizAvila
1 - Você está fazendo um programa que não vai rodar no tomcat, e sim no console do SO.
publicstaticvoidmain(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
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”
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
Escher
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 */packagebr.zj8t.patterns.singleton.DBConnection;importjava.sql.*;publicfinalclassDBConnection{//Referência para instância únicaprivatestaticConnectioninstance=null;//Driver//private static String DRIVER_ODBC = "sun.jdbc.odbc.JdbcOdbcDriver";privatestaticStringDRIVER_ODBC="org.gjt.mm.mysql.Driver";//Banco //private static final String BANCO_ODBC = "jdbcdbc:banco";// Criando a conexão com o Banco de DadosStringserverName="localhost";Stringmydatabase="Integra";Stringurl="jdbc:mysql://"+serverName+"/"+mydatabase;// a JDBC urlStringusername="root";Stringpassword="sql";//Construtor privadoprivateDBConnection()throwsClassNotFoundException,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(ClassNotFoundExceptione){System.err.println("[Class not found]");}catch(SQLExceptione){System.err.println("[Connection erro]");}}//Fornece acesso a instância únicapublicstaticConnectiongetConnection()throwsClassNotFoundException,SQLException{if(instance==null){//Lazy instantation:só quando precisonewDBConnection();}//Retorna a instância única da conexãoreturninstance;}//Encerra a conexão adequadamentepublicstaticvoidshutdown()throwsClassNotFoundException,SQLException{if(instance!=null){instance.close();instance=null;System.out.println("[Connection closed]");}}}
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
asdhfsd87623
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*/importjava.util.*;importjava.sql.*;publicclassDBConnection{privateConnectionconnection;privateStatementstatement;privateStringdriver="com.mysql.jdbc.Driver";privateStringurl="jdbc:mysql://localhost/tabela";privateStringlogin="root";privateStringpassword="senha";publicDBConnection(){open();}publicDBConnection(Propertiesprops){this.driver=props.getProperty("driver");this.url=props.getProperty("url");this.login=props.getProperty("login");this.password=props.getProperty("password");open();}publicDBConnection(Stringdriver,Stringurl,Stringlogin,Stringpassword){this.driver=driver;this.url=url;this.login=login;this.password=password;open();}publicstaticDBConnectiongetInstance(){returnnewDBConnection();}publicvoidopen(){try{Class.forName(driver);}catch(ClassNotFoundExceptione){System.err.println("Error = "+e);}try{connection=DriverManager.getConnection(url,login,password);statement=connection.createStatement();}catch(SQLExceptione){System.err.println("Error = "+e);connection=null;}}/** Efetua leitura do objeto de Connection * * @return objeto Connection */publicConnectiongetConnection(){returnconnection;}/** Efetua commit no banco * */publicvoidcommit()throwsSQLException{connection.commit();}/** Efetua roolback no banco * */publicvoidrollback()throwsSQLException{connection.rollback();}/** Efetua commit no banco * * @param autoCommit - estabelece autocommit */publicvoidsetAutoCommit(booleanautoCommit)throwsSQLException{connection.setAutoCommit(autoCommit);}/** Retorna uma consulta do banco de dados * * @param String contendo a query * @return cursor da query */publicResultSetexecuteQuery(Stringsql)throwsSQLException{returnstatement.executeQuery(sql);}/** Executa comando SQL * * @param String contendo comando SQL a ser executado * @return Status da execução do comando */publicintexecuteUpdate(Stringsql)throwsSQLException{returnstatement.executeUpdate(sql);}/** Fecha conexão ao desalocar o objeto * */publicvoiddispose(){try{connection.close();}catch(SQLExceptione){}}}
importjava.sql.*;publicclassTeste{publicTeste()throwsSQLException{DBConnectionclasseConexao=newDBConnection();Connectionconexao=classeConexao.getConnection();PreparedStatementpstmt=null;ResultSetrs=null;StringBuffersql=newStringBuffer();sql.append("SELECT * FROM TESTE");try{pstmt=conexao.prepareStatement(sql.toString());}catch(Exceptione){e.printStackTrace();}rs=pstmt.executeQuery();while(rs.next()){System.out.println(""+rs.getInt("ID"));System.out.println(rs.getString("NOME"));}}publicstaticvoidmain(Stringargs[])throwsSQLException{Testeteste=newTeste();}}