Struts2 Insert,Update,Delete,Operations Through JDBC [ Real Time Application ]
|
Struts »
On Feb 1, 2012 | { 7 Comments }
|
Tweet
|
Let us see on how to work with Insert,Update,Delete operations through struts 2 with JDBC connect, a real time application. Even we will see the same application using Struts 2 and Hibernate.
Actually i have not covered example on ServletRequestAware, ServletResponseAware Interface(s) earlier, but its time to use these interfaces too
. Yeah i have used these interfaces in this program.
Directory Structure
![]() |
![]() |
Files Required
- Delete.java
- Display.java
- Links.java
- Mybean.java
- Save.java
- Update.java
- Updates.java
- web.xml
- struts.xml
- dsuccess.jsp
- edit.jsp
- error.jsp
- index.jsp
- retrive.jsp
- ssuccess.jsp
- usuccess.jsp
Delete.java
package java4s;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;
public class Delete extends ActionSupport implements ServletRequestAware{
private static final long serialVersionUID = 1L;
HttpServletRequest request;
public String execute()
{
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
java.sql.Connection con =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","admin");
PreparedStatement ps=null;
String cv[]=request.getParameterValues("rdel");
for(int i=0;i<cv.length;i++)
{
ps=con.prepareStatement("delete from details where SNO=(?)");
int k = Integer.parseInt(cv[i]);
System.out.println("this is" +k);
ps.setInt(1,k);
ps.executeUpdate();
con.commit();
}
ps.close();
con.close();
}
catch(Exception e){
e.printStackTrace();
}
return SUCCESS;
}
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public HttpServletRequest getServletRequest() {
return request;
}
}
Display.java
package java4s;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;
public class Display extends ActionSupport implements ServletRequestAware{
private static final long serialVersionUID = 1L;
HttpServletRequest request;
public String execute()
{
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
java.sql.Connection con =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","admin");
Statement st=con.createStatement();
ResultSet rs = st.executeQuery("select * from details");
List li = null;
li = new ArrayList();
Mybean mb = null;
while(rs.next())
{
mb = new Mybean();
mb.setNo(rs.getInt("sno"));
mb.setNam(rs.getString("sname"));
mb.setCt(rs.getString("scountry"));
li.add(mb);
}
request.setAttribute("disp", li);
rs.close();
st.close();
con.close();
}
catch(Exception e){
e.printStackTrace();
}
return SUCCESS;
}
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public HttpServletRequest getServletRequest() {
return request;
}
}
Links.java
package java4s;
import com.opensymphony.xwork2.ActionSupport;
public class Links extends ActionSupport{
public String save()
{
return "save";
}
public String display()
{
return "display";
}
}
Mybean.java
package java4s;
public class Mybean
{
private int no;
private String nam;
private String ct;
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getNam() {
return nam;
}
public void setNam(String nam) {
this.nam = nam;
}
public String getCt() {
return ct;
}
public void setCt(String ct) {
this.ct = ct;
}
}
Save.java
package java4s;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.opensymphony.xwork2.ActionSupport;
public class Save extends ActionSupport{
private static final long serialVersionUID = 1L;
Mybean mb=new Mybean();
public Mybean getMb() {
return mb;
}
public void setMb(Mybean mb) {
this.mb = mb;
}
public String execute()
{
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
java.sql.Connection con =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","admin");
String s = "insert into details values(?,?,?)";
PreparedStatement ps=con.prepareStatement(s);
ps.setInt(1, mb.getNo());
ps.setString(2, mb.getNam());
ps.setString(3, mb.getCt());
ps.executeUpdate();
con.commit();
ps.close();
con.close();
}
catch(Exception e){
e.printStackTrace();
}
return SUCCESS;
}
}
Update.java
package java4s;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;
public class Update extends ActionSupport implements ServletRequestAware,ApplicationAware{
private static final long serialVersionUID = 1L;
HttpServletRequest request;
Map m;
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public HttpServletRequest getServletRequest() {
return request;
}
public void setApplication(Map m)
{
this.m=m;
}
public String execute()
{
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
java.sql.Connection con =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","admin");
PreparedStatement ps=null;
ps=con.prepareStatement("select * from details where SNO=?");
String a = request.getParameter("fid");
int k = Integer.parseInt(a);
ps.setInt(1,k);
//System.out.println("This is" +k);
ResultSet res = ps.executeQuery();
List l=new ArrayList();
while(res.next())
{
m.put("a",res.getInt("sno"));
m.put("b", res.getString("sname"));
m.put("c",res.getString("scountry"));
}
ps.close();
con.close();
}
catch(Exception e){
e.printStackTrace();
}
return SUCCESS;
}
}
Updates.java
package java4s;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.opensymphony.xwork2.ActionSupport;
public class Updates extends ActionSupport{
private static final long serialVersionUID = 1L;
Mybean mb=new Mybean();
public Mybean getMb() {
return mb;
}
public void setMb(Mybean mb) {
this.mb = mb;
}
public String execute()
{
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
java.sql.Connection con =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","admin");
String s = "update details set sname=?,scountry=? where sno=?";
PreparedStatement ps=con.prepareStatement(s);
ps.setString(1, mb.getNam());
ps.setString(2, mb.getCt());
ps.setInt(3, mb.getNo());
ps.executeUpdate();
con.commit();
ps.close();
con.close();
}
catch(Exception e){
e.printStackTrace();
}
return SUCCESS;
}
}
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_2_5.xsd" id="WebApp_ID" version="2.5"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<package name="a" extends="struts-default">
<action name="view">
<result name="success">/retrive.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="insert">
<result name="success">/ssuccess.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="del">
<result name="success">/dsuccess.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="update">
<result name="success">/edit.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="updates">
<result name="success">/usuccess.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="*Link" method="{1}">
<result name="save">/insertr.jsp</result>
<result name="display">/retrive.jsp</result>
</action>
</package>
</struts>
index.jsp
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=view.action">
insertr.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <link rel="stylesheet" type="text/css" href="css/java4s.css" /> </head> <body> <a href="<s:url action="view.action"/>">Display Records</a> <br><br> <b><font color="#5d8122" face="verdana">Insert Details</font></b> <s:form action="insert"> <s:textfield label="Number" name="mb.no" cssClass="bord"/> <s:textfield label="Name" name="mb.nam" cssClass="bord"/> <s:textfield label="Country" name="mb.ct" cssClass="bord"/> <s:submit value="Insert" /> </s:form> </body> </html>
error.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
Unable to process your request....
<% out.println("Failed"); %>
edit.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page import="java.util.*;" %>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/java4s.css" />
</head>
<body>
<a href="<s:url action="view.action"/>">Display Records</a>
<br><br>
<%-- This is -- <s:property value="#application.a" /> --%>
<b><font color="#5d8122" face="verdana">Update Details</font></b>
<s:form action="updates">
<s:textfield label="Number" value="%{#application.a}" name="mb.no" readonly="true" cssClass="bord"/>
<s:textfield label="Name" value="%{#application.b}" name="mb.nam" cssClass="bord"/>
<s:textfield label="Country" value="%{#application.c}" name="mb.ct" cssClass="bord"/>
<s:submit value="Update" />
</s:form>
</body>
</html>
dsuccess.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> Record deleted successfully...... <META HTTP-EQUIV="Refresh" CONTENT="1;URL=view.action">
retrive.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page import="java.util.*;" %>
<head>
<link rel="stylesheet" type="text/css" href="css/java4s.css" />
<script type="text/javascript">
function deleteRecord()
{
document.fom.action="del.action";
document.fom.submit();
}
function editr(val)
{
document.fom.action="update.action?fid="+val;
document.fom.submit();
}
</script>
</head>
<a href="<s:url action="saveLink.action"/>">Insert</a>
<br><br>
<table>
<form name="fom" method="post">
<%
List l=(List)request.getAttribute("disp");
if(l!=null)
{
Iterator it=l.iterator();
while(it.hasNext())
{
java4s.Mybean b=(java4s.Mybean)it.next();
int tempNum = b.getNo();
String tempName = b.getNam();
String tempCountry = b.getCt();
%>
<tr>
<td><input type="checkbox" value="<%= tempNum %>" name="rdel"></td>
<td><%= tempNum %></td>
<td><%= tempName %></td>
<td><%= tempCountry %></td>
<td><a href="javascript:editr('<%= tempNum %>')">Edit</a></td>
</tr>
<%
}
}
%>
<input type="button" value="delete" onclick="deleteRecord();">
</table>
</form>
ssuccess.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> Record inserted successfully...... <META HTTP-EQUIV="Refresh" CONTENT="1;URL=view.action">
usuccess.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> Record updated successfully...... <META HTTP-EQUIV="Refresh" CONTENT="1;URL=view.action">
Output
![]() |
![]() |
|
What you are thinkig....
7 Responses to “Struts2 Insert,Update,Delete,Operations Through JDBC [ Real Time Application ]”
If you want a pic to show with your comment, go get a gravatar !
Please post your questions on Java4s Answers forum





In the example STRUTS-JDBC-CRUD in every action you write the JDBC code.
Please write the JDBC code separately & call the methods in ACTION & also upload the code as soon as possible.
hi,
I don’t get the “struts-tags” file from your code…..
please help me.
@suhel Mulla
You no need to add separately
I don’t get the “struts-tags” file from your code…..
please help me.
@Parivallal
We no more need to add any external struts-tags in 2.x
you should use custom tag in JSP page and use a separate class for the connection
Can you Please give this code in war file.