Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
675 views

JSF Insert Data Into Database Table PDF

This document describes how to insert data into a database table using JSF. It involves creating a database table, Java class, XHTML form, and navigation rules. The Java class contains methods to add data to the table. When the form is submitted, the add method inserts the data and redirects either to a success or error page depending on the result.

Uploaded by

riadelidrissi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
675 views

JSF Insert Data Into Database Table PDF

This document describes how to insert data into a database table using JSF. It involves creating a database table, Java class, XHTML form, and navigation rules. The Java class contains methods to add data to the table. When the form is submitted, the add method inserts the data and redirects either to a success or error page depending on the result.

Uploaded by

riadelidrissi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

JSF Insert Data Into Database Table

To insert the data into a table at first we will required to create a table in the database. Here I have created the
table as follows :
CREATE TABLE `user1` (
`userId` bigint(10) NOT NULL,
`name` varchar(15) NOT NULL,
`address` varchar(255) NOT NULL,
`created_date` date NOT NULL,
PRIMARY KEY (`userId`)
)
Then I have created a project in Eclipse IDE where I have created a class named User.java which contains the
data member userID, name, address, created_date, and their setter getter methods then created a method
named add() where write the code for inserting the data. Then I have created an XHTML page named insert.xhtml
using which I have created an User Interface to provide the data to insert into the table. When you will try to insert
the data to the table after executing this example and if the data is added successfully to the table the add
function will return the String 'output' and it will redirect to the output.xhtml page and if the data is not added to the
table successfully then the add() function will return the String 'invalid' and it will redirect to the invalid.xhtml page.
For the page redirection I have created a navigation-rule in faces-config.xml file
Directory Structure

User.java
package com.dev.user.model;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import javax.faces.context.FacesContext;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.text.SimpleDateFormat;
import java.util.Date;

@ManagedBean(name="user")
@RequestScoped
public class User {
private long userID;
private String name;
private String address;
private Date created_date;
public long getUserID() {
return userID;
}
public void setUserID(long userID) {
this.userID = userID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Date getCreated_date() {
return created_date;
}
public void setCreated_date(Date created_date) {
this.created_date = created_date;
}
public String add()
{
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
int i = 0;
if(userID !=0)

{
PreparedStatement ps = null;
Connection con = null;
try
{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/record", "root",
"root");
String sql = "INSERT INTO user1(userId, name, address, created_date)
VALUES(?,?,?,?)";
ps= con.prepareStatement(sql);
ps.setLong(1, userID);
ps.setString(2, name);
ps.setString(3, address);
if(created_date != null)
{
String date = fmt.format(created_date);
Object obj = date;
if(obj == null)
{
ps.setDate(4, null);
}
else
{
java.sql.Date dt = java.sql.Date.valueOf(new String(date));
ps.setDate(4, dt);
}
}
i = ps.executeUpdate();
System.out.println("Data Added Successfully");
}
catch(Exception e)
{
System.out.println(e);
}
finally
{
try
{
con.close();
ps.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
if(i >0)

{
return "output";
}
else
{
return "invalid";
}
}
else
{
return "invalid";
}
}
}
insert.xhtml
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Insert Data</title>
</h:head>
<h:body>
<f:view>
<h:form>
<table>
<tr>
<td> <h:messages showDetail="true" /> </td>
</tr>
<tr>
<td><h:outputText value="Enter Id : "/></td>
<td><h:inputText value="#{user.userID}"/></td>
</tr>
<tr>
<td><h:outputText value="Enter Name : " /></td>
<td><h:inputText value="#{user.name}" /></td>
</tr>
<tr>
<td><h:outputText value="Enter your address : "/></td>
<td><h:inputText value="#{user.address}" /></td>
</tr>
<tr>
<td><h:outputText value="Enter Created Date : "/></td>
<td><h:inputText value="#{user.created_date}">

<f:convertDateTime pattern="yyyy-MM-dd"/>
</h:inputText></td>
</tr>
<tr>
<td></td>
<td><h:commandButton value="Insert" action="#{user.add}"/></td>
</tr>
</table>
</h:form>
</f:view>
</h:body>
</html>
output.xhtml
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:body>
<h:outputText value="Value added to database successfully."/>
</h:body>
</html>
invalid.xhtml
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:body>
<h:form>
<h:outputText value="Error into adding data "/>
<h:outputLink value="insert.xhtml">Try Again</h:outputLink>
</h:form>
</h:body>
</html>

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>jsfJdbcInsert</display-name>
<welcome-file-list>
<welcome-file>/insert.xhtml</welcome-file>
</welcome-file-list>
<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>
<url-pattern>*.jsf</url-pattern>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<context-param>
<description>State saving method: 'client' or 'server' (=default). See JSF
Specification 2.5.2</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
</web-app>
faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>com.dev.user.model.User</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<description>add user</description>
<from-view-id>/insert.xhtml</from-view-id>
<navigation-case>
<from-action>#{user.add}</from-action>
<from-outcome>output</from-outcome>
<to-view-id>/output.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-action>#{user.add}</from-action>
<from-outcome>invalid</from-outcome>
<to-view-id>/invalid.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
Output
When you will execute the above example you will get the output as follows :

When you will provide the value to the textboxes then the output will be as follows :

When you will click on inset button then the output will be as follows :

An error page like if you will try to reinsert the value with duplicate id in the table then the output will be as follows
:

And at the console you will see the message as follows :

You might also like