Advertisement
Guest User

Untitled

a guest
Mar 12th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.93 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  5. <hibernate-configuration>
  6.     <session-factory>
  7.         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  8.         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  9.         <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/coffee</property>
  10.         <property name="hibernate.connection.username">root</property>
  11.         <property name="hibernate.connection.password">lithz1994</property>
  12.         <property name="hibernate.show_sql">true</property>
  13.         <property name="hbm2ddl.auto">update</property>
  14.             <mapping class="home.neshoz.Quiz222.model.Answer"></mapping>
  15.             <mapping class="home.neshoz.Quiz222.model.Question"></mapping>
  16.     </session-factory>
  17. </hibernate-configuration>
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24. package home.neshoz.Quiz222.resources;
  25.  
  26. import java.util.ArrayList;
  27. import java.util.List;
  28.  
  29. import javax.ws.rs.Consumes;
  30. import javax.ws.rs.GET;
  31. import javax.ws.rs.Path;
  32. import javax.ws.rs.PathParam;
  33. import javax.ws.rs.Produces;
  34. import javax.ws.rs.core.MediaType;
  35.  
  36. import home.neshoz.Quiz222.model.Question;
  37. import home.neshoz.Quiz222.services.QuestionService;
  38.  
  39. @Path("/questions")
  40. public class QuestionResource
  41. {
  42.     private QuestionService questionService = new QuestionService();
  43.    
  44.     @GET
  45.     @Produces(MediaType.APPLICATION_JSON)
  46.     @Consumes(MediaType.APPLICATION_JSON)
  47.     public List<Question> getAllQuestions()
  48.     {
  49.         return questionService.getAllQuestions();
  50.     }
  51.    
  52.     @GET
  53.     @Produces(MediaType.APPLICATION_JSON)
  54.     @Path("/{questionId}")
  55.     public Question getQuestion(@PathParam("questionId") int id)
  56.     {
  57.         return questionService.getQuestion(id);
  58.     }
  59. }
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. package home.neshoz.Quiz222.services;
  69.  
  70. import java.util.Collection;
  71. import java.util.List;
  72. import java.util.Set;
  73.  
  74. import org.hibernate.Session;
  75. import org.hibernate.SessionFactory;
  76.  
  77. import home.neshoz.Quiz222.HibernateTools.HibernateUtil;
  78. //import home.neshoz.Quiz222.model.Answer;
  79. import home.neshoz.Quiz222.model.Question;
  80.  
  81. public class QuestionService
  82. {
  83.     private SessionFactory sessionFactory;
  84.     private Session session;
  85.    
  86.     public List<Question> getAllQuestions()
  87.     {
  88.         sessionFactory = HibernateUtil.getSessionFactory();
  89.         session = sessionFactory.openSession();
  90.         session.beginTransaction();
  91.        
  92.         List<Question> questionList = session.createCriteria(Question.class).list();
  93.        
  94.         session.getTransaction().commit();
  95.        
  96.         return questionList;
  97.        
  98.     }
  99.    
  100.     public Question getQuestion(int id)
  101.     {
  102.         sessionFactory = HibernateUtil.getSessionFactory();
  103.         session = sessionFactory.openSession();
  104.         session.beginTransaction();
  105.        
  106.         Question question = (Question)session.get(Question.class, id);
  107.        
  108.         session.getTransaction().commit();
  109.         //session.close();
  110.        
  111.         return question;
  112.     }
  113.    
  114.     public Question addQuestion(Question question)
  115.     {
  116.         sessionFactory = HibernateUtil.getSessionFactory();
  117.         session = sessionFactory.openSession();
  118.         session.beginTransaction();
  119.        
  120.         session.save(question);
  121.         session.getTransaction().commit();
  122.         session.close();
  123.        
  124.         return question;
  125.     }
  126.    
  127.     public Question editQuestion(int id, String updatedQuestion)
  128.     {
  129.         sessionFactory = HibernateUtil.getSessionFactory();
  130.         session = sessionFactory.openSession();
  131.         session.beginTransaction();
  132.        
  133.         Question question = (Question)session.get(Question.class, id);
  134.         question.setQuestion(updatedQuestion);
  135.        
  136.         session.update(question);
  137.         session.getTransaction().commit();
  138.         session.close();
  139.        
  140.         return question;
  141.     }
  142.    
  143.     public Question deleteQuestion(int id)
  144.     {
  145.         sessionFactory = HibernateUtil.getSessionFactory();
  146.         session = sessionFactory.openSession();
  147.         session.beginTransaction();
  148.        
  149.         Question question = (Question)session.get(Question.class, id);
  150.        
  151.         session.delete(question);
  152.         session.getTransaction().commit();
  153.         session.close();
  154.        
  155.         return question;
  156.     }
  157. }
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167. package home.neshoz.Quiz222.model;
  168.  
  169. import java.io.Serializable;
  170. import java.util.ArrayList;
  171. import java.util.Collection;
  172. import java.util.HashSet;
  173. import java.util.Set;
  174.  
  175. import javax.persistence.CascadeType;
  176. import javax.persistence.Column;
  177. import javax.persistence.Entity;
  178. import javax.persistence.FetchType;
  179. import javax.persistence.GeneratedValue;
  180. import javax.persistence.Id;
  181. import javax.persistence.ManyToMany;
  182. import javax.persistence.OneToMany;
  183. import javax.persistence.Table;
  184. import javax.xml.bind.annotation.XmlRootElement;
  185.  
  186. @XmlRootElement
  187. @Entity
  188. @Table(name = "Questions")
  189. public class Question implements Serializable
  190. {
  191.     private static final long serialVersionUID = -2036702455753474479L;
  192.  
  193.     @Id
  194.     @GeneratedValue
  195.     @Column(name = "Id")
  196.     private int id;
  197.  
  198.     private String question;
  199.    
  200.     @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
  201.     private Set<Answer> answerList = new HashSet<Answer>();
  202.  
  203.     public Question()
  204.     {
  205.        
  206.     }
  207.     public Question(String question)
  208.     {
  209.         this.question = question;
  210.     }
  211.     public int getId()
  212.     {
  213.         return id;
  214.     }
  215.     public void setId(int id)
  216.     {
  217.         this.id = id;
  218.     }
  219.     public String getQuestion()
  220.     {
  221.         return question;
  222.     }
  223.     public void setQuestion(String question)
  224.     {
  225.         this.question = question;
  226.     }
  227.     public Set<Answer> getAnswerList()
  228.     {
  229.         return answerList;
  230.     }
  231.     public void setAnswerList(Set<Answer> answerList)
  232.     {
  233.         this.answerList = answerList;
  234.     }
  235. }
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243. package home.neshoz.Quiz222.model;
  244.  
  245. import java.io.Serializable;
  246.  
  247. import javax.persistence.Column;
  248. import javax.persistence.Entity;
  249. import javax.persistence.FetchType;
  250. import javax.persistence.GeneratedValue;
  251. import javax.persistence.Id;
  252. import javax.persistence.JoinColumn;
  253. import javax.persistence.ManyToMany;
  254. import javax.persistence.ManyToOne;
  255. import javax.persistence.Table;
  256. import javax.xml.bind.annotation.XmlRootElement;
  257.  
  258. @XmlRootElement
  259. @Entity
  260. @Table(name = "Answers")
  261. public class Answer implements Serializable
  262. {
  263.    
  264.     private static final long serialVersionUID = 2598377936366814345L;
  265.  
  266.     @Id
  267.     @GeneratedValue
  268.     @Column(name = "Id")
  269.     private int id;
  270.    
  271.     @Column(name = "Answer")
  272.     private String answer;
  273.    
  274.     @Column(name = "correctAnswer")
  275.     private String correctAnswer;
  276.    
  277.     @ManyToOne(fetch = FetchType.LAZY)
  278.     private Question question;
  279.    
  280.     public Answer()
  281.     {
  282.        
  283.     }
  284.     public Answer(String answer)
  285.     {
  286.         this.answer = answer;
  287.     }
  288.    
  289.     public Question getQuestion()
  290.     {
  291.         return question;
  292.     }
  293.    
  294.     public void setQuestion(Question question)
  295.     {
  296.         this.question = question;
  297.     }
  298.    
  299.     public int getAnswerId()
  300.     {
  301.         return id;
  302.     }
  303.     public void setAnswerId(int answerId)
  304.     {
  305.         this.id = answerId;
  306.     }
  307.     public String getAnswer()
  308.     {
  309.         return answer;
  310.     }
  311.     public void setAnswer(String answer)
  312.     {
  313.         this.answer = answer;
  314.     }
  315.     public String getCorrectAnswer()
  316.     {
  317.         return correctAnswer;
  318.     }
  319.     public void setCorrectAnswer(String correctAnswer)
  320.     {
  321.         this.correctAnswer = correctAnswer;
  322.     }
  323. }
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331. package home.neshoz.Quiz222.HibernateTools;
  332.  
  333. import org.hibernate.SessionFactory;
  334. import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
  335. import org.hibernate.cfg.Configuration;
  336. import org.hibernate.service.ServiceRegistry;
  337.  
  338. public class HibernateUtil
  339. {
  340.      
  341.     private static SessionFactory sessionFactory;
  342.    
  343.     public static SessionFactory getSessionFactory()
  344.     {
  345.         if (sessionFactory == null)
  346.         {
  347.             // loads configuration and mappings
  348.             Configuration configuration = new Configuration();
  349.             configuration.configure();
  350.             ServiceRegistry serviceRegistry
  351.                 = new StandardServiceRegistryBuilder()
  352.                     .applySettings(configuration.getProperties()).build();
  353.              
  354.             // builds a session factory from the service registry
  355.             sessionFactory = configuration.buildSessionFactory(serviceRegistry);          
  356.         }
  357.          
  358.         return sessionFactory;
  359.     }
  360. }
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370. package home.neshoz.Quiz222.HibernateDemo;
  371.  
  372. import org.hibernate.Session;
  373. import org.hibernate.SessionFactory;
  374.  
  375. import home.neshoz.Quiz222.HibernateTools.HibernateUtil;
  376. import home.neshoz.Quiz222.model.Answer;
  377. import home.neshoz.Quiz222.model.Question;
  378.  
  379. public class HibernateInsertDemo
  380. {
  381.     private static SessionFactory sessionFactory;
  382.     private static Session session;
  383.    
  384.     public static void main(String[] args)
  385.     {
  386.         Question q = new Question("F1");
  387.         Question q2 = new Question("F2");
  388.        
  389.         Answer a1 = new Answer("A1");
  390.         Answer a2 = new Answer("A2");
  391.        
  392.         Answer a3 = new Answer("A3");
  393.         Answer a4 = new Answer("A4");
  394.        
  395.         q.getAnswerList().add(a1);
  396.         q.getAnswerList().add(a2);
  397.        
  398.         q2.getAnswerList().add(a3);
  399.         q2.getAnswerList().add(a4);
  400.        
  401.         sessionFactory = HibernateUtil.getSessionFactory();
  402.         session = sessionFactory.openSession();
  403.         session.beginTransaction();
  404.        
  405.         session.save(q);
  406.         session.save(q2);
  407.        
  408.         session.getTransaction().commit();
  409.         session.close();
  410.     }
  411. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement