Вы находитесь на странице: 1из 102

SIMPLE JSF APPLICATION USING JSF IN JSP

CONFIG. XML:

<?xml version="1.0" encoding="UTF-8"?>

<faces-config

xmlns="http://xmlns.jcp.org/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"

version="2.2">

</faces-config>

INDEX .XHTML:

<?xml version='1.0' encoding='UTF-8' ?>

<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition xmlns="http://www.w3.org/1999/xhtml"

xmlns:ui="http://java.sun.com/jsf/facelets"

xmlns:h="http://java.sun.com/jsf/html"

xmlns:f="http://java.sun.com/jsf/core"

xmlns:p="http://primefaces.org/ui"

xmlns:c="http://java.sun.com/jsp/jstl/core"

template="template/ui.xhtml">

<ui:define name="body">

<h3>Welcome to JSF Lab</h3>

DEPARTMENT OF COMPUTER SCIENCE


<h4>Pure JSF</h4>

<h:form id="jsfForm">

<h:inputText id="name" value="#{mainController.name}" />

<h:commandButton value="Say Hi">

<f:ajax execute="name" render=":jsfForm:nameGroup" />

</h:commandButton>

<br >

<h:panelGroup id="nameGroup">

<h:outputText value="Hi #{mainController.name}!!"

rendered="#{not empty mainController.name}"/>

</h:panelGroup>

</h:form>

<hr/ >

<h4>PrimeFaces</h4>

<h:form id="primeForm">

<p:inputText id="name" value="#{mainController.primeName}">

<p:ajax event="keyup" process="@this" update=":primeForm:nameGroup" />

</p:inputText>

<h:panelGroup id="nameGroup">

<h:outputText value="Hi #{mainController.primeName}!!"

rendered="#{not empty mainController.primeName}" />

</h:panelGroup>

</h:form>

DEPARTMENT OF COMPUTER SCIENCE


</ui:define>

</ui:composition>

MAIN CONTROLLER.JAVA:

package lab.view;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;

import javax.faces.bean.ViewScoped;

@ManagedBean

@ViewScoped

public class MainController implements Serializable {

private static final long serialVersionUID = 3973801993975443027L;

private String name;

private String primeName;

private String richName;

public String getName() {

return name;

public void setName(String name) {

this.name = name;

public String getPrimeName() {

return primeName;

DEPARTMENT OF COMPUTER SCIENCE


public void setPrimeName(String primeName) {

this.primeName = primeName;

public String getRichName() {

return richName;

public void setRichName(String richName) {

this.richName = richName;

DEPARTMENT OF COMPUTER SCIENCE


OUTPUT

DEPARTMENT OF COMPUTER SCIENCE


DEPARTMENT OF COMPUTER SCIENCE
HTML RENDER KIT USING JSF FORM

CARDETAILS.XHTML

<?xml version='1.0' encoding='UTF-8' ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"

xmlns:h="http://java.sun.com/jsf/html">

<h:head>

<title>Adding a Form</title>

</h:head>

<h:body>

<h:form>

<h3>Adding Form Components</h3>

<h:panelGrid columns="3">

<h:outputLabel for="cname">Car Name:</h:outputLabel>

<h:inputText value="#{car.cname}" id="cname"></h:inputText>

<br>

<br>

<h:outputLabel for="Id">Car Id:</h:outputLabel>

<h:inputText value="#{car.id}"></h:inputText>

DEPARTMENT OF COMPUTER SCIENCE


<br>

<br>

<h:outputLabel for="color">Color:</h:outputLabel>

<h:inputText value="#{car.color}"></h:inputText>

<br>

<br>

<h:outputLabel for="model">Model:</h:outputLabel>

<h:inputText value="#{car.model}"></h:inputText>

<br>

<br>

<h:outputLabel for="regno">Registration Number:</h:outputLabel>

<h:inputText value="#{car.regno}"></h:inputText>

<br>

<br>

<h:commandButton action="viewdetails" value="Submit"></h:commandButton>

</h:panelGrid>

</h:form>

</h:body>

</html>

VIEWDETAILS.XHTML

<?xml version='1.0' encoding='UTF-8' ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

DEPARTMENT OF COMPUTER SCIENCE


<html xmlns="http://www.w3.org/1999/xhtml"

xmlns:h="http://java.sun.com/jsf/html">

<h:head>

<title>Car Details</title>

</h:head>

<h:body>

Car Id:#{car.id}

<br>

<br>

Car Name:#{car.cname}

<br>

<br>

Car color:#{car.color}

<br>

<br>

Car Model:#{car.model}

<br>

<br>

Car Registration Number:#{car.regno}

</h:body>

</html>

CAR.JAVA

package com.journaldev.jsf.beans;

DEPARTMENT OF COMPUTER SCIENCE


import java.io.Serializable;

import javax.faces.bean.ManagedBean;

import javax.faces.bean.SessionScoped;

@ManagedBean

@SessionScoped

public class Car implements Serializable

private static final long serialVersionUID = 1715935052239888761L;

private String cname;

private String color;

private String Id;

private String model;

private String regno;

public Car()

{}

public Car(String cname, String color, String Id, String model, String regno)

this.cname = cname;

this.color = color;

this.Id = Id;

this.model = model;

this.regno = regno;

DEPARTMENT OF COMPUTER SCIENCE


public String getColor()

return color;

public void setColor(String color)

this.color = color;

public String getCname()

System.out.println("car name is" + cname);

return cname;

public void setCname(String cname)

this.cname = cname;

public String getRegno()

return regno;

public void setRegno(String regno)

DEPARTMENT OF COMPUTER SCIENCE


this.regno = regno;

public String getModel()

return model;

public void setModel(String model)

this.model = model;

public String getId()

return Id;

public void setId(String Id)

this.Id = Id;

CONTEXT.XML

<?xml version="1.0" encoding="UTF-8"?>

<Context antiJARLocking="true" path="/JSF_FormComponent"/>

WEB.XML

DEPARTMENT OF COMPUTER SCIENCE


<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

<context-param>

<param-name>javax.faces.PROJECT_STAGE</param-name>

<param-value>Development</param-value>

</context-param>

<servlet>

<servlet-name>Faces Servlet</servlet-name>

<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>Faces Servlet</servlet-name>

<url-pattern>/faces/*</url-pattern>

</servlet-mapping>

<session-config>

<session-timeout>

</session-timeout>

</session-config>

<welcome-file-list>

<welcome-file>faces/index.xhtml</welcome-file>

DEPARTMENT OF COMPUTER SCIENCE


</welcome-file-list>

</web-app>

POM.XML

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.journaldev.jsf</groupId>

<artifactId>JSF_FormComponent</artifactId>

<version>1.0-SNAPSHOT</version>

<packaging>war</packaging>

<name>JSF_FormComponent</name>

<properties>

<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

</properties>

<dependencies>

<dependency>

<groupId>com.sun.faces</groupId>

<artifactId>jsf-api</artifactId>

<version>2.1.13</version>

</dependency>

DEPARTMENT OF COMPUTER SCIENCE


<dependency>

<groupId>com.sun.faces</groupId>

<artifactId>jsf-impl</artifactId>

<version>2.1.13</version>

</dependency>

<!-- http://repo1.maven.org/maven -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.5</version>

</dependency>

<dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

<version>2.1</version>

</dependency>

<dependency>

<groupId>com.sun.el</groupId>

DEPARTMENT OF COMPUTER SCIENCE


<artifactId>el-ri</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<groupId>javax</groupId>

<artifactId>javaee-web-api</artifactId>

<version>6.0</version>

<scope>provided</scope>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>2.3.2</version>

<configuration>

<source>1.6</source>

<target>1.6</target>

<compilerArguments>

<endorseddirs>${endorsed.dir}</endorseddirs>

</compilerArguments>

</configuration>

DEPARTMENT OF COMPUTER SCIENCE


</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-war-plugin</artifactId>

<version>2.1.1</version>

<configuration>

<failOnMissingWebXml>false</failOnMissingWebXml>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-dependency-plugin</artifactId>

<version>2.1</version>

<executions>

<execution>

<phase>validate</phase>

<goals>

<goal>copy</goal>

</goals>

<configuration>

<outputDirectory>${endorsed.dir}</outputDirectory>

<silent>true</silent>

<artifactItems>

DEPARTMENT OF COMPUTER SCIENCE


<artifactItem>

<groupId>javax</groupId>

<artifactId>javaee-endorsed-api</artifactId>

<version>6.0</version>

<type>jar</type>

</artifactItem>

</artifactItems>

</configuration>

</execution>

</executions>

</plugin>

</plugins>

<finalName>${project.artifactId}</finalName>

</build>

</project>

DEPARTMENT OF COMPUTER SCIENCE


OUTPUT

DEPARTMENT OF COMPUTER SCIENCE


DEPARTMENT OF COMPUTER SCIENCE
CORE RENDER KIT in JSF

INDEX.HTML:

<?xml version='1.0' encoding='UTF-8' ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"

xmlns:h="http://xmlns.jcp.org/jsf/html">

<h:body>

<h:form>

<h:outputLabel for="txtName">

<h:outputText value="Enter Product Name" />

</h:outputLabel>

<h:inputText id="txtName" value="#{obj.name}" />

<br/>

<h:outputLabel for="txtqty">

<h:outputText value="Enter qty" />

</h:outputLabel>

<h:inputText id="txtqty" value="#{obj.qty}" />

<br/>

<h:outputLabel for="txtPrice">

DEPARTMENT OF COMPUTER SCIENCE


<h:outputText value="Enter price" />

</h:outputLabel>

<h:inputText id="txtPrice" value="#{obj.price}" />

<br/>

<h:commandButton id="cmdInsert" value=" Add Item" action="#{obj.add}" />

</h:form>

</h:body>

</html>

WEB.XML:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

<context-param>

<param-name>javax.faces.PROJECT_STAGE</param-name>

<param-value>Development</param-value>

</context-param>

<servlet>

<servlet-name>Faces Servlet</servlet-name>

<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

DEPARTMENT OF COMPUTER SCIENCE


<servlet-name>Faces Servlet</servlet-name>

<url-pattern>/faces/*</url-pattern>

</servlet-mapping>

<session-config>

<session-timeout>

30

</session-timeout>

</session-config>

<welcome-file-list>

<welcome-file>faces/index.xhtml</welcome-file>

</welcome-file-list>

</web-app>

PRODUCT.JAVA:

import javax.faces.bean.ManagedBean;

import javax.faces.bean.SessionScoped;

@ManagedBean(name="obj")

@SessionScoped

public class Product

private String name;

private int qty;

private double price;

DEPARTMENT OF COMPUTER SCIENCE


public Product() {

public String getName() {

return name;

public void setName(String name) {

this.name = name;

public int getqty() {

return qty;

public void setQty(int qty) {

this.qty = qty;

public double getPrice() {

return price;

public void setPrice(double price) {

this.price = price;

public String add(){

System.out.println("Product Inserted...");

System.out.println(name + " " + qty + " " + price);

DEPARTMENT OF COMPUTER SCIENCE


//

if(qty>10)

return "fail";

return "success";

SUCCESS.XHTML :

<?xml version="1.0" encoding="UTF-8"?>

<!--

To change this license header, choose License Headers in Project Properties.

To change this template file, choose Tools | Templates

and open the template in the editor.

-->

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"

xmlns:h="http://xmlns.jcp.org/jsf/html">

<h1> Product Inserted</h1>

#{obj.name} <br/>

#{obj.price}

</html>

fail.xhtml:

DEPARTMENT OF COMPUTER SCIENCE


<?xml version="1.0" encoding="UTF-8"?>

<!--

To change this license header, choose License Headers in Project Properties.

To change this template file, choose Tools | Templates

and open the template in the editor.

-->

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>TODO supply a title</title>

<meta name="viewport" content="width=device-width, initial-scale=1.0"/>

</head>

<body>

<h1> FAAAAILLLLLL</h1></body></html>

DEPARTMENT OF COMPUTER SCIENCE


OUTPUT:

DEPARTMENT OF COMPUTER SCIENCE


DEPARTMENT OF COMPUTER SCIENCE
DEPARTMENT OF COMPUTER SCIENCE
DEPARTMENT OF COMPUTER SCIENCE
ENTERPRISE JAVA BEANS

BANKTRANSACT.JAVA

package bankexamp;

import javax.ejb.Stateful;

@Stateful

public class BankTransact implements BankTransactLocal {

/*Lets consiter default balance to be 1000*/

int balance=1000;

@Override

public void deposit(int amount) {

balance = balance+amount;

// Add business logic below. (Right-click in editor and choose

// "Insert Code > Add Business Method")

@Override

public int withdraw(int amount) {

balance = balance-amount;

return balance;

INDEX.HTML

DEPARTMENT OF COMPUTER SCIENCE


<html>

<head><title>todo supply a title<title>

<meta charset =”UTF-8”>

<meta name=”viewport” content=”width=device-width,initial_scale=1.0”>

</head>

<body>

<form action=” ”>

Enter Amount : <input type=”text” name=”t1”/><br>

Select Transaction:<br>

<input type=”radio” name=”transaction” value=”deposit”>Deposit<br>

<input type=”radio” name=”transaction” value=”withdraw”>Withdraw<br>

</form>

</body>

</html>

TRANSACT.JAVA

import bankexamp.BankTransactLocal;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

DEPARTMENT OF COMPUTER SCIENCE


import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class transact extends HttpServlet {

BankTransactLocal bankTransact = lookupBankTransactLocal();

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=UTF-8");

try (PrintWriter out = response.getWriter()) { /* TODO output your page here. You may use
following sample code. */

out.println("<!DOCTYPE html>");

out.println("<html>");

out.println("<head>");

out.println("<title>Servlet transact</title>");

out.println("</head>");

out.println("<body>");

String s = request.getParameter("transaction");

int amount = Integer.parseInt(request.getParameter("t1"));

if(s.equals("deposit"))

bankTransact.deposit(amount);

out.println(amount+" successfully deposit");

DEPARTMENT OF COMPUTER SCIENCE


}

if(s.equals("withdraw"))

out.println(amount+" successfully withdraw. Your balance


is"+bankTransact.withdraw(amount));

out.println("<h1>Servlet transact at " + request.getContextPath() + "</h1>");

out.println("</body>");

out.println("</html>");

private BankTransactLocal lookupBankTransactLocal() {

try {

Context c = new InitialContext() return (BankTransactLocal)


c.lookup("java:global/Bank/Bank-ejb/BankTransact!bankexamp.BankTransactLocal");

} catch (NamingException ne) {

Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);

throw new RuntimeException(ne);

DEPARTMENT OF COMPUTER SCIENCE


OUTPUT

DEPARTMENT OF COMPUTER SCIENCE


DEPARTMENT OF COMPUTER SCIENCE
DEPARTMENT OF COMPUTER SCIENCE
DEPARTMENT OF COMPUTER SCIENCE
USING WEB CLIENT

package addclient;

import javax.jws.WebService;

import javax.jws.WebMethod;

import javax.jws.WebParam;

@WebService(serviceName = "addclient")

public class addclient {

@WebMethod(operationName = "hello")

public String hello(@WebParam(name = "name") String txt) {

return "Hello " + txt + " !";

@WebMethod(operationName = "add")

public int add(@WebParam(name = "a") int a, @WebParam(name = "b") int b) {

//TODO write your implementation code here:

int c=a+b;

return c;

DEPARTMENT OF COMPUTER SCIENCE


OUTPUT

DEPARTMENT OF COMPUTER SCIENCE


DEPARTMENT OF COMPUTER SCIENCE
USING SESSION BEAN

CALCULATORBEAN.JAVA

package com.hubberspot.session.stateless;

import javax.ejb.Stateless;

import javax.ejb.LocalBean;

@Stateless

@LocalBean

public class CalculatorBean {

public int add(int number1, int number2) {

return number1 + number2;

public int subtract(int number1, int number2) {

return number1 - number2;

public int multiply(int number1, int number2) {

return number1 * number2;

public int division(int number1, int number2) {

return number1 / number2;

DEPARTMENT OF COMPUTER SCIENCE


}

CALCULATORFORMSERVLET.JAVA

package com.hubberspot.Calculator;

import com.hubberspot.session.stateless.CalculatorBean;

import java.io.IOException;

import java.io.PrintWriter;

import javax.ejb.EJB;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "CalculatorFormServlet", urlPatterns = {"/CalculatorFormServlet"})

public class CalculatorFormServlet extends HttpServlet {

@EJB

private CalculatorBean calculatorBean;

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=UTF-8");

int number1 = Integer.parseInt(request.getParameter("number1"));

int number2 = Integer.parseInt(request.getParameter("number2"));

try (PrintWriter out = response.getWriter()) {

DEPARTMENT OF COMPUTER SCIENCE


/* TODO output your page here. You may use following sample code. */

out.println("<!DOCTYPE html>");

out.println("<html>");

out.println("<head>");

out.println("<title>CalculatorFormServlet</title>");

out.println("</head>");

out.println("<body>");

out.println("<h1>Addition of number1 and number2 is - " +calculatorBean.add(number1,


number2)+"</h1>");

out.println("<h1>Subtraction of number1 and number2 is - "


+calculatorBean.subtract(number1, number2)+"</h1>");

out.println("<h1>Multiplication of number1 and number2 is - "


+calculatorBean.multiply(number1, number2)+"</h1>");

out.println("<h1>Division of number1 and number2 is - "


+calculatorBean.division(number1, number2)+"</h1>");

out.println("Click <a href='index.html'>here</a>to go back");

out.println("</body>");

out.println("</html>");

INDEX.JAVA

<html>

<head>

<title>Calculator</title>

DEPARTMENT OF COMPUTER SCIENCE


<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>

<body>

<form method="POST" action="CalculatorFormServlet">

<table>

<tr>

<td> Enter value of number1:</td>

<td><input type="text" name="number1" id="number1"/></td>

</tr>

<tr>

<td> Enter value of number2:</td>

<td><input type="text" name="number2" id="number2"/></td>

</tr>

<tr>

<td><input type="submit" value="submit"/></td>

</tr>

</table>

</form>

</body>

</html>

DEPARTMENT OF COMPUTER SCIENCE


OUTPUT

DEPARTMENT OF COMPUTER SCIENCE


DEPARTMENT OF COMPUTER SCIENCE
STRUTS ACTION

LOGIN.JSP

<%@page pageEncoding="UTF-8"%>

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>

<html:html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Login Page</title>

</head>

<body style="background-color: white">

<html:form action="/login">

<html:errors property="Wrongemail"/>

<%@page contentType="text/html"%>

<html:errors property="Wrongpass"/>

<table border="1">

<thead>

<tr>

<th> Login to your site</th>

<th> </th>

</tr>

</thead>

<tbody>

DEPARTMENT OF COMPUTER SCIENCE


<tr>

<td> Email:</td>

<td> <html:text property="email"/> </td>

</tr>

<tr>

<td>Password:</td>

<td> <html:password property="pass"/> </td>

</tr>

</tbody>

</table>

<html:submit value="Login"/>

</html:form>

</body>

</html:html>

SUCCESS.JSP

<%--

Document : sucess

Created on : Feb 21, 2018, 3:44:27 PM

Author : user

--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

DEPARTMENT OF COMPUTER SCIENCE


"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Login Successfully</title>

</head>

<body>

<h1>Login Successfully done</h1>

<p> Email: <bean:write name="LoginActionForm" property="email"/> . </p>

<p> Password: <bean:write name="LoginActionForm" property="pass"/> . </p>

</body>

</html>

FAILURE.JSP

<%--

Document : failure

Created on : Feb 21, 2018, 3:48:40 PM

Author : user

--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

DEPARTMENT OF COMPUTER SCIENCE


<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Login Failure</title>

</head>

<body>

<h1>Login Failure</h1>

<p> Email: <bean:write name="LoginActionForm" property="email"/> . </p>

<p> Password: <bean:write name="LoginActionForm" property="pass"/> . </p>

</body>

</html>

LOGINACTIONFORM

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package com.myapp.struts;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionMessage;

/**

DEPARTMENT OF COMPUTER SCIENCE


*

* @author user

*/

public class LoginActionForm extends org.apache.struts.action.ActionForm {

private String email;

private String pass;

public void setEmail(String email) {

this.email = email;

public String getEmail() {

return email;

public String getPass() {

return pass;

/**

* @return

*/

/* public String getName() {

return name;

/**

* @param string

DEPARTMENT OF COMPUTER SCIENCE


*/

/* public void setName(String string) {

name = string;

/**

* @return

*/

/* public int getNumber() {

return number;

/**

* @param i

*/

public void setPass(String pass) {

this.pass = pass;

/* public void setNumber(int i) {

number = i;

/**

*/

public LoginActionForm() {

DEPARTMENT OF COMPUTER SCIENCE


super();

// TODO Auto-generated constructor stub

/**

* This is the action called from the Struts framework.

* @param mapping The ActionMapping used to select this instance.

* @param request The HTTP Request we are processing.

* @return

*/

@Override

public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {

ActionErrors errors = new ActionErrors();

if (getEmail() == null || getEmail().length() < 6) {

errors.add("wrongemail", new ActionMessage("error.email","This email"));

if (getPass() == null || getPass().length() < 5) {

errors.add("wrongpass", new ActionMessage("error.minlength","Password","6"));

return errors;

LOGINACTION

DEPARTMENT OF COMPUTER SCIENCE


/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package com.myapp.struts;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

/**

* @author user

*/

public class LoginAction extends org.apache.struts.action.Action {

/* forward name="success" path="" */

private static final String SUCCESS = "success";

private static final String FAILURE = "failure";

/**

* This is the action called from the Struts framework.

* @param mapping The ActionMapping used to select this instance.

DEPARTMENT OF COMPUTER SCIENCE


* @param form The optional ActionForm bean for this request.

* @param request The HTTP Request we are processing.

* @param response The HTTP Response we are processing.

* @throws java.lang.Exception

* @return

*/

@Override

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

LoginActionForm data = (LoginActionForm)form;

String email = data.getEmail();

String pass = data.getPass();

if((email.equals("kalai@yahoo.com"))&&(pass.equals("admin")))

return mapping.findForward(SUCCESS);

} else {

return mapping.findForward(FAILURE);

STRUTS.CONFIG.XML

<?xml version="1.0" encoding="UTF-8" ?>

DEPARTMENT OF COMPUTER SCIENCE


<!DOCTYPE struts-config PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"

"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">

<struts-config>

<form-beans>

<form-bean name="LoginActionForm" type="com.myapp.struts.LoginActionForm"/>

</form-beans>

<global-exceptions>

</global-exceptions>

<global-forwards>

<forward name="login" path="/Login.do"/>

</global-forwards>

<action-mappings>

<action input="/Login.jsp" name="LoginActionForm" path="/login" scope="request"


type="com.myapp.struts.LoginAction">

<forward name="success" path="/sucess.jsp"/>

<forward name="failure" path="/failure.jsp"/>

</action>

<action path="/Login" forward="/login.jsp"/>

</action-mappings>

<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>

<message-resources parameter="com/myapp/struts/ApplicationResource"/>

DEPARTMENT OF COMPUTER SCIENCE


<!-- ========================= Tiles plugin
===============================-->

<plug-in className="org.apache.struts.tiles.TilesPlugin" >

<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />

<set-property property="moduleAware" value="true" />

</plug-in>

<!-- ========================= Validator plugin


================================= -->

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">

<set-property

property="pathnames"

value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>

</plug-in>

</struts-config>

Validation.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE form-validation PUBLIC

"-//Apache Software Foundation//DTD Commons Validator Rules Configuration


1.1.3//EN"

"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">

<form-validation>

<global>

<!-- An example global constant

DEPARTMENT OF COMPUTER SCIENCE


<constant>

<constant-name>postalCode</constant-name>

<constant-value>^\d{5}\d*$</constant-value>

</constant>

end example-->

</global>

<formset>

<!-- An example form -->

<form name="logonForm">

<field

property="username"

depends="required">

<arg key="logonForm.username"/>

</field>

<field

property="password"

depends="required,mask">

<arg key="logonForm.password"/>

<var>

<var-name>mask</var-name>

<var-value>^[0-9a-zA-Z]*$</var-value>

</var>

</field>

DEPARTMENT OF COMPUTER SCIENCE


</form>

</formset>

<!-- An example formset for another locale -->

<formset language="fr">

<constant>

<constant-name>postalCode</constant-name>

<constant-value>^[0-9a-zA-Z]*$</constant-value>

</constant>

<!-- An example form -->

<form name="logonForm">

<field

property="username"

depends="required">

<arg key="logonForm.username"/>

</field>

<field

property="password"

depends="required,mask">

<arg key="logonForm.password"/>

<var>

<var-name>mask</var-name>

<var-value>^[0-9a-zA-Z]*$</var-value>

</var>

DEPARTMENT OF COMPUTER SCIENCE


</field>

</form>

</formset>

</form-validation>

DEPARTMENT OF COMPUTER SCIENCE


OUTPUT

DEPARTMENT OF COMPUTER SCIENCE


DEPARTMENT OF COMPUTER SCIENCE
STRUTS FORWARD ACTION

LOGINJSP.JSP:

<%--

Document : login

Created on : Mar 10, 2018, 9:53:45 AM

Author : student

--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>JSP Page</title>

</head>

<body>

<h1>Login Page</h1>

<form action="" method="Post">

UserName<input type="text" name="uname"/><br/>

Password <input type="password" name="upass"/><br/>

<input type="submit" value="Ok"/>

</form>

DEPARTMENT OF COMPUTER SCIENCE


</body>

</html>

SUCCESS.JSP

<%--

Document : success

Created on : Mar 10, 2018, 9:10:02 AM

Author : student

--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Jsp Page</title>

<style>

table, th, td {

border: 1px solid black ; }

</style>

</head>

<body>

<table style="width:90%">

<tr>

<th>Name</th>

DEPARTMENT OF COMPUTER SCIENCE


<th>Place</th>

<th>Email</th>

<th>Designation</th>

</tr>

<tr>

<td>Priya</td>

<td>Anaiyeri</td>

<td>priya@gmail.com</td>

<td>M.sc</td>

</tr>

<tr>

<td>Silambaresi</td>

<td>Nyanodhayam</td>

<td>silambarasi@gmail.com</td>

<td>M.sc</td>

</tr>

<tr>

<td>Dharani</td>

<td>Thaiyur</td>

<td>dharani@gmail.com</td>

<td>M.sc</td>

</tr>

<tr>

DEPARTMENT OF COMPUTER SCIENCE


<td>YuvaRani</td>

<td>Melkaranai</td>

<td>yuva@gmail.com</td>

<td>M.sc</td></tr>

</table>

</body></html>

FAILURE.JSP:

<%--

Document : failure

Created on : Mar 10, 2018, 9:10:16 AM

Author : student

--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Jsp Page</title>

</head>

<body>

<h1>Invalid User</h1>

<h2>Check Your User Name and Password</h2>

</body>

DEPARTMENT OF COMPUTER SCIENCE


</html>

LOGINBEAN.JAVA

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

packagecom.myapp.struts;

importjavax.servlet.http.HttpServletRequest;

importorg.apache.struts.action.ActionErrors;

importorg.apache.struts.action.ActionMapping;

/**

* @author student

*/

public class LoginBean extends org.apache.struts.action.ActionForm {

private String uname;

private String upass;

(Insert code ->Getter and Setter->Select->LoginBean.)

public String getUname() {

returnuname;

public void setUname(String uname) {

DEPARTMENT OF COMPUTER SCIENCE


this.uname = uname;

public String getUpass() {

returnupass;

public void setUpass(String upass) {

this.upass = upass;

@Override

publicActionErrors validate(ActionMapping mapping, HttpServletRequest request) {

ActionErrors errors = new ActionErrors();

/*if (getName() == null || getName().length() < 1) {

errors.add("name", new ActionMessage("error.name.required"));

// TODO: add 'error.name.required' key to your resources

}*/

return errors; }}

DEPARTMENT OF COMPUTER SCIENCE


OUTPUT:

DEPARTMENT OF COMPUTER SCIENCE


DEPARTMENT OF COMPUTER SCIENCE
DEPARTMENT OF COMPUTER SCIENCE
DEPARTMENT OF COMPUTER SCIENCE
OBJECT RELATIONAL MAPPING

EMPLOYEE.JAVA

import java.util.*;

public class Employee {

private int id;

private String firstName;

private String lastName;

private int salary;

private Collection certificates;

public Employee() {}

public Employee(String fname, String lname, int salary) {

this.firstName = fname;

this.lastName = lname;

this.salary = salary;

public int getId() {

return id;

public void setId( int id ) {

this.id = id;

DEPARTMENT OF COMPUTER SCIENCE


}

public String getFirstName() {

return firstName;

public void setFirstName( String first_name ) {

this.firstName = first_name;

public String getLastName() {

return lastName;

public void setLastName( String last_name ) {

this.lastName = last_name;

public int getSalary() {

return salary;

public void setSalary( int salary ) {

this.salary = salary;

public Collection getCertificates() {

return certificates;

public void setCertificates( Collection certificates ) {

DEPARTMENT OF COMPUTER SCIENCE


this.certificates = certificates;

CERTIFICATE.JAVA

public class Certificate{

private int id;

private String name;

public Certificate() {}

public Certificate(String name) {

this.name = name;

public int getId() {

return id;

public void setId( int id ) {

this.id = id;

public String getName() {

return name;

public void setName( String name ) {

this.name = name;

DEPARTMENT OF COMPUTER SCIENCE


}

EMPLOYEE.HBM.XML

<?xml version = "1.0" encoding = "utf-8"?>

<!DOCTYPE hibernate-mapping PUBLIC

"-//Hibernate/Hibernate Mapping DTD//EN"

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

<class name = "Employee" table = "EMPLOYEE">

<meta attribute = "class-description">

This class contains the employee detail.

</meta>

<id name = "id" type = "int" column = "id">

<generator class="native"/>

</id>

<bag name = "certificates" cascade="all">

<key column = "employee_id"/>

<one-to-many class="Certificate"/>

</bag>

<property name = "firstName" column = "first_name" type = "string"/>

<property name = "lastName" column = "last_name" type = "string"/>

<property name = "salary" column = "salary" type = "int"/>

</class>

<class name = "Certificate" table = "CERTIFICATE">

DEPARTMENT OF COMPUTER SCIENCE


<meta attribute = "class-description">

This class contains the certificate records.

</meta>

<id name = "id" type = "int" column = "id">

<generator class="native"/>

</id>

<property name = "name" column = "certificate_name" type = "string"/>

</class>

</hibernate-mapping>

MANAGEEMPLOYEE.JAVA

import java.util.*;

import org.hibernate.HibernateException;

import org.hibernate.Session;

import org.hibernate.Transaction;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

public class ManageEmployee {

private static SessionFactory factory;

public static void main(String[] args) {

try {

factory = new Configuration().configure().buildSessionFactory();

} catch (Throwable ex) {

DEPARTMENT OF COMPUTER SCIENCE


System.err.println("Failed to create sessionFactory object." + ex);

throw new ExceptionInInitializerError(ex);

ManageEmployee ME = new ManageEmployee();

/* Let us have a set of certificates for the first employee */

ArrayList set1 = new ArrayList();

set1.add(new Certificate("MCA"));

set1.add(new Certificate("MBA"));

set1.add(new Certificate("PMP"));

/* Add employee records in the database */

Integer empID1 = ME.addEmployee("Manoj", "Kumar", 4000, set1);

/* Another set of certificates for the second employee */

ArrayList set2 = new ArrayList();

set2.add(new Certificate("BCA"));

set2.add(new Certificate("BA"));

/* Add another employee record in the database */

Integer empID2 = ME.addEmployee("Dilip", "Kumar", 3000, set2);

/* List down all the employees */

ME.listEmployees();

/* Update employee's salary records */

ME.updateEmployee(empID1, 5000);

/* Delete an employee from the database */

ME.deleteEmployee(empID2);

DEPARTMENT OF COMPUTER SCIENCE


/* List down all the employees */

ME.listEmployees();

/* Method to add an employee record in the database */

public Integer addEmployee(String fname, String lname, int salary, ArrayList cert){

Session session = factory.openSession();

Transaction tx = null;

Integer employeeID = null;

try {

tx = session.beginTransaction();

Employee employee = new Employee(fname, lname, salary);

employee.setCertificates(cert);

employeeID = (Integer) session.save(employee);

tx.commit();

} catch (HibernateException e) {

if (tx!=null) tx.rollback();

e.printStackTrace();

} finally {

session.close();

return employeeID;

/* Method to list all the employees detail */

DEPARTMENT OF COMPUTER SCIENCE


public void listEmployees( ){

Session session = factory.openSession();

Transaction tx = null;

try {

tx = session.beginTransaction();

List employees = session.createQuery("FROM Employee").list();

for (Iterator iterator1 = employees.iterator(); iterator1.hasNext();){

Employee employee = (Employee) iterator1.next();

System.out.print("First Name: " + employee.getFirstName());

System.out.print(" Last Name: " + employee.getLastName());

System.out.println(" Salary: " + employee.getSalary());

Collection certificates = employee.getCertificates();

for (Iterator iterator2 = certificates.iterator(); iterator2.hasNext();){

Certificate certName = (Certificate) iterator2.next();

System.out.println("Certificate: " + certName.getName());

tx.commit();

} catch (HibernateException e) {

if (tx!=null) tx.rollback();

e.printStackTrace();

} finally {

session.close();

DEPARTMENT OF COMPUTER SCIENCE


}

/* Method to update salary for an employee */

public void updateEmployee(Integer EmployeeID, int salary ){

Session session = factory.openSession();

Transaction tx = null;

try {

tx = session.beginTransaction();

Employee employee = (Employee)session.get(Employee.class, EmployeeID);

employee.setSalary( salary );

session.update(employee);

tx.commit();

} catch (HibernateException e) {

if (tx!=null) tx.rollback();

e.printStackTrace();

} finally {

session.close();

/* Method to delete an employee from the records */

public void deleteEmployee(Integer EmployeeID){

Session session = factory.openSession();

Transaction tx = null;

DEPARTMENT OF COMPUTER SCIENCE


try {

tx = session.beginTransaction();

Employee employee = (Employee)session.get(Employee.class, EmployeeID);

session.delete(employee);

tx.commit();

} catch (HibernateException e) {

if (tx!=null) tx.rollback();

e.printStackTrace();

} finally {

session.close();

HIBERNATE.CFG.XML

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration


DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>

<property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>

<property
name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

<property
name="hibernate.connection.url">jdbc:oracle:oci:@//localhost:1521/XE</property>

DEPARTMENT OF COMPUTER SCIENCE


<property name="hibernate.connection.username">system</property>

<property name="hibernate.connection.password">123456</property>

</session-factory>

</hibernate-configuration>

DEPARTMENT OF COMPUTER SCIENCE


OUTPUT

Mysql> select * from EMPLOYEE;

+----+------------+-----------+--------+

| id | first_name | last_name | salary |

+----+------------+-----------+--------+

| 53 | Manoj | Kumar | 5000 |

+----+------------+-----------+--------+

1 row in set (0.00 sec)

mysql> select * from CERTIFICATE;

+----+------------------+-------------+

| id | certificate_name | employee_id |

+----+------------------+-------------+

| 11 | MCA | 53 |

| 12 | MBA | 53 |

| 13 | PMP | 53 |

+----+------------------+-------------+

3 rows in set (0.00 sec)

mysql>

DEPARTMENT OF COMPUTER SCIENCE


COLLECTION MAPPING

TABLE CREATION:

CREATE TABLE `Cart` (

`cart_id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`total` decimal(10,0) NOT NULL,

`name` varchar(10) DEFAULT NULL,

PRIMARY KEY (`cart_id`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

CREATE TABLE `Items` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`cart_id` int(11) unsigned NOT NULL,

`item_id` varchar(10) NOT NULL,

`item_total` decimal(10,0) NOT NULL,

`quantity` int(3) NOT NULL,

PRIMARY KEY (`id`),

KEY `cart_id` (`cart_id`),

DEPARTMENT OF COMPUTER SCIENCE


CONSTRAINT `items_ibfk_1` FOREIGN KEY (`cart_id`) REFERENCES `Cart`
(`cart_id`)

) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

POM.XML:

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.journaldev.hibernate</groupId>

<artifactId>HibernateOneToManyMapping</artifactId>

<version>0.0.1-SNAPSHOT</version>

<dependencies>

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-core</artifactId>

<version>4.3.5.Final</version>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.0.5</version>

DEPARTMENT OF COMPUTER SCIENCE


</dependency>

</dependencies>

</project>

CART.JAVA

package com.journaldev.hibernate.model;

import java.util.Set;

public class Cart {

private long id;

private double total;

private String name;

private Set<Items> items;

public long getId() {

return id;

public void setId(long id) {

this.id = id;

public double getTotal() {

return total;

public void setTotal(double total) {

DEPARTMENT OF COMPUTER SCIENCE


this.total = total;

public String getName() {

return name;

public void setName(String name) {

this.name = name;

public Set<Items> getItems() {

return items;

public void setItems(Set<Items> items) {

this.items = items;

ITEMS.JAVA

package com.journaldev.hibernate.model;

public class Items {

private long id;

private String itemId;

private double itemTotal;

private int quantity;

private Cart cart;

DEPARTMENT OF COMPUTER SCIENCE


//Hibernate requires no-args constructor

public Items(){}

public Items(String itemId, double total, int qty, Cart c){

this.itemId=itemId;

this.itemTotal=total;

this.quantity=qty;

this.cart=c;

public String getItemId() {

return itemId;

public void setItemId(String itemId) {

this.itemId = itemId;

public double getItemTotal() {

return itemTotal;

public void setItemTotal(double itemTotal) {

this.itemTotal = itemTotal;

public int getQuantity() {

return quantity;

DEPARTMENT OF COMPUTER SCIENCE


}

public void setQuantity(int quantity) {

this.quantity = quantity;

public Cart getCart() {

return cart;

public void setCart(Cart cart) {

this.cart = cart;

public long getId() {

return id;

public void setId(long id) {

this.id = id;

HIBERNATEUTIL.JAVA

package com.journaldev.hibernate.util;

import org.hibernate.SessionFactory;

import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

import org.hibernate.cfg.Configuration;

DEPARTMENT OF COMPUTER SCIENCE


import org.hibernate.service.ServiceRegistry;

public class HibernateUtil {

private static SessionFactory sessionFactory;

private static SessionFactory buildSessionFactory() {

try {

// Create the SessionFactory from hibernate.cfg.xml

Configuration configuration = new Configuration();

configuration.configure("hibernate.cfg.xml");

System.out.println("Hibernate Configuration loaded");

ServiceRegistry serviceRegistry = new


StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();

System.out.println("Hibernate serviceRegistry created");

SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);

return sessionFactory;

catch (Throwable ex) {

System.err.println("Initial SessionFactory creation failed." + ex);

ex.printStackTrace();

throw new ExceptionInInitializerError(ex);

public static SessionFactory getSessionFactory() {

DEPARTMENT OF COMPUTER SCIENCE


if(sessionFactory == null) sessionFactory = buildSessionFactory();

return sessionFactory;

HIBERNATE.CFG.XML

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>

<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

<property name="hibernate.connection.password">pankaj123</property>

<property name="hibernate.connection.url">jdbc:mysql://localhost/TestDB</property>

<property name="hibernate.connection.username">pankaj</property>

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

<property name="hibernate.current_session_context_class">thread</property>

<property name="hibernate.show_sql">true</property>

<mapping resource="cart.hbm.xml"/>

<mapping resource="items.hbm.xml"/>

</session-factory>

DEPARTMENT OF COMPUTER SCIENCE


</hibernate-configuration>

CART.HBM.XML

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.journaldev.hibernate.model">

<class name="Cart" table="CART" >

<id name="id" type="long">

<column name="cart_id" />

<generator class="identity" />

</id>

<property name="total" type="double">

<column name="total" />

</property>

<property name="name" type="string">

<column name="name" />

</property>

<set name="items" table="ITEMS" fetch="select">

<key>

<column name="cart_id" not-null="true"></column>

DEPARTMENT OF COMPUTER SCIENCE


</key>

<one-to-many class="Items"/>

</set>

</class>

</hibernate-mapping>

ITEMS.HBM.XML

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.org/dtd/hibernate-mapping-3.0.dtd" >

<hibernate-mapping package="com.journaldev.hibernate.model">

<class name="Items" table="ITEMS">

<id name="id" type="long">

<column name="id" />

<generator class="identity" />

</id>

<property name="itemId" type="string">

<column name="item_id"></column>

</property>

<property name="itemTotal" type="double">

<column name="item_total"></column>

</property>

<property name="quantity" type="integer">

<column name="quantity"></column>

DEPARTMENT OF COMPUTER SCIENCE


</property>

<many-to-one name="cart" class="Cart">

<column name="cart_id" not-null="true"></column>

</many-to-one>

</class>

</hibernate-mapping>

HIBERNATEONETOMANYMAIN.JAVA

package com.journaldev.hibernate.main;

import java.util.HashSet;

import java.util.Set;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import com.journaldev.hibernate.model.Cart;

import com.journaldev.hibernate.model.Items;

import com.journaldev.hibernate.util.HibernateUtil;

public class HibernateOneToManyMain {

public static void main(String[] args) {

Cart cart = new Cart();

cart.setName("MyCart");

Items item1 = new Items("I1", 10, 1, cart);

Items item2 = new Items("I2", 20, 2, cart);

DEPARTMENT OF COMPUTER SCIENCE


Set<Items> itemsSet = new HashSet<Items>();

itemsSet.add(item1); itemsSet.add(item2);

cart.setItems(itemsSet);

cart.setTotal(10*1 + 20*2);

SessionFactory sessionFactory = null;

Session session = null;

Transaction tx = null;

try{

//Get Session

sessionFactory = HibernateUtil.getSessionFactory();

session = sessionFactory.getCurrentSession();

System.out.println("Session created");

//start transaction

tx = session.beginTransaction();

//Save the Model objects

session.save(cart);

session.save(item1);

session.save(item2);

//Commit transaction

tx.commit();

System.out.println("Cart ID="+cart.getId());

}catch(Exception e){

DEPARTMENT OF COMPUTER SCIENCE


System.out.println("Exception occured. "+e.getMessage());

e.printStackTrace();

}finally{

if(!sessionFactory.isClosed()){

System.out.println("Closing SessionFactory");

sessionFactory.close();

DEPARTMENT OF COMPUTER SCIENCE


OUTPUT:

Hibernate Configuration loaded

Hibernate serviceRegistry created

Session created

Hibernate: insert into CART (total, name) values (?, ?)

Hibernate: insert into ITEMS (item_id, item_total, quantity, cart_id) values (?, ?, ?, ?)

Hibernate: insert into ITEMS (item_id, item_total, quantity, cart_id) values (?, ?, ?, ?)

Hibernate: update ITEMS set cart_id=? where id=?

Hibernate: update ITEMS set cart_id=? where id=?

Cart ID=6

DEPARTMENT OF COMPUTER SCIENCE


DEPARTMENT OF COMPUTER SCIENCE
DEPARTMENT OF COMPUTER SCIENCE
DEPARTMENT OF COMPUTER SCIENCE

Вам также может понравиться