`
shusanzhan
  • 浏览: 35004 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Struts2和Hibernate3.0一个CRUD实例

阅读更多



 Struts2CRUD实例

一、在这个实例中

可以看到如何进行CREATE、READ、UPDATE、DELETE操作(CRUD)。

页面效果如下图:



 

包目录结构如下:

 

 

二、代码说明

1、Model类User.java

package com.test.model;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.validator.NotEmpty;


@javax.persistence.Entity
@Table(name="user3")
//用注释,hibernate通过反向生成表

public class User {
 private int id;
 private String name;
 private String gender;
 private String country;
 private String aboutYou;
 private Boolean mailingList;
 
 @Id
 @GeneratedValue
 @Column(name="id")
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 @NotEmpty
 @Column(name="name",length=50,nullable=false)
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 @NotEmpty
 @Column(name="gender")
 public String getGender() {
  return gender;
 }
 public void setGender(String gender) {
  this.gender = gender;
 }
 @NotEmpty
 @Column(name="country")
 public String getCountry() {
  return country;
 }
 public void setCountry(String country) {
  this.country = country;
 }
 
 @Column(name="aboutYou",length=100,nullable=false)
 public String getAboutYou() {
  return aboutYou;
 }
 public void setAboutYou(String aboutYou) {
  this.aboutYou = aboutYou;
 }
 @Column(name="mailList")
 public Boolean getMailingList() {
  return mailingList;
 }
 public void setMailingList(Boolean mailingList) {
  this.mailingList = mailingList;
 }
 
 
}
2、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.connection.driver_class">com.mysql.jdbc.Driver</property>
  <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
  <property name="hibernate.connection.username">root</property>
  <property name="connection.password">123456</property>
  <property name="connection.pool_size">1</property>
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  <property name="show_sql">true</property>
  <property name="hbm2ddl.auto">none</property>
  <property name="hibernate.current_session_context_class">jta</property >
  <property name="hibernate.current_session_context_class">thread</property>
  
  <mapping class="com.test.model.User" />//使用的是java类,而不是hbm.xml,前面Model类使用了注释
 </session-factory>
</hibernate-configuration>

 

3、到DaoImpl代码如下

package com.test.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;
import com.test.model.User;

public class UserDaoImpl implements UserDao {

/*这里通过注释,取得Session,和Transaction,参见Full Hibernate Plug-in 1.4 GA

这里你可以通过创建一个HibernateUtil类来获取SessionFactory。

*/
 @SessionTarget
 private Session session;
 @TransactionTarget
 private Transaction transaction;

 public void deleteById(int id) {
  try{
   User user=(User) session.get(User.class, id);
   session.delete(user);
  }catch (Exception e) {
  }
 }

 public User findById(int id) {
  try{
   User user=(User) session.get(User.class, id);
   return user;
  }catch (Exception e) {
   e.printStackTrace();
   return null;
  }
 }

 public List<User> listUsers() {
  List<User> users=null;
  try{
   users=session.createQuery("from User").list();
  }catch (Exception e) {
   e.printStackTrace();
  }
  return users;
 }

 public void saveUser(User user) {
  try {
   session.saveOrUpdate(user);
  } catch (Exception e) {
   transaction.rollback();
   e.printStackTrace();
  }
 }

}

           1、获取SessionFactory的另外的HibernateUtil类

package com.test.util;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUitl {
 private static SessionFactory sessionFactory;
 static {
  try {
   sessionFactory = new Configuration().configure()
     .buildSessionFactory();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 public static SessionFactory getSessionFactory() {
  return sessionFactory;
 }
}

 

 
3、Action类,UserAction类

在UserAction中通ActionContext.getContext().get(ServletActionContext. HTTP_REQUEST)获取HttpServletRequest对象。

package com.test.action;

import java.util.ArrayList;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.test.dao.UserDaoImpl;
import com.test.model.User;

public class UserAction extends ActionSupport implements ModelDriven<User> {
 private User user = new User();
 private List<User> users = new ArrayList<User>();
 private UserDaoImpl userDaoImpl = new UserDaoImpl();

 public User getModel() {
  return user;
 }

 public String add() {
  userDaoImpl.saveUser(user);
  return SUCCESS;
 }

 public String list() {
  users = userDaoImpl.listUsers();
  return SUCCESS;
 }

 public User getUser() {
  return user;
 }

 public void setUser(User user) {
  this.user = user;
 }

 public List<User> getUsers() {
  return users;
 }

 public void setUsers(List<User> users) {
  this.users = users;
 }

}


 4、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>
 <package name="default" extends="hibernate-default">
  <action name="saveOrUpdate" method="saveOrUpdate" class="com.test.action.UserAction">
   <result name="success" type="redirect">listUser</result>
  </action>
  <action name="editUser" method="edit" class="com.test.action.UserAction">
   <result name="success">/register.jsp</result>
  </action>
  <action name="deleteUser" method="delete" class="com.test.action.UserAction">
   <result type="redirect" name="success">listUser</result>
  </action>
  <action name="listUser" method="list" class="com.test.action.UserAction">
   <interceptor-ref name="basicStackHibernate" />
   <result name="success">/register.jsp</result>
  </action>
 </package>
</struts>

 

5、web.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <filter>
  <filter-name>struts</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>struts</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

6、页面register.jsp

这里页面代码就不贴出来了

 综上就是一个完整的Struts2与Hibernate3.0的整合CRUDE实例。并附代码lib包下载。给大家推荐一个很好的Struts1、2。hibernate,Spring实例网站。http://www.vaannila.com/

分享到:
评论

相关推荐

    struts1.2+Hibernate3.0编写的人事管理系统

    Struts1.2是MVC(Model-View-Controller)架构的一种实现,主要用于处理用户界面与业务逻辑之间的交互,而Hibernate3.0则是一个强大的对象关系映射(ORM)工具,它简化了数据库操作,使得开发者可以使用Java对象来...

    struts2 spring 2.5 hibernate3整合 CRUD实例含分页

    struts2 spring 2.5 hibernate3整合 CRUD实例含分页 整合版本struts2 spring 2.5 hibernate3 简单的实现了一个用户的CRUD操作(列表展示有分页版本) 设计到了Validate效验,excel生成下载

    struts2+ejb3.0三个简单实例项目

    Struts2是一个强大的MVC(Model-View-Controller)框架,它简化了Java Web应用的开发,提供了丰富的动作、拦截器和结果集等机制,使得开发者能够更专注于业务逻辑而不是页面跳转和数据绑定。在这些实例中,你可以...

    struts2+hibernate3.3+spring3.0整合实例

    在本实例中,你需要创建一个继承自Struts2的Action类,包含对应数据库操作的方法,并在struts.xml中配置这些方法,指定它们的请求路径和返回结果。 其次,Hibernate3.3是对象关系映射(ORM)框架,它简化了数据库...

    Struts2整合Spring Hibernate的CRUD实例

    在"Struts2整合Spring Hibernate的CRUD实例"中,我们将探讨如何将这三个框架无缝集成,实现对数据库的数据创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作。下面将详细介绍这个实例中的关键知识...

    struts2与hibernate的整合实现数据的crud

    总的来说,整合Struts2和Hibernate能够帮助开发者更高效地实现CRUD操作,同时利用Jquery增强前端用户体验,如复选框删除功能。在实际项目中,还需要注意安全性、性能优化以及错误处理等方面,确保系统的稳定和高效...

    struts2 spring 2.5 hibernate3整合 CRUD实例

    整合版本struts2 spring 2.5 hibernate3 简单的实现了一个用户的CRUD操作 设计到了Validate效验,excel生成下载 不建议下载,这是我自己写的一个测试代码,为以后查资料用的

    基于Struts 2和Hibernate的Blog实现

    总的来说,这个项目为初学者提供了一个学习Struts 2和Hibernate整合应用的良好实例,同时也展示了如何构建一个基本的博客系统。通过这个项目,开发者可以深入了解MVC模式、Struts 2的拦截器、结果类型、值栈以及...

    oa项目应用Java Struts2 spring hibernate 源代码

    Java Struts2、Spring 和 Hibernate 是企业级Java开发中广泛使用的三大框架,它们各自负责不同的职责,协同工作以构建高效、灵活的应用程序。这个OA(办公自动化)项目的源代码提供了结合这三个框架的实际应用实例,...

    struts2与hibernate整合开发

    在整合Struts2和Hibernate时,通常会创建一个Hibernate配置文件(hibernate.cfg.xml),定义数据源、实体类和映射关系。然后,Action类可以通过SessionFactory创建Session对象,使用Session对象来执行CRUD(创建、读取...

    Struts2 Spring Hibernate的配置及登录实例(附源码)

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC架构的一部分,负责处理用户请求和展现视图;Spring作为一个全面的框架,提供依赖注入(DI)和面向切面编程(AOP)...

    struts2、hibernate框架

    Spring与Struts2和Hibernate可以很好地整合,提供了一个称为Spring MVC的Web框架,它同样遵循MVC模式,但具有更现代的设计和更好的组件解耦。 整合Struts2和Hibernate,通常会利用Spring的IoC容器管理Action和DAO...

    用struts2加hibernate对学员信息进行增删改查操作

    1. **Struts2框架**:Struts2是一个MVC(Model-View-Controller)架构的Java框架,它提供了处理HTTP请求和响应的机制,使得开发者能够更好地组织和控制应用的业务逻辑。在Action类中,每个方法通常对应一个特定的...

    10.6struts2+hibernate+spring的整合源代码

    Struts2、Hibernate和Spring是Java企业级应用中常用的三个开源框架,它们分别负责MVC模式中的表现层、持久层和业务层管理。SSH(Struts2+Spring+Hibernate)框架整合是Java Web开发中常见的一种技术栈,能有效地提高...

    Struts2+hibernate项目实例

    Struts2+Hibernate项目实例是基于Java Web技术的典型应用,它将强大的MVC框架Struts2与持久层框架Hibernate相结合,实现了一个高效且灵活的数据管理解决方案。在本项目中,开发者通过Struts2控制器层处理用户请求,...

    struts2+hibernate整合的例子——新闻管理系统

    而Hibernate则是一个对象关系映射(ORM)工具,简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据库。 在这个"新闻管理系统"项目中,Struts2作为前端控制器,负责接收用户请求,调度业务逻辑,并将...

    struts2.3+hibernate3.3+spring3.0整合jar

    这个"ss2h整合jar"可能包含了预编译的、已经整合好的所有必需jar,方便开发者快速搭建一个具备Struts2、Hibernate和Spring功能的项目。使用时,只需将该jar导入项目,配置好相关参数,即可避免手动整合的繁琐工作。...

    spring2.5+strust1+hibernate3.0JAR包集合

    总的来说,这个"spring2.5+struts1+hibernate3.0 JAR包集合"代表了一个成熟、广泛使用的Java Web开发解决方案,它整合了优秀的组件,为开发人员提供了强大的工具,以构建复杂、高性能的应用程序。然而,随着技术的...

Global site tag (gtag.js) - Google Analytics