[resolvido] Lista de PreparedStatement vinculados a um único objeto Connection

1 resposta
macorx

Senhores,

Estou trabalhando em um servidor socket que deve atender requisições e interagir com um banco mysql.

Minha dúvida é a seguinte. Como a grande maioria das requisições trata apenas de SELECTs, pensei em manter uma única conexão para atender essas requisições onde vinculadas a essa conexão estariam uma lista de objetos PreparedStatement.

O objetivo principal dessa ideia é ganhar performance na resposta da requisição considerando que o statement do sql já teria sido executado parcialmente no banco.

Pensei em fazer algo assim:

public class Conexao {
	
	private String DRIVER = "com.mysql.jdbc.Driver";
	private String URL = "jdbc:mysql://127.0.0.1/servidor";
	private String USERNAME = "root";
	private String PASSWORD = "root";
	private Connection conn;
	
	private HashMap<String, PreparedStatement> lsPrepared = new HashMap<String, PreparedStatement>();
	
	public Conexao() {
		try {
			Class.forName(this.DRIVER);
			conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);
		} catch (CommunicationsException e) {
			System.out.println(e.getMessage());
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}
	
	public void addStatement(String chaveBusca, String sql) throws SQLException {
		lsPrepared.put(chaveBusca, conn.prepareStatement(sql));
	}
	
	public PreparedStatement getStatement(String chaveBusca) {
		return lsPrepared.get(chaveBusca);
	}
	
}

No lugar do HashMap pensei em usar o FastHashMap oferecido pelo [url]http://commons.apache.org/collections/[/url] e carregar logo que startar o servidor todos os preparedStatements.

1 Resposta

macorx

Resolvi minha dúvida com outro post http://www.guj.com.br/posts/list/149707.java

Criado 6 de maio de 2010
Ultima resposta 7 de mai. de 2010
Respostas 1
Participantes 1