Hibernate .....Duvida como usar Session

Olá,

sou novo com hibernate aos mais experientes poderia me dar uma informaçõa qual forma seria
melhor a utilização…

Pois vou criar um GErador para cada classe que tenho por exemplo

  • GEradorCliente , GEradorFornecedor…

E abaixo estou usando para cada metodo (crud) abrindo Session do HIbernate …

É melhor criar um ServiceLocator com um campo static (Singleton) e para cada acesso
ter sempre uma instancia ou existe outra forma ???

Pois haverá pelo menos 1.000.000 de acessos ao dia ??? o que seria melhor

se alguém puder me ajudar agradeceria ???


public class GeradorCliente {

	
	public void salvar(Cliente cliente){
		try{
		    //SessionFactory deve ser criado uma única vez durante a execuçãoda aplicação
		   SessionFactory sf = new  Configuration().configure("/br/com/modelo/model/hibernate.cfg.xml")
		        .buildSessionFactory();
		 
		    Session session = sf.openSession(); //Abre sessão
		    Transaction tx = session.beginTransaction(); //Cria transação
		 
		    session.save(cliente); //Realiza persistência
		    tx.commit(); //Fecha transação
		    session.close(); //Fecha sessão

		  
		  }catch(Exception e2){
		    e2.printStackTrace();
		  }
	}
	
	
	public Cliente selecionaCliente(int codigoCliente){
		Cliente cliente = new Cliente();
		try{
		    //SessionFactory deve ser criado uma única vez durante a execuçãoda aplicação
		   SessionFactory sf = new  Configuration().configure("/br/com/modelo/model/hibernate.cfg.xml")
		        .buildSessionFactory();
		 
		    Session session = sf.openSession(); //Abre sessão
		    Transaction tx = session.beginTransaction(); //Cria transação
		 
		    //Busca objeto aluno da base de dados com chave primária = 1
		    cliente = (Cliente) session.get(Cliente.class, codigoCliente);   

            
		  
		  }catch(Exception e2){
		    e2.printStackTrace();
		  }
		  
		  return cliente;	
	}
	
	public void Deleta(Cliente cliente){

		    //SessionFactory deve ser criado uma única vez durante a execuçãoda aplicação
		    SessionFactory sf = new  Configuration().configure("/br/com/modelo/model/hibernate.cfg.xml").buildSessionFactory();
		    Session session = sf.openSession(); //Abre sessão
		    Transaction tx = session.beginTransaction(); //Cria transação
		    session.delete (cliente); 

		    tx.commit();
		    session.close(); 

	}
	
	public void Altera (Cliente cliente){
		
		  //SessionFactory deve ser criado uma única vez durante a execuçãoda aplicação
	    SessionFactory sf = new  Configuration().configure("/br/com/modelo/model/hibernate.cfg.xml").buildSessionFactory();
	    Session session = sf.openSession(); //Abre sessão
	    Transaction tx = session.beginTransaction(); //Cria transação
	    session.saveOrUpdate(cliente); 
	    tx.commit();
	    session.close(); 
	}
}