Desenvolvimento Web

7 respostas
gisa_screen

ola!

Para utilizar o Bancos de dados em uma aplicação preciso usar uma classe somente pra fazer a conexão? ou coloco dentro de qualquer outra classe da aplicação os códigos de conexão?

agradeço…

7 Respostas

Thiago_Peter

É melhor criar uma classe só que centraliza essa conexão.
Procure entender o padrão factory.

gisa_screen

tenho uma outra duvida eu quero adicionar um tabela de links , só que estou usando o visual class no eclipse, o que posso utilizar??

vlw

roland

Que tal usar um GenericDAO. Isso pensando que vc vai usar JDBC. Coloquei um exemplo abaixo de como faço.
O interessante neste modelo é vc usar uma classe DAO abstrata e nos outros DAOs vc simplesmente pode estende a GenericDAO.

Valeu qlqer coisa manda ai.

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Samuel
 */
public abstract class GenericDAO {

	private static final long serialVersionUID = 1L;

	public Connection getConnection() {
		try {
			Class.forName("org.apache.derby.jdbc.ClientDriver");
			Connection cx = DriverManager.getConnection("jdbc:derby://localhost/petshop", "petshop", "petshop");
			return cx;
		} catch (Exception ex) {
			Logger.getLogger(GenericDAO.class.getName()).log(Level.SEVERE, null, ex);
			return null;
		}
	}

	public Statement getStatement() throws SQLException {
		return getConnection().createStatement();
	}

	public PreparedStatement getStatement(String st) throws SQLException {
		return getConnection().prepareStatement(st);
	}

	public ResultSet executeQuery(String query, Object... params) throws SQLException {
		PreparedStatement ps = getStatement(query);
		for (int i = 0; i < params.length; i++) {
			ps.setObject(i + 1, params[i]);
		}
		return ps.executeQuery();
	}

	public int executeCommand(String query, Object... params) throws SQLException {
		PreparedStatement ps = getStatement(query);
		for (int i = 0; i < params.length; i++) {
			try {
				ps.setObject(i + 1, params[i]);
			} catch (Exception e) {
				System.out.println("Error to try " + i + " white value " + params.toString());
			}

		}
		int result = ps.executeUpdate();
		ps.close();
		return result;
	}

}
gisa_screen

Valeu colega pelo código…

Entao eu terei que criar um DAO para cada classe???

LPJava

dar uma olhada no post a seguir tem o passo-passo.

http://camilolopes.wordpress.com/2009/04/14/criando-conexao-java-mysql-com-eclipse/

http://imasters.uol.com.br/artigo/13937/java/aplicacoes_jee_com_jsp__jstl__mysql/

flw!

gisa_screen

Vlw…

obrigada pela ajuda…

roland

Se vc usar o GenericDAO e vc tiver, digamos, o seu BD tenha as seguintes tabelas:
Clientes, Pordutos e Fornecedores.
Então vc vai criar as classes ClienteDAO, ProdutoDAO e FornecedorDAO que irão estender o GenericDAO utlizando os métodos
de command, query e conexão. Não esqueça que vc tb deve criar os bens para cada tabela, ou seja, as classes que representam
as tabelas do BD.

Falow

Criado 6 de março de 2010
Ultima resposta 7 de mar. de 2010
Respostas 7
Participantes 4