Advertisement
Guest User

Untitled

a guest
Sep 11th, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.51 KB | None | 0 0
  1. package com.crud.dao.implementations;
  2.  
  3. import java.util.List;
  4.  
  5. import javax.transaction.Transactional;
  6.  
  7. import org.hibernate.Session;
  8. import org.hibernate.SessionFactory;
  9. import org.hibernate.resource.transaction.spi.TransactionStatus;
  10. import org.springframework.stereotype.Repository;
  11.  
  12. import com.crud.dao.interfaces.EmployeeDAO;
  13. import com.crud.model.Employee;
  14. @Repository
  15. public class EmployeeDAOImpl implements EmployeeDAO{
  16.  
  17. private SessionFactory sessionFactory;
  18.  
  19. public void setSessionFactory(SessionFactory sessionFactory) {
  20. this.sessionFactory = sessionFactory;
  21. }
  22. @Transactional
  23. public void insertSingleEmployee(Employee e) {
  24. Session session = sessionFactory.getCurrentSession();
  25. if(session!=null) {
  26. try {
  27. session.beginTransaction();
  28. session.persist(e);
  29. session.getTransaction().commit();
  30. } catch (Exception e2) {
  31. if(session.getTransaction().getStatus()== TransactionStatus.ACTIVE || session.getTransaction().getStatus()== TransactionStatus.MARKED_ROLLBACK) {
  32. session.getTransaction().rollback();
  33. }
  34. }
  35. finally {
  36. session.close();
  37. }
  38. }
  39. else {
  40. System.out.println("session is null ");
  41. }
  42. }
  43.  
  44. @Transactional
  45. public void updateSingleEmpployee(Employee e) {
  46. Session session = this.sessionFactory.getCurrentSession();
  47. try {
  48. session.beginTransaction();
  49. session.update(e);
  50. session.getTransaction().commit();
  51. } catch (Exception e2) {
  52. if(session.getTransaction().getStatus()==TransactionStatus.ACTIVE || session.getTransaction().getStatus()== TransactionStatus.MARKED_ROLLBACK) {
  53. session.getTransaction().rollback();
  54. }
  55. }
  56. finally {
  57. session.close();
  58. }
  59. }
  60.  
  61. @Transactional
  62. public void deleteSingleEmployee(long employeeID) {
  63. Session session = this.sessionFactory.getCurrentSession();
  64. try {
  65. session.beginTransaction();
  66. Employee e = (Employee) session.load(Employee.class, new Long(employeeID));
  67. if(e!=null)
  68. session.delete(e);
  69. session.getTransaction().commit();
  70. } catch (Exception e) {
  71. if(session.getTransaction().getStatus()== TransactionStatus.ACTIVE || session.getTransaction().getStatus()==TransactionStatus.MARKED_ROLLBACK) {
  72. session.getTransaction().rollback();
  73. }
  74. }
  75. finally {
  76. session.close();
  77. }
  78. }
  79.  
  80. @SuppressWarnings("unchecked")
  81. @Transactional
  82. public List<Employee> listOfEmployees(){
  83. Session session = this.sessionFactory.getCurrentSession();
  84. List<Employee> listOfEmployees = null;
  85. try {
  86. session.beginTransaction();
  87. listOfEmployees = session.createQuery("from Employee").list();
  88. session.getTransaction().commit();
  89. session.close();
  90. } catch (Exception e) {
  91. if(session.getTransaction().getStatus()== TransactionStatus.ACTIVE || session.getTransaction().getStatus()==TransactionStatus.MARKED_ROLLBACK) {
  92. session.getTransaction().rollback();
  93. }
  94. }
  95. finally {
  96. session.close();
  97. }
  98. return listOfEmployees;
  99. }
  100. }
  101.  
  102. <?xml version="1.0" encoding="UTF-8"?>
  103. <beans xmlns="http://www.springframework.org/schema/beans"
  104. xmlns:mvc="http://www.springframework.org/schema/mvc"
  105. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  106. xmlns:p="http://www.springframework.org/schema/p"
  107. xmlns:context="http://www.springframework.org/schema/context"
  108. xmlns:tx="http://www.springframework.org/schema/tx"
  109. xsi:schemaLocation="
  110. http://www.springframework.org/schema/beans
  111. http://www.springframework.org/schema/beans/spring-beans.xsd
  112. http://www.springframework.org/schema/mvc
  113. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  114. http://www.springframework.org/schema/context
  115. http://www.springframework.org/schema/context/spring-context.xsd
  116. http://www.springframework.org/schema/tx
  117. http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
  118.  
  119. <context:component-scan base-package="com.crud.controllers" />
  120. <context:annotation-config />
  121. <mvc:annotation-driven />
  122. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  123. <property name="prefix">
  124. <value>/WEB-INF/pages/</value>
  125. </property>
  126. <property name="suffix">
  127. <value>.jsp</value>
  128. </property>
  129. </bean>
  130. <bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  131. <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
  132. <property name="url" value="jdbc:mysql://127.0.0.1:3306/university" />
  133. <property name="username" value="root"></property>
  134. <property name="password" value="root"></property>
  135. </bean>
  136. <bean id="mySessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
  137. <property name="dataSource" ref="myDataSource" />
  138. <property name="annotatedClasses">
  139. <list>
  140. <value>com.crud.model.Employee</value>
  141. </list>
  142. </property>
  143. <property name="hibernateProperties">
  144. <props>
  145. <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
  146. <prop key="hibernate.c3p0.min_size">5</prop>
  147. <prop key="hibernate.c3p0.max_size">30</prop>
  148. <prop key="hibernate.c3p0.timeout">60</prop>
  149. <prop key="hibernate.hbm2ddl.auto">create</prop>
  150. <prop key="hibernate.show_sql">true</prop>
  151. </props>
  152. </property>
  153. </bean>
  154.  
  155. <bean id="employeeDao" class="com.crud.dao.implementations.EmployeeDAOImpl">
  156. <property name="sessionFactory" ref="mySessionFactory" />
  157. </bean>
  158. <tx:annotation-driven transaction-manager="transactionManager"/>
  159. <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
  160. <property name="sessionFactory" ref="mySessionFactory" />
  161. </bean>
  162. </beans>
  163.  
  164. package com.crud.controllers;
  165.  
  166. import org.springframework.stereotype.Controller;
  167. import org.springframework.validation.BindingResult;
  168. import org.springframework.web.bind.annotation.ControllerAdvice;
  169. import org.springframework.web.bind.annotation.ModelAttribute;
  170. import org.springframework.web.bind.annotation.RequestMapping;
  171. import org.springframework.web.bind.annotation.RequestMethod;
  172.  
  173. import com.crud.dao.DAOFactory;
  174. import com.crud.model.Employee;
  175.  
  176. @Controller
  177. @ControllerAdvice
  178. @RequestMapping(value="/employee")
  179. public class EmployeeController {
  180.  
  181. @RequestMapping(value="/addPerson", method=RequestMethod.GET)
  182. public String addForm() {
  183. return "addPerson";
  184. }
  185.  
  186. @RequestMapping(value="/save", method=RequestMethod.POST)
  187. public String addEmployee(@ModelAttribute("employee") Employee e, BindingResult result) {
  188. if(result.hasErrors())
  189. return "addPerson";
  190. else {
  191. DAOFactory mysqlFactory = DAOFactory.getDAOFactory(1);
  192. if(e!=null)
  193. mysqlFactory.getEmployeeDAO().insertSingleEmployee(e);
  194. }
  195.  
  196. return "hello";
  197. }
  198. }
  199.  
  200. package com.crud.model;
  201.  
  202. import javax.persistence.Column;
  203. import javax.persistence.Entity;
  204. import javax.persistence.GeneratedValue;
  205. import javax.persistence.GenerationType;
  206. import javax.persistence.Id;
  207. import javax.persistence.Table;
  208. import javax.xml.bind.annotation.XmlRootElement;
  209. @XmlRootElement
  210. @Entity
  211. @Table(name="employee")
  212. public class Employee {
  213.  
  214. @Id
  215. @Column(name="id")
  216. @GeneratedValue(strategy=GenerationType.IDENTITY)
  217. private long id;
  218. private String firstName;
  219. private String lastName;
  220. private String mobile;
  221. private String address;
  222. private String gender;
  223. private String email;
  224.  
  225. public Employee() {
  226.  
  227. }
  228.  
  229. public Employee(long id, String firstName, String lastName, String mobile, String address, String gender,
  230. String email) {
  231. super();
  232. this.id = id;
  233. this.firstName = firstName;
  234. this.lastName = lastName;
  235. this.mobile = mobile;
  236. this.address = address;
  237. this.gender = gender;
  238. this.email = email;
  239. }
  240. public long getId() {
  241. return id;
  242. }
  243. public void setId(long id) {
  244. this.id = id;
  245. }
  246. public String getFirstName() {
  247. return firstName;
  248. }
  249. public void setFirstName(String firstName) {
  250. this.firstName = firstName;
  251. }
  252. public String getLastName() {
  253. return lastName;
  254. }
  255. public void setLastName(String lastName) {
  256. this.lastName = lastName;
  257. }
  258. public String getMobile() {
  259. return mobile;
  260. }
  261. public void setMobile(String mobile) {
  262. this.mobile = mobile;
  263. }
  264. public String getAddress() {
  265. return address;
  266. }
  267. public void setAddress(String address) {
  268. this.address = address;
  269. }
  270. public String getGender() {
  271. return gender;
  272. }
  273. public void setGender(String gender) {
  274. this.gender = gender;
  275. }
  276. public String getEmail() {
  277. return email;
  278. }
  279. public void setEmail(String email) {
  280. this.email = email;
  281. }
  282. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement