package example;
import java.io.PrintWriter;
import java.io.IOException;
import java.util.List;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.persistence.*;
/**
* A client to illustrate the services of the CourseBean CMP bean.
*/
public class CreateServlet extends HttpServlet {
@PersistenceContext(name="example")
private EntityManager _entityManager;
public void init()
{
Course course = null;
try {
course = _entityManager.find(Course.class, new Integer(1));
} catch (Throwable e) {
}
if (course == null) {
_entityManager.getTransaction().begin();
try {
course = new Course("Potions", "Severus Snape");
_entityManager.persist(course);
course = new Course("Transfiguration", "Minerva McGonagall");
_entityManager.persist(course);
course = new Course("Defense Against the Dark Arts", "Remus Lupin");
_entityManager.persist(course);
} finally {
_entityManager.getTransaction().commit();
}
}
}
public void service(HttpServletRequest req, HttpServletResponse res)
throws java.io.IOException, ServletException
{
PrintWriter out = res.getWriter();
res.setContentType("text/html");
Query courseQuery = _entityManager.createQuery("SELECT o FROM Course o");
out.println("<h3>Initial Classes</h3>");
displayCourses(out, courseQuery);
Course divination = null;
Course creatures = null;
_entityManager.getTransaction().begin();
try {
divination = new Course("Divination", "Sybil Trelawney");
// creates the divination course
_entityManager.persist(divination);
creatures = new Course("Care of Magical Creatures", "Rubeus Hagrid");
// creates the creatures course
_entityManager.persist(creatures);
out.println("<h3>Adding some classes</h3>");
displayCourses(out, courseQuery);
} finally {
// remove the courses
String sql = "SELECT o FROM Course o WHERE o.course=?1";
Query findQuery = _entityManager.createQuery(sql);
findQuery.setParameter(1, "Divination");
divination = (Course) findQuery.getSingleResult();
if (divination != null)
_entityManager.remove(divination);
findQuery.setParameter(1, "Care of Magical Creatures");
creatures = (Course) findQuery.getSingleResult();
if (creatures != null)
_entityManager.remove(creatures);
_entityManager.getTransaction().commit();
}
out.println("<h3>Removing the new classes</h3>");
displayCourses(out, courseQuery);
}
private void displayCourses(PrintWriter out, Query query)
throws IOException
{
List list = query.getResultList();
for (int i = 0; i < list.size(); i++) {
Course course = (Course) list.get(i);
out.println(course.getCourse() + " is taught by " +
course.getTeacher() + "<br>");
}
}
}