Aplikacja WWW - projekt - serwlety - Java Server Pages – 19.10.2009
1. Zaprojektować bazę danych według
schematu:
Utworzyć tabelę product z następujacymi kolumnami i odpowiednimi
typami (ID, NAME, DESC, INFO):
Dodać do tabeli product kilka przykładowych wierszy:
W projekcie aplikacji internetowej dołączyć obsługę bibliotek
Hibernate:
Podać nowe połączenie z bazą danych: MySQL, test, root,
studentmysql
Podać parametry połączenia:
Edycja pliku hibernate.cfg.xml dla
podanego połączenia z bazą MySQL - test
Uruchmić hibernate reverse engineering:
Dołączyć tabelę product
Pliki projektu:
Uruchomić opcję Hibernate
Mapping Files and POJOs from Database
Widok projektu - pliki
Plik product.hbm.xml:
Klasa Product
package web2; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.hibernate.Session; import org.hibernate.*; import org.hibernate.cfg.*; import java.util.*; import web.*; /** * *
@author */ public class HibernateExample
extends HttpServlet {
Session session = null;
/**
* Processes requests for both HTTP <code>GET</code> and
<code>POST</code> methods.
* @param request servlet
request
* @param response servlet
response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try { /* TODO output your page here*/ out.println("<html>"); out.println("<head>"); out.println("<title>Servlet HibernateExample</title>"); out.println("</head>"); out.println("<body
bgcolor=white>"); out.println("<h1>Servlet HibernateExample at
" + request.getContextPath () +
"</h1>"); out.println("<table
border=\"2\" align=\"center\">"); out.println("<thead>"); out.println("<TR
BGCOLOR=green>"); out.println("<th>Example Pages</th>"); out.println("</tr>"); out.println("</thead>"); out.println("<tbody>");
// This step will read hibernate.cfg.xml and prepare hibernate for use
SessionFactory sessionFactory
= new Configuration().configure().buildSessionFactory();
session =sessionFactory.openSession(); //Using from Clause
String SQL_QUERY ="from Product product";
Query query = session.createQuery(SQL_QUERY); for(Iterator it=query.iterate();it.hasNext();){
Product product=(Product)it.next();
out.println("<tr>");
out.println("<td>");
out.println("ID: " + product.getId());
out.println("</td>");
out.println("<td>");
out.println("Name: " + product.getName());
out.println("</td>");
out.println("<td>");
out.println("INFO: " + product.getInfo());
out.println("</td>");
out.println("<td>");
out.println("Desc:
" + product.getDesc());
out.println("</td>");
out.println("</tr>");
} out.println("</tbody>"); out.println("</table>"); out.println("</body>"); out.println("</html>");
session.close(); }catch(Exception e){
System.out.println(e.getMessage()); }finally{ out.close(); } }
// <editor-fold defaultstate="collapsed"
desc="HttpServlet
methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet
request
* @param response servlet
response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest
request, HttpServletResponse response)
throws ServletException, IOException
{
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet
request
* @param response servlet
response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest
request, HttpServletResponse response)
throws ServletException, IOException
{
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet
description
*/
@Override
public String getServletInfo() {
return "Short description";
}//
</editor-fold> } |
Hibernate Insert
new row example:
//
This step will read hibernate.cfg.xml and prepare hibernate for use SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); session =sessionFactory.openSession(); Transaction
trans = sessionFactory.beginTransaction(); Product
product = (Product)sessionFactory.get(Product.class, new Long(1)); product.setId(3); product.setINFO("RAM"); product.setDesc("2GB"); sessionFactory.update(product); trans.commit(); sessionFactory.close(); System.out.println("Update
successfully!"); } catch(Exception e){ System.out.println(e.getMessage()); } |
Natywne zapytania SQL
sess.createSQLQuery("SELECT * FROM Product).list();
sess.createSQLQuery("SELECT ID, NAME, INFO, DESC FROM Product”).list();
Zwracany zostaje obiekt
List of Object arrays (Object[])
Alternatywnie można wykorzystać addScalar():
sess.createSQLQuery("SELECT * FROM Product")
.addScalar("ID", Hibernate.INTEGER)
.addScalar("NAME", Hibernate.STRING)
.addScalar("INFO", Hibernate.STRING)
.addScalar("DESC", Hibernate.STRING)
1. Tabela użytkowników systemu: Client / Person / Product
Tabela zleceń: Orders z indentyfikatorem każdego zlecenia, identyfikatorem produktu, identyfikatorem klienta
Tabela Products
2. Wyświetlanie wszystkich zleceń danego klienta
3. Wyświetlanie dla danego produktu wszystkich zamówień jakie zostały na ten produkt złożone
4. Utworzenie z dostępnych produktów, bieżącego koszyka
Informacje o JSP:
http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial-JSP.html