conexão do mysql com java

17 respostas
R

pessoal , estou tentando conectar o mysql com o java e não estou conseguindo, abaixo está o erro que aparece ao fazer a conexão.
obrigadão

Regina

C:\SGCC.java:17: cannot resolve symbol
symbol : variable localhost
location: class SGCC
String url = “jdbc:mysql://” + localhost + “/” + sgcc; // a JDBC url
^
C:\SGCC.java:17: cannot resolve symbol
symbol : variable sgcc
location: class SGCC
String url = “jdbc:mysql://” + localhost + “/” + sgcc; // a JDBC url
^
2 errors

Process completed.

17 Respostas

B

Ola,

Vc está usando as variáveis “localhost” e “SGCC” sendo que elas não foram declaradas…

Isto são variáveis ou o que deve estar na url mesmo? que se for o que deve estar na url é só mandar a string direto, não colocando as ‘"’… ex.: String url = "jdbc:mysql://localhost/sgcc"; // a JDBC url

C
private static Connection conexao =  null;

private static String url= jdbc:mysql://localhost:3306/reflexao;

private static String user = root, pass = “”;
public static Connection getConnection(){

try{	

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

if( conexao == null){

conexao = DriverManager.getConnection(url,user,pass);

}

}

catch(Exception e){

//tratar erros…

}

return conexao;

}
P

Seu codigo nao ta muito legal!

Vai aki um exemplo:

Class.forName(“org.gjt.mm.mysql.Driver”);
Connection c3=DriverManager.getConnection(“jdbc:mysql://localhost:3306/estoque”,“root”,“1”);

P

segue um outro exemplo!
declare as variaveis e depois passe por parametro!

package fontes;

import java.sql.*;

public class Conexao {
    
    private static Conexao instancia;
    private Connection conexao;
    
    private String servidor = "localhost";
    private String nomeBanco = "NOME_BANCOl";
    private String usuario = "SEU_USUARIO";
    private String senha = "SUA_SENHA";
    
    public static Conexao get() throws Exception {
        try {
            if (instancia == null){
                instancia = new Conexao();
            }
            return instancia;
        } catch(Exception e) {
            throw new Exception("Ocorreu um erro ao conectar com o banco de dados");
        }
    }
    
    public Conexao() throws Exception {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        conexao = DriverManager.getConnection("jdbc:mysql://"+servidor+"/"+nomeBanco, usuario, senha);
    }

Abs.

P

Teste e veja como fica!
Abs

R

Olá fiz o teste de conexão utilizando o código abaixo, mas na hora de execução apareceu a seguinte mensagem de erro:

exception in thread “main” java.lang.NoSuchMethoError:main
Press any key to continue…

Por favor estou precisando muito resolver isso…depende de um semestre perdido…helpppppppp. obrigada

código utilizado para a conexão

import java.sql.*;

public class Conexao {

private static Conexao instancia;
private Connection conexao;

private String servidor = "localhost";
private String nomeBanco = "sgcc";
private String usuario = "aluno";
private String senha = "aluno";

public static Conexao get() throws Exception {
    try {
        if (instancia == null){
            instancia = new Conexao();
        }
        return instancia;
    } catch(Exception e) {
        throw new Exception("Ocorreu um erro ao conectar com o banco de dados");
    }
}

public Conexao() throws Exception {
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    conexao = DriverManager.getConnection("jdbc:mysql://"+servidor+"/"+nomeBanco, usuario, senha);
}
}
C

Tá faltando o método principal main para a execução do seu código.

R

olá obrigada por responder …mas como faço esse método?

Regina

C
mport java.sql.*;

public class Conexao {

private static Conexao instancia;
private Connection conexao;

private String servidor = "localhost";
private String nomeBanco = "sgcc";
private String usuario = "aluno";
private String senha = "aluno";

public static Conexao get() throws Exception {
try {
if (instancia == null){
instancia = new Conexao();
}
return instancia;
} catch(Exception e) {
throw new Exception("Ocorreu um erro ao conectar com o banco de dados");
}
}

public Conexao() throws Exception {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conexao = DriverManager.getConnection("jdbc:mysql://"+servidor+"/"+nomeBanco, usuario, senha);
}

 public static void main(String[] args) {

  Conexao conexao = new Conexao();
 
  conexao = get();
 
 }

}
R

fiz o teste mas ...continua ocorrendo erro..

unreported exception java.lang.Exception;must be caught or declared to be thrown conexão.java line 32

unreported exception java.lang.Exception;must be caught or declared to be thrown conexão.java line 34

obrigada
Regina

"Carneiro":
mport java.sql.*;

public class Conexao {

private static Conexao instancia;
private Connection conexao;

private String servidor = "localhost";
private String nomeBanco = "sgcc";
private String usuario = "aluno";
private String senha = "aluno";

public static Conexao get() throws Exception {
try {
if (instancia == null){
instancia = new Conexao();
}
return instancia;
} catch(Exception e) {
throw new Exception("Ocorreu um erro ao conectar com o banco de dados");
}
}

public Conexao() throws Exception {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conexao = DriverManager.getConnection("jdbc:mysql://"+servidor+"/"+nomeBanco, usuario, senha);
}

 public static void main(String[] args) {

  Conexao conexao = new Conexao();
 
  conexao = get();
 
 }

}
R

Fiz o teste mas....ocorreu o seguinte erro:

unreported exception java.lang.Exception;must be caught or declared to be thrown conexão.java line 32
unreported exception java.lang.Exception;must be caught or declared to be thrown conexão.java line 34.

obrigada,
Regina

"Carneiro":
mport java.sql.*;

public class Conexao {

private static Conexao instancia;
private Connection conexao;

private String servidor = "localhost";
private String nomeBanco = "sgcc";
private String usuario = "aluno";
private String senha = "aluno";

public static Conexao get() throws Exception {
try {
if (instancia == null){
instancia = new Conexao();
}
return instancia;
} catch(Exception e) {
throw new Exception("Ocorreu um erro ao conectar com o banco de dados");
}
}

public Conexao() throws Exception {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conexao = DriverManager.getConnection("jdbc:mysql://"+servidor+"/"+nomeBanco, usuario, senha);
}

 public static void main(String[] args) {

  Conexao conexao = new Conexao();
 
  conexao = get();
 
 }

}
C

Você tem que modificar essa linha:

para:

[/code]

J

Porque vc não usa 2 classes, uma pra vc usar e outra só para testar?
Talvez isso te ajude

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
 * @author  java_blues
 */
public class ConnectionFactory2 {
	static{
		try{
			Class.forName("com.mysql.jdbc.Driver");
		}
		catch(ClassNotFoundException e){
		        System.out.println(e.getMessage());
		        e.printStackTrace();
        }
	}
	
    private static Connection connection;
       
	public static Connection getConnection(String database, String user, String pass)throws SQLException{
		/*Se algum dia vc precisar de uma conexão remota basta trocar o localhost pelo IP
		e a porta do servidor separando-os com ':' sem aspas */
		connection = DriverManager.getConnection("jdbc:mysql://localhost/" + database, 											user, pass);
		
		
		return connection;
	}
}

Você compila a classe e deixa ela quietinha lá.
E roda essa pra poder testar…

import java.sql.*;
/**
*
* @author java_blues 
*/
public class ConnectionTester{
	private Connection conexao;
	private Statement stmt;
	private ResultSet rs;
	public void testaConexao()throws SQLException{
		try{
		/*Note que o metodo getConnection fornece conexões para qualquer banco do MySQL,
		bastando trocar os parametros */
			conexao = ConnectionFactory2.getConnection("sgcc","aluno","aluno");
			stmt = 	conexao.createStatement();
                        //use uma consulta sua
			rs = stmt.executeQuery("SELECT * FROM TABELA_ALUNOS");
			while(rs.next()){
                                //use um campo de sua tabela
				System.out.println(rs.getString("NOME_ALUNO"));
								
			}
		}
		catch(SQLException s){
			s.printStackTrace();
		}
		finally{
		/*Nao se esqueca de liberar os recursos do banco no bloco finally
		pois assim, aconteça o que acontecer não ficará nenhuma conexao 'pendurada' no banco
		
		*/
			rs.close();
			stmt.close();
			conexao.close();
		
		}
		
	}
	public static void main(String[] args){
		ConnectionTester teste = new ConnectionTester();
		try{
			teste.testaConexao();
		}
		catch(SQLException e){
			e.printStackTrace();
		}
		
	}
		
}

O bom é que você pode aproveitar a classe ConnectionFactory2 pra qualquer
outra conexão MySQL no futuro.

P

Seguinte Regina, esse código que eu usei e postei aqui com exemplo (parte) deu certo!!!

Segue o código completo, teste e mude apenas os nomes de usuario e senha do seu banco, além do nome do banco é claro e tbm as variaveis declaradas!

package fontes;

import java.sql.*;

public class Conexao {
    
    private static Conexao instancia;
    private Connection conexao;
    
    private String servidor = "localhost";
    private String nomeBanco = "SEU_BANCO";
    private String usuario = "SEU_USUARIO";
    private String senha = "SUA_SENHA";
    
    public static Conexao get() throws Exception {
        try {
            if (instancia == null){
                instancia = new Conexao();
            }
            return instancia;
        } catch(Exception e) {
            throw new Exception("Ocorreu um erro ao conectar com o banco de dados");
        }
    }
    
    public Conexao() throws Exception {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        conexao = DriverManager.getConnection("jdbc:mysql://"+servidor+"/"+nomeBanco, usuario, senha);
    }
    
    public static ResultSet ler(String sql) throws Exception {
        Statement st = Conexao.get().getConexao().createStatement();
        System.out.println(sql);
        ResultSet rs = st.executeQuery(sql);
        return rs;
    }
    
    public void atualizar(String sql) throws Exception {
        Statement st = Conexao.get().getConexao().createStatement();
        st.executeUpdate(sql);
        System.out.println(sql);
    }
    
    public java.sql.Connection getConexao() {
        return conexao;
    }
    
    
}

Abs.

R

Fiz as modificações da linha com o comando que enviou… e dessa vez obtive êxito … que dizer apareceu uma frase de espera… tem que aparecer alguma frase de conexao com exito, apesar que no codigo nao esta mandando enviar nem uma mensagem.

Bom… abrir o programa e realizei um cadastro mas não salvou no banco ocorrendo o erro abaixo, será que isso tem haver com a conexão ou é o programa que esta com bug, se ainda puder ajudar … obrigada.

java.lang.NullPointerException

at com.jgoodies.forms.layout.CadastroFornecedor.GravarFornecedor(Cadastr

oFornecedor.java:332)

at com.jgoodies.forms.layout.CadastroFornecedor.actionPerformed(Cadastro

Fornecedor.java:280)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17

86)

at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra

ctButton.java:1839)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel

.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258

)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL

istener.java:245)

at java.awt.Component.processMouseEvent(Component.java:5100)

at java.awt.Component.processEvent(Component.java:4897)

at java.awt.Container.processEvent(Container.java:1569)

at java.awt.Component.dispatchEventImpl(Component.java:3615)

at java.awt.Container.dispatchEventImpl(Container.java:1627)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483

)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
    at java.awt.Container.dispatchEventImpl(Container.java:1613)
    at java.awt.Window.dispatchEventImpl(Window.java:1606)
    at java.awt.Component.dispatchEvent(Component.java:3477)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh

read.java:201)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre

ad.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
<pre><code>    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

    at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Regina [quote=“Carneiro”]Você tem que modificar essa linha:
para:
C

Coloque o código aqui dessa linha: at com.jgoodies.forms.layout.CadastroFornecedor.GravarFornecedor(Cadastr
oFornecedor.java:332)

R

“Carneiro”:
Coloque o código aqui dessa linha: at com.jgoodies.forms.layout.CadastroFornecedor.GravarFornecedor(Cadastr
oFornecedor.java:332)

Obrigadão por ajudar a conseguir fazer a conexão do mysql com o java.

abraços,

Criado 16 de abril de 2007
Ultima resposta 23 de abr. de 2007
Respostas 17
Participantes 7