hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Hibernate Settings -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://10.10.100.106:3306/nuspa?autoReconnect=true</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">xxxx</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.hbm2ddl.auto">validate</property>
<property name="show_sql">true</property>
<!-- C3P0 Pooling settings -->
<property name="hibernate.c3p0.min_size">7</property>
<property name="hibernate.c3p0.max_size">53</property>
<property name="hibernate.c3p0.timeout">100</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">1000</property>
<property name="hibernate.c3p0.validate">true</property>
<!-- Mapping Entity classes -->
<mapping class="com.tr.xxx.entity.Customer" />
<mapping class="com.xxx.entity.Club" />
<mapping class="com.tr.xxx.entity.TransactionHistory" />
</session-factory>
</hibernate-configuration>
HibernateUtil.java
package com.xxx.util;
import org.apache.log4j.Logger;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateUtil {
private static SessionFactory sessionFactory;
private final static Logger logger = Logger.getLogger(HibernateUtil.class);
static {
try {
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
} catch (Throwable ex) {
logger.error("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
pom.xml
<properties>
<hibernate-core.version>4.3.5.Final</hibernate-core.version>
</properties>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate-core.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>${hibernate-core.version}</version>
</dependency>
</dependencies>
DAO.java
private final static Logger logger = Logger.getLogger(AppDAOImpl.class);
final StringBuilder query = new StringBuilder();
@Override
public List<Club> getAllClubs() {
logger.info("fetching all clubs from database");
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction transaction = session.beginTransaction();
List<Club> clubs = new ArrayList<>();
try {
clubs = session.createQuery("from Club").list();
transaction.commit();
} catch (HibernateException e) {
logger.error("Exception in getting all clubs: " + e);
transaction.rollback();
}
return clubs;
}