-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: how develop crud operations in hibernate using struts
PostPosted: Fri Dec 16, 2005 1:25 am 
Newbie

Joined: Tue Dec 13, 2005 9:16 am
Posts: 6
Location: secundrabad
Need help with Hibernate? Read this first:
how develop crud operations in hibernate using struts


here i developes one progarm but this is hard coded for one table i want display all table in combobox we can select on the broser a/c to the tsblr we can perform the crud operations



IselectTable.java

package com.ebaseindia.valuesys.handling_data.tables;
import com.ebaseindia.valuesys.handling_data.tables.actions.Table;
public interface ISelectTable
{
public java.util.List getFields(String table,int number)throws Exception;
public boolean insert(Table table)throws Exception;
public java.util.List getRows()throws Exception;
public boolean delete(Table table,int n)throws Exception;
public boolean update(Table table,int number)throws Exception;

}


SelectTableImp.java



package com.ebaseindia.valuesys.handling_data.tables.actions;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Query;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.ebaseindia.valuesys.handling_data.tables.ISelectTable;
public class SelectTableImpl implements ISelectTable
{
SessionFactory sessionFactory=null;
public SelectTableImpl(){
super();
init();
}
public void init(){

try{
sessionFactory = new Configuration().configure().buildSessionFactory();
}catch(Exception e){
e.printStackTrace();
}
}
public java.util.List getFields(String tableName,int number){
Session session=sessionFactory.openSession();
Transaction txt=session.beginTransaction();
Query q=session.createQuery("from com.ebaseindia.valuesys.handling_data.tables.actions.Table" +" tab where tab.number="+number);
java.util.List list=q.list();
txt.commit();
session.close();
System.out.println(((Table)list.get(0)).getNumber());
System.out.println(((Table)list.get(0)).getName());
return list;
}
public boolean insert(Table t){

try{
Session session=sessionFactory.openSession();
Transaction txt=session.beginTransaction();
session.save(t);
txt.commit();
session.close();
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}

}
public java.util.List getRows(){

Session session=sessionFactory.openSession();
Transaction txt=session.beginTransaction();
Query q=session.createQuery("from com.ebaseindia.valuesys.handling_data.tables.actions.Table");
java.util.List list=q.list();
txt.commit();
session.close();
System.out.println(((Table)list.get(0)).getNumber());
return list;
}
public boolean update(Table t,int number){
try{
Session session=sessionFactory.openSession();
Transaction txt=session.beginTransaction();
session.update(t,new Integer(number));
txt.commit();
session.close();
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}
}

public boolean delete(Table t,int n){
Session session=sessionFactory.openSession();
Transaction txt=session.beginTransaction();
session.load(t,new Integer(n));
session.delete(t);
txt.commit();
session.close();
return true;
}


}


Table.java



ackage com.ebaseindia.valuesys.handling_data.tables.actions;
public class Table
{
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setNumber(int number){
this.number=number;
}
public int getNumber(){
return number;
}
private String name;
int number;
}


SelectTableForm.java


package com.ebaseindia.valuesys.handling_data.tables.forms;
import org.apache.struts.action.ActionForm;
public class SelectTableForm extends ActionForm
{
public void setTableName(String tableName){
this.tableName=tableName;
}
public String getTableName(){
return tableName;
}
public void setOperation(String operation){
this.operation=operation;
}
public String getOperation(){
return operation;
}
private String tableName,operation;
}




SelectTableAction.java



package com.ebaseindia.valuesys.handling_data.tables.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.actions.DispatchAction;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.ebaseindia.valuesys.handling_data.tables.ISelectTable;
import com.ebaseindia.valuesys.handling_data.tables.forms.InsertTableForm;
import com.ebaseindia.valuesys.handling_data.tables.forms.SelectTableForm;

public class SelectTableAction extends DispatchAction
{
public ActionForward insert(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

ActionErrors errors = new ActionErrors(); // for errors
ActionForward forward = new ActionForward(); // return value
String target="fail";

System.out.println("before try");

try{

SelectTableForm stForm=(SelectTableForm)form;
HttpSession session = request.getSession();
String tableName = stForm.getTableName();
session.setAttribute("tableName",tableName);

ISelectTable ist=new SelectTableImpl();
java.util.List tableFields=ist.getRows();
int max=0;
for(int i=0;i<tableFields.size();i++){
if( max<((Table)tableFields.get(i)).getNumber())
max=((Table)tableFields.get(i)).getNumber();
}
session.setAttribute("id",new Integer(max+1));
//session.setAttribute("tableFields",tableFields);

return mapping.findForward("insert");

}catch(Exception e){
System.out.println("in cathc");
e.printStackTrace();
errors.add("error",new ActionError("errorID"));
}
forward=new ActionForward(target);
return forward;
}
public ActionForward update(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ActionErrors errors = new ActionErrors(); // for errors
ActionForward forward = new ActionForward(); // return value
String target="fail";

System.out.println("before try");
try{

SelectTableForm stForm=(SelectTableForm)form;
HttpSession session = request.getSession();
String tableName = stForm.getTableName();
session.setAttribute("tableName",tableName);

ISelectTable ist=new SelectTableImpl();
java.util.List tableFields=ist.getRows();
session.setAttribute("tableFields",tableFields);

return mapping.findForward("update");

}catch(Exception e){
System.out.println("in cathc");
e.printStackTrace();
errors.add("error",new ActionError("errorID"));
}
forward=new ActionForward(target);
return forward;

}
public ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

ActionErrors errors = new ActionErrors(); // for errors
ActionForward forward = new ActionForward(); // return value
String target="fail";

System.out.println("before try");

try{

SelectTableForm stForm=(SelectTableForm)form;
HttpSession session = request.getSession();
String tableName = stForm.getTableName();
session.setAttribute("tableName",tableName);

ISelectTable ist=new SelectTableImpl();
java.util.List tableFields=ist.getRows();
session.setAttribute("tableFields",tableFields);

return mapping.findForward("delete");

}catch(Exception e){
System.out.println("in cathc");
e.printStackTrace();
errors.add("error",new ActionError("errorID"));
}
forward=new ActionForward(target);
return forward;
}


}




InsertTableForm.java



package com.ebaseindia.valuesys.handling_data.tables.forms;
import org.apache.struts.action.ActionForm;
public class InsertTableForm extends ActionForm
{
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setNumber(int number){
this.number=number;
}
public int getNumber(){
return number;
}
private String name;
private int number;
}



InsertTableAction.java



package com.ebaseindia.valuesys.handling_data.tables.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.ebaseindia.valuesys.handling_data.tables.forms.InsertTableForm;
import com.ebaseindia.valuesys.handling_data.tables.forms.SelectTableForm;
import com.ebaseindia.valuesys.handling_data.tables.ISelectTable;

public class InsertTableAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

ActionErrors errors = new ActionErrors(); // for errors
ActionForward forward = new ActionForward(); // return value
String target="error";

try{

InsertTableForm stForm=(InsertTableForm)form;

String name = stForm.getName();
// String number=stForm.getNumber();

Table t=new Table();
// t.setNumber(number);
t.setName(name);
ISelectTable ist=new SelectTableImpl();
boolean flag=ist.insert(t);
if(flag)
return mapping.findForward("insert");
return mapping.findForward("fail");

}catch(Exception e){
e.printStackTrace();
errors.add("error",new ActionError("errorID"));
}
forward=new ActionForward(target);
return forward;
}

}




DeleteTableForm.java



package com.ebaseindia.valuesys.handling_data.tables.forms;
import org.apache.struts.action.ActionForm;
public class DeleteTableForm extends ActionForm
{

public void setRowID(int number){
this.number=number;
}
public int getRowID(){
return number;
}

private int number;
}





DeleteTableAction.java


package com.ebaseindia.valuesys.handling_data.tables.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.ebaseindia.valuesys.handling_data.tables.forms.DeleteTableForm;
import com.ebaseindia.valuesys.handling_data.tables.ISelectTable;

public class DeleteTableAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

ActionErrors errors = new ActionErrors(); // for errors
ActionForward forward = new ActionForward(); // return value
String target="error";

try{

DeleteTableForm stForm=(DeleteTableForm)form;

int number = stForm.getRowID();

Table t=new Table();
ISelectTable ist=new SelectTableImpl();
boolean flag=ist.delete(t,number);
if(flag)
return mapping.findForward("delete");
return mapping.findForward("fail");

}catch(Exception e){
e.printStackTrace();
errors.add("error",new ActionError("errorID"));
}
forward=new ActionForward(target);
return forward;
}

}



UpdateTableAction.java




package com.ebaseindia.valuesys.handling_data.tables.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.ebaseindia.valuesys.handling_data.tables.forms.InsertTableForm;
import com.ebaseindia.valuesys.handling_data.tables.forms.SelectTableForm;
import com.ebaseindia.valuesys.handling_data.tables.ISelectTable;

public class UpdateTableAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

ActionErrors errors = new ActionErrors(); // for errors
ActionForward forward = new ActionForward(); // return value
String target="error";

try{

InsertTableForm stForm=(InsertTableForm)form;

String name = stForm.getName();
int number=stForm.getNumber();

Table t=new Table();
t.setNumber(number);
t.setName(name);
ISelectTable ist=new SelectTableImpl();
boolean flag=ist.update(t,number);
if(flag)
return mapping.findForward("update");
return mapping.findForward("fail");

}catch(Exception e){
e.printStackTrace();
errors.add("error",new ActionError("errorID"));
}
forward=new ActionForward(target);
return forward;
}

}


SelectDataAction.java

package com.ebaseindia.valuesys.handling_data.tables.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.ebaseindia.valuesys.handling_data.tables.forms.DeleteTableForm;
import com.ebaseindia.valuesys.handling_data.tables.ISelectTable;

public class SelectDataAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

ActionErrors errors = new ActionErrors(); // for errors
ActionForward forward = new ActionForward(); // return value
String target="error";

try{

DeleteTableForm stForm=(DeleteTableForm)form;
HttpSession session = request.getSession();

int number = stForm.getRowID();

Table t=new Table();
ISelectTable ist=new SelectTableImpl();
java.util.List tableFields=ist.getFields((String)session.getAttribute("tableName"),number);
session.setAttribute("tableFields",tableFields);
return mapping.findForward("display");
}catch(Exception e){
e.printStackTrace();
errors.add("error",new ActionError("errorID"));
}
forward=new ActionForward(target);
return forward;
}

}

example.hbm.xml




<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

<class name="com.ebaseindia.valuesys.handling_data.tables.actions.Table" table="ExampleTable">

<!-- A 32 hex character is our surrogate key. It's automatically
generated by Hibernate with the UUID pattern. -->
<id name="number" type="int">
<column name="id"/>
<!-- <generator class="sequence">
<param name="sequence">exampletable_id_seq</param>
</generator> -->
<generator class="increment"/>
</id>

<!-- A cat has to have a name, but it shouldn' be too long. -->
<property name="name" column="name"/>
</class>

</hibernate-mapping>



<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

<class name="com.ebaseindia.valuesys.handling_data.tables.actions.Table" table="ExampleTable">

<!-- A 32 hex character is our surrogate key. It's automatically
generated by Hibernate with the UUID pattern. -->
<id name="number" type="int">
<column name="id"/>
<!-- <generator class="sequence">
<param name="sequence">exampletable_id_seq</param>
</generator> -->
<generator class="increment"/>
</id>

<!-- A cat has to have a name, but it shouldn' be too long. -->
<property name="name" column="name"/>
</class>

</hibernate-mapping>



hibernate.cfg.xml



<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>

<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:oracle</property>
<property name="connection.user">scott</property>
<property name="connection.password">tiger</property>
<!-- Mapping files -->
<mapping resource="ExampleTable.hbm.xml"/>

</session-factory>

</hibernate-configuration>
delete.jsp


<html>
<body>
<form action="delete.do">
<select name="rowID">
<%
java.util.List l=(java.util.List)session.getAttribute("tableFields");

for(int i=0;i<l.size();i++)
{
%>
<option>
<%
out.println( ((com.ebaseindia.valuesys.handling_data.tables.actions.Table)l.get(i)).getNumber());
%>
</option>
<%
}
%>
</select>
<input type="submit" value="delete">
</form>


<!--
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<html:html>
<body>
<html:form action="delete">
<html:select property="rowID">

<logic:iterate name="tableFields" id="tf">
<html:option value='<bean:write name="tf" property="name"/>'>
<bean:write name="tf" property="name"/>
</html:option>
</logic:iterate>
</html:select>
<html:submit/>
</html:form>
</body>
</html:html>
-->


update.jsp

<html>
<body>
<form action="getData.do">
<select name="rowID">
<%
java.util.List l=(java.util.List)session.getAttribute("tableFields");

for(int i=0;i<l.size();i++)
{
%>
<option>
<%
out.println( ((com.ebaseindia.valuesys.handling_data.tables.actions.Table)l.get(i)).getNumber());
%>
</option>
<%
}
%>
</select>
<input type="submit" value="update">
</form>





Display.jsp



<html>
<body>
<form action="update.do">

<%
java.util.List l=(java.util.List)session.getAttribute("tableFields");

for(int i=0;i<l.size();i++)
{
out.println("<input type=hidden name=number value="+request.getParameter("rowID")+">");
out.println("Number : "+ ((com.ebaseindia.valuesys.handling_data.tables.actions.Table)l.get(i)).getNumber());
out.println("</br>Name : <input type=\"text\" name=\"name\" value="+((com.ebaseindia.valuesys.handling_data.tables.actions.Table)l.get(i)).getName()+"></br>");
}
%>
<input type="submit" value="update">
</form>
</body>
</html>




insrt.jsp


<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

<html:html>
<body>
<html:form action="insert">
Number :<html:text property="number"/>
Name :<html:text property="name"/>
<html:submit/>
</html:form>
</body>
</html:html>





main.jsp


<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<html:html>
<body>
<html:form action="/main">
Select reference table name:
<html:select property="tableName">
<html:option value="exampletable">exampletable</html:option>
<html:option value="upc">upc</html:option>
<html:option value="instrument_type">instrument types</html:option>
</html:select> <br>
Select the option to be perform:
<html:select property="operation">
<html:option value="insert">Insert</html:option>
<html:option value="update">Update</html:option>
<html:option value="delete">Delete</html:option>
</html:select>
<html:submit value="Submit"></html:submit><html:reset value="Reset"></html:reset>
</html:form>
</body>
</html:html>



strutsconfig.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>

<!-- Form Beans -->
<form-beans>
<form-bean
name="insertForm" type="com.ebaseindia.valuesys.handling_data.tables.forms.InsertTableForm">
</form-bean>
<form-bean
name="deleteForm" type="com.ebaseindia.valuesys.handling_data.tables.forms.DeleteTableForm">
</form-bean>
<form-bean
name="mainForm" type="com.ebaseindia.valuesys.handling_data.tables.forms.SelectTableForm">
</form-bean>

</form-beans>
<action-mappings>
<form-bean
name="updateForm" type="com.ebaseindia.valuesys.handling_data.tables.forms.UpdateTableForm">
</form-bean>
<action
path="/main"
type="com.ebaseindia.valuesys.handling_data.tables.actions.SelectTableAction"
name="mainForm"
validate="false"
scope="session"
parameter="operation">
<forward name="insert" path="/Insert.jsp"/>
<forward name="delete" path="/Delete.jsp"/>
<forward name="update" path="/Update.jsp"/>
<forward name="fail" path="/fail.jsp"/>
</action>
<action
path="/insert"
type="com.ebaseindia.valuesys.handling_data.tables.actions.InsertTableAction"
name="insertForm"
validate="false"
scope="session">
<forward name="insert" path="/ISuccess.jsp"/>
<forward name="fail" path="/fail.jsp"/>
</action>
<action
path="/delete"
type="com.ebaseindia.valuesys.handling_data.tables.actions.DeleteTableAction"
name="deleteForm"
validate="false"
scope="session">
<forward name="delete" path="/DSuccess.jsp"/>
<forward name="fail" path="/fail.jsp"/>
</action>
<action
path="/update"
type="com.ebaseindia.valuesys.handling_data.tables.actions.UpdateTableAction"
name="updateForm"
validate="false"
scope="session">
<forward name="delete" path="/USuccess.jsp"/>
<forward name="fail" path="/fail.jsp"/>
</action>

</action-mappings>
</struts-config>




http://www.hibernate.org/ForumMailingli ... AskForHelp

Hibernate version: 3.0

Mapping documents:

Code between sessionFactory.openSession() and session.close():

Full stack trace of any exception that occurs:

Name and version of the database you are using:

The generated SQL (show_sql=true):

Debug level Hibernate log excerpt:


Top
 Profile  
 
 Post subject:
PostPosted: Fri Dec 16, 2005 2:54 am 
Newbie

Joined: Sun Aug 07, 2005 3:55 am
Posts: 11
Location: slovakia
Hey I am realy not sure if this question belongs here ... how You do Your coding conventions is not a matter of the Hibernate forum i guess ?! ... I would suggest to start with the DAO pattern to hide most Hibernate code flawlessly ...

You may start with the example "Hibernate" application CaveatEmptor (available freely in the CVS) for INSPIRATION ;-)))

_________________
JK@res


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.