Jsp lento

3 respostas
R

E ai galera, seguinte tenho uma pagina de cadastro em jsp, o problema dela é quando são realizados varios cadastros ela fica lenta, chega ate travar, ja dei uma olhada no pool e as conexões estão fechadas, o que eu devo fazer?

Valeu

3 Respostas

J

Se estas usando hibernate, procure usar esta classe para conexão:

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import org.hibernate.classic.Session;

public class HibernateUtility {
private static final SessionFactory factory;

private static final ThreadLocal sessionThread = new ThreadLocal();

private static final ThreadLocal transactionThread = new ThreadLocal();
static {
	try {
		factory = new Configuration().configure().buildSessionFactory();
	} catch (RuntimeException e) {
		e.printStackTrace();
		throw e;
	}
}

public static Session getSession() {
	if (sessionThread.get() == null) {
		Session session = factory.openSession();
		sessionThread.set(session);
	}
	return (Session) sessionThread.get();
}

public static void closeSession() {
	Session session = (Session) sessionThread.get();
	if (session != null && session.isOpen()) {
		sessionThread.set(null);
		session.flush();
		session.close();
	}
}

public static void beginTransaction() {
	Transaction transaction = getSession().beginTransaction();
	transactionThread.set(transaction);
}

public static void commitTransaction() {
	Transaction transaction = (Transaction) transactionThread.get();
	if (transaction != null && !transaction.wasCommitted()
			&& !transaction.wasRolledBack()) {
		transaction.commit();
		transactionThread.set(null);
	}
}

public static void rollbackTransaction() {
	Transaction transaction = (Transaction) transactionThread.get();
	if (transaction != null && !transaction.wasCommitted()
			&& !transaction.wasRolledBack()) {
		transaction.rollback();
		transactionThread.set(null);
	}
}

}

como fazer consultas:

public List getAcabamentos(){

List lista = new ArrayList();

Session session = HibernateUtility.getSession();

Query q = session.createQuery(“from Acabamento order by acabamento”);

lista = q.list();

HibernateUtility.closeSession();

return lista;

}
para fazer gravação:

public void salvar(SarWeb sarWeb) {

Session session = HibernateUtility.getSession();

HibernateUtility.beginTransaction();

session.saveOrUpdate(sarWeb);

HibernateUtility.commitTransaction();

HibernateUtility.closeSession();

}

falow

R

Eu estou usando o visionnaire

klarq

mas o código de conexão com o banco está num jsp ou em um servlet?

Criado 4 de abril de 2006
Ultima resposta 5 de abr. de 2006
Respostas 3
Participantes 3