Conectar por uma telinha

pessoal,

tenho uma tela de autenticação para o banco,
e quero passar os parametros de conexão para minha classe de conexao…

observem meu codigo:

[code]

public static Connection getConnectionTarget() throws SQLException {

	try {
		
		Class.forName("oracle.jdbc.driver.OracleDriver");
		return DriverManager.getConnection("jdbc:oracle:thin:@"+ con.getHost() +":"+ con.getPort() +":"+ con.getSID()+"",con.getUsername(),con.getPassword()); 
		
	} catch (ClassNotFoundException e) {
		throw new SQLException(e.getMessage());
	}
}[/code]

agora a action do botão:

[code]
public void okButtonActionPerformed(java.awt.event.ActionEvent evt) {

	try {
		Conn con = new Conn();
		con.setUsername(textFieldUsername.getText());
		con.setPassword(textFieldPassword.getPassword().toString());
		con.setHost(textFieldHost.getText());
		con.setPort(textFieldPort.getText());
		con.setSID(textFieldSID.getText());
		
		ConnectionFactory connection = new ConnectionFactory();
		connection.getConnectionTarget();
		
	} catch (SQLException e) {
		e.printStackTrace();
	}
	
}[/code]

como faço para que os dados da minha action entrem na minha ConnectionFactory ?

obrigado

Eu faco um pouco diferente do seu :

A Factory eu fiz assim :


import java.sql.*;
import org.apache.commons.logging.impl.SimpleLog;

public class ConnFactory  {
	
	public static Connection openConnection(String username,
				String password, String host, String db ) throws SQLException { 
		
		Connection conn = null;
		
		SimpleLog log = new SimpleLog("ConnFactory.class");
							
		try {
            
            Class.forName("com.mysql.jdbc.Driver");
            
            conn = DriverManager.getConnection("jdbc:mysql://" + host + "/" + db + "?user=" + username +  
                                              "&password=" + password);
            
        } catch (ClassNotFoundException e) {
           	log.error("Class not found", e);        	
        }
        
        return conn;		
		
	}
	
	
}

Para connectar :


Connection con = ConnFactory.openConnection(user, password, host, db);

Acho que no evento do botao vc poderia pegar os valores digitas nos textfields e passar para esse metodo.

//Daniel

entendi…
passei os parametros agora!

só uma duvida agora…
ta dando denied… eu faço assim mesmo pra passar uma senha ?

con.setPassword(textFieldPassword.getPassword().toString());  

nao precisa do toString()

//Daniel

nao nao… é um JPasswordField ( pra não mostrar a senha )

textFieldPassword = new JPasswordField(20);
con.setPassword(textFieldPassword.getPassword().toString());

eu adicionei o metodo toString, justamente pq la na minha classe Conn, o objeto Password é String

era pra ta certo não ? pelo menos em teoria…

Entao, tira o toString.

Vc vai ter que mudar o metodo openConnection ao inves de recever String password receber char[] password.

ou entao vc da um jeito de transformar esse char[] pra String e depois passar pro metodo de conexao.

fazendo String.copyValueOf(password)


con.setPassword(String.getValueOf(textFieldPassword.getPassword());

então é isso aí!
o meu getPassword retorna um char[], daí transformo ele pra String!

con.setPassword(String.copyValueOf(textFieldPassword.getPassword()));

beleza!
Valew Daniel!

agora quebrando cabeça: vou salvar essa conexão! pra poder fazer um monte de coisa com ela ainda…
ela fica setada lá enquanto meu programa todinho roda ?
existe algum metodo pra isso !?