Advertisement
Guest User

Untitled

a guest
Nov 9th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.76 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  5. <bean id="databaseProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  6. <property name="location" value="file:///C:/Config/database.properties"/>
  7. </bean>
  8.  
  9.  
  10. <bean id="transactionDatasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  11. <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
  12. <property name="url" value="${db.url}"/>
  13. <property name="username" value="${db.username}"/>
  14. <property name="password" value="${db.password}"/>
  15. </bean>
  16.  
  17. <!-- Hibernate 4 SessionFactory Bean definition -->
  18. <bean id="hibernate4AnnotatedSessionFactory"
  19. class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  20. <property name="dataSource" ref="transactionDatasource" />
  21. <property name="annotatedClasses">
  22. <list>
  23. <value>com.company.model.db.ApplicationStatEntity</value>
  24. <value>com.company.DeviceCapEntity</value>
  25. </list>
  26. </property>
  27. <property name="hibernateProperties">
  28. <props>
  29. <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
  30. <prop key="hibernate.current_session_context_class">thread</prop>
  31. <prop key="hibernate.show_sql">false</prop>
  32. <prop key="hibernate.jdbc.batch_size">50</prop>
  33. <prop key="hibernate.connection.url">jdbc:oracle:thin:@<IP>:1522/rac2</prop>
  34. <prop key="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</prop>
  35.  
  36. <prop key="hibernate.cache.use_query_cache">true</prop>
  37. <prop key="hibernate.cache.use_second_level_cache">true</prop>
  38. <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
  39. <prop key="org.hibernate.cache.ehcache.configurationResourceName">/ehcache.xml</prop>
  40. <!--property name="net.sf.ehcache.configurationResourceName">/ehcache.xml</property-->
  41.  
  42. </props>
  43. </property>
  44. </bean>
  45.  
  46. </beans>
  47.  
  48. import org.apache.commons.logging.Log;
  49. import org.apache.commons.logging.LogFactory;
  50. import org.apache.log4j.Logger;
  51. import org.hibernate.*;
  52. import org.hibernate.hql.internal.ast.QuerySyntaxException;
  53. import org.springframework.context.support.ClassPathXmlApplicationContext;
  54.  
  55. import java.util.Iterator;
  56. import java.util.List;
  57.  
  58.  
  59.  
  60. public class GenericDaoImpl<GenericEntity> implements GenericDao<GenericEntity> {
  61.  
  62. private Class<GenericEntity> type;
  63. private ClassPathXmlApplicationContext context = null;
  64. protected SessionFactory sessionFactory = null;
  65. Logger log = Logger.getLogger(GenericDaoImpl.class.getName());
  66.  
  67. public GenericDaoImpl() {
  68. context = getApplicationContext();
  69. sessionFactory = getSessionFactory();
  70. }
  71.  
  72. private ClassPathXmlApplicationContext getApplicationContext() {
  73. if (this.context == null) {
  74. this.context = new ClassPathXmlApplicationContext("applicationContext-dao.xml");
  75. }
  76. return this.context;
  77. }
  78.  
  79. private SessionFactory getSessionFactory() {
  80. if(this.sessionFactory==null) {
  81. this.sessionFactory = (SessionFactory) getApplicationContext().getBean("hibernate4AnnotatedSessionFactory");
  82. }
  83. return this.sessionFactory;
  84. }
  85.  
  86. public Class<GenericEntity> getMyType() {
  87. return this.type;
  88. }
  89.  
  90. public void setType(Class<GenericEntity> type) {
  91. this.type = type;
  92. }
  93.  
  94. public void setSessionFactory(SessionFactory sessionFactory) {
  95. this.sessionFactory = sessionFactory;
  96. }
  97.  
  98.  
  99. public void insert(GenericEntity genericEntity) throws DaoException {
  100. Session session = this.sessionFactory.openSession();
  101. Transaction transaction = null;
  102. try {
  103. transaction = session.beginTransaction();
  104. log.info("[GeneicDaoImpl.insert] hibernate session opened");
  105. session.save(genericEntity);
  106. log.info("[GeneicDaoImpl.insert] insertion done");
  107. transaction.commit();
  108. } catch (QuerySyntaxException e) {
  109. if (transaction != null) {
  110. transaction.rollback();
  111. log.error(
  112. "[GeneicDaoImpl.insert] An error occured ID generation with table mapping. "
  113. + "Check schema,table name in entity object or check table in database",
  114. e);
  115. throw new DaoException("[GeneicDaoImpl.insert] hibernate error occured,rollback done. Stack Trace : /n" + e.getStackTrace());
  116. }
  117. } catch (AnnotationException e) {
  118. if (transaction != null) {
  119. transaction.rollback();
  120. log.error("[GeneicDaoImpl.insert] An error occured ID generation with sequence. Check sequence name in entity object and in database",
  121. e);
  122. throw new DaoException("[GeneicDaoImpl.insert] hibernate error occured,rollback done. Stack Trace : /n" + e.getStackTrace());
  123. }
  124. } catch (Exception e) {
  125. if (transaction != null) {
  126. transaction.rollback();
  127. log.error("[GeneicDaoImpl.insert] hibernate error occured,rollback done", e);
  128. throw new DaoException("[GeneicDaoImpl.insert] hibernate error occured,rollback done. Stack Trace : /n" + e.getStackTrace());
  129. }
  130.  
  131. } finally {
  132. session.close();
  133. }
  134. }
  135. }
  136.  
  137. public class TestClass {
  138.  
  139. @Test
  140. public void insertTest() {
  141. GenericDao<ApplicationStatEntity> insertBatchDao = new GenericDaoImpl();
  142. ApplicationStatEntity applicationStatEntity = new ApplicationStatEntity();
  143. applicationStatEntity.setId(102);
  144. applicationStatEntity.setDeviceid("SamsungShitty");
  145. try {
  146. insertBatchDao.insert(applicationStatEntity);
  147. } catch (DaoException e) {
  148. e.printStackTrace();
  149. }
  150. }
  151. }
  152.  
  153. <?xml version="1.0" encoding="UTF-8"?>
  154. <ehcache>
  155.  
  156. <diskStore path="java.io.tmpdir/ehcache" />
  157.  
  158. <defaultCache maxEntriesLocalHeap="10000" eternal="false"
  159. timeToIdleSeconds="120" timeToLiveSeconds="120" diskSpoolBufferSizeMB="30"
  160. maxEntriesLocalDisk="10000000" diskExpiryThreadIntervalSeconds="120"
  161. memoryStoreEvictionPolicy="LRU" statistics="true">
  162. <persistence strategy="localTempSwap" />
  163. </defaultCache>
  164.  
  165.  
  166. </ehcache>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement