`
isiqi
  • 浏览: 16545815 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

JSP+Hibernate入门级实例--留言系统

阅读更多
这是个用JSP+Hibernate编写的非常简单的留言系统例子,是个准三层结构(因为为了节省时间着重介绍hibernate部分,省去的 service层,转而使用jsp页面进行业务处理,但并不是在jsp页面上过多的编写java代码,而是使用专门的jsp作为业务处理层)

开发工具:MyEclipse+Mysql

目录结构如下:

config(配置类)

BeanConfig.java
MessageConfig.java

constants(常量类)

Constants.java

dao(数据访问类)

hibernate
MessageDAO.java
UserDAO.java
IMessageDAO.java
IUserDAO.java

exception(异常类)
MessageAuthorityException.java
MessageDAOException.java
MessageException.java

model(模型类)
Message.hbm.xml
Message.java
User.hbm.xml
User.java

sql (数据库脚本)
scrip.sql

util(工具类)
DaoFactory.java
HibernateDAO.java
HibernateFilter.java
HibernateUtil.java

BeanConfig.java

packagecn.hxex.message.config;

importorg.apache.commons.lang.builder.ReflectionToStringBuilder;

importcn.hxex.message.exception.MessageException;

publicclassBeanConfig
...{
privateStringid;
privateStringtype;

publicStringgetId()...{
returnid;
}

publicvoidsetId(Stringid)...{
this.id=id;
}


publicStringgetType()...{
returntype;
}

publicvoidsetType(Stringtype)...{
this.type=type;
}


privateObjectinstance;
publicObjectgetInstance()
...{
if(null!=instance)returninstance;

try
...{
Classcls
=Class.forName(getType());
instance
=cls.newInstance();
returninstance;
}

catch(Exceptionex)
...{
thrownewMessageException("Couldn'tfindclass:"+getType());
}

}


publicStringtoString()
...{
returnReflectionToStringBuilder.toString(this);
}

}

MessageConfig

packagecn.hxex.message.config;

importjava.util.Hashtable;

importorg.apache.commons.lang.builder.ReflectionToStringBuilder;

importcn.hxex.message.exception.MessageException;

/***//**
*系统配置信息类
*/

publicclassMessageConfig
...{
publicstaticHashtablebeans;

/***//**
*构造函数
*/

publicMessageConfig()
...{
beans
=newHashtable();
}


/***//**
*增加一个BeanConfig对象
*
@parambean
*/

publicvoidaddBean(BeanConfigbean)
...{
beans.put(bean.getId(),bean);
}


/***//**
*得到一个DAO接口对象的实例
*
@paramnameDAO接口对象的名称
*
@return指定DAO接口的实现类的实例
*/

publicObjectgetBean(Stringname)
...{
BeanConfigconfig
=(BeanConfig)beans.get(name);

if(config==null)
...{
thrownewMessageException("Couldn'tfindthebean:"+name);
}


returnconfig.getInstance();
}


publicStringtoString()
...{
returnReflectionToStringBuilder.toString(this);
}

}

Constants

packagecn.hxex.message.constants;

publicclassConstants...{
publicstaticfinalStringSESSION_USER="cn.hxex.message.user";
}

IMessageDAO

packagecn.hxex.message.dao;

importjava.util.List;

importcn.hxex.message.model.Message;

publicinterfaceIMessageDAO
...{
publicvoidsaveMessage(Messagemessage);
publicvoidupdateMessage(Messagemessage);
publicListgetMessages();
publicvoiddeleteMessage(Stringid,StringuserId);
publicMessagegetMessage(Stringid);
}

IUserDAO

packagecn.hxex.message.dao;

importcn.hxex.message.model.User;

publicinterfaceIUserDAO
...{
publicvoidsaveUser(Useruser);
publicUsergetUser(Stringusername);
publicUsergetUserById(Stringid);
}

MessageDAO

packagecn.hxex.message.dao.hibernate;

importjava.util.List;

importcn.hxex.message.dao.IMessageDAO;
importcn.hxex.message.exception.MessageDAOException;
importcn.hxex.message.model.Message;
importcn.hxex.message.util.HibernateDAO;

/***//**
*IMessageDAO接口的Hibernate实现
*/

publicclassMessageDAOextendsHibernateDAOimplementsIMessageDAO
...{

/***//**
*保存留言信息
*
*
@parammessage
*被保存的留言对象
*/

publicvoidsaveMessage(Messagemessage)
...{
super.saveObject(message);
}


/***//**
*得到所有的留言信息
*
*
@return返回所有的留言信息
*/

publicListgetMessages()
...{
Stringhsql
="fromMessage";
returnsuper.getObjects(hsql);
}


/***//**
*删除留言信息
*
*
@paramid
*要删除的留言信息的ID值
*
@paramuserId
*执行删除操作的用户ID
*/

publicvoiddeleteMessage(Stringid,StringuserId)
...{
Messagemsg
=getMessage(id);
if(msg==null)
...{
thrownewMessageDAOException("找不到你所要删除的留言!");
}


if(!msg.getUser().getId().equals(userId))
...{
thrownewMessageDAOException("你不能删除别人的留言!");
}


deleteObject(msg);
}


/***//**
*得到留言信息
*
*
@paramid
*留言的ID值
*
@return指定ID值得留言对象
*/

publicMessagegetMessage(Stringid)
...{
return(Message)getObject(Message.class,id);
}


/***//**
*更新留言信息
*
*
@parammessage
*欲更新的留言对象
*/

publicvoidupdateMessage(Messagemessage)
...{
updateObject(message);
}


}


UserDAO
packagecn.hxex.message.dao.hibernate;

importcn.hxex.message.dao.IUserDAO;
importcn.hxex.message.exception.MessageDAOException;
importcn.hxex.message.model.User;
importcn.hxex.message.util.HibernateDAO;

/***//**
*IUserDAO接口的Hibernate实现
*/

publicclassUserDAOextendsHibernateDAOimplementsIUserDAO
...{

/***//**
*保存用户信息到数据库
*
@paramuser被保存的用户对象
*/

publicvoidsaveUser(Useruser)
...{
if(user==null)
return;

Useru
=getUser(user.getName());
if(u!=</sp
分享到:
评论

相关推荐

    Struts+Spring+Hibernate入门级实例

    这个入门级实例将引导初学者了解如何整合这三个框架来实现基本的CRUD(创建、读取、更新和删除)操作。 首先,我们来看Struts框架。Struts是基于Model-View-Controller(MVC)设计模式的,它提供了一个用于处理用户...

    struts+hibernate入门实例(eclipse版)

    ### Struts + Hibernate 入门实例(Eclipse 版) #### 一、开发环境搭建 在本章节中,作者朱千平将引导我们完成开发环境的搭建,包括以下几个步骤: 1. **下载安装Eclipse**: Eclipse 是一个开源的集成开发环境...

    struts+spring+hibernate入门实例

    这个"struts+spring+hibernate入门实例"旨在帮助初学者理解这三者如何协同工作,创建一个功能完整的Web应用。 Struts 是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于控制视图与模型之间的...

    struts2+spring+hibernate 入门实例

    这个入门实例旨在帮助初学者快速理解这三个框架如何协同工作,实现一个基本的学生信息管理系统。 首先,Struts2是基于MVC(Model-View-Controller)模式的Web框架,它主要负责处理HTTP请求,控制应用程序流程,以及...

    Struts+Hibernate入门实例(eclipse版).doc

    ### Struts+Hibernate入门实例(eclipse版)知识点详解 #### 一、前言与背景介绍 随着企业级应用的发展,J2EE 和 .NET 成为了两大主流技术栈。本文主要聚焦于 J2EE 方向,特别是其中两个重要的开源框架:Hibernate ...

    spring+hibernate+structs经典入门 实例 spring电子书

    2. "spring+hibernate+structs经典入门":这本书很可能提供了Spring、Hibernate和Struts的集成使用实例,涵盖了它们的基本概念、配置以及如何协同工作来处理请求、数据持久化和业务逻辑。 3. "Spring开发指南":这份...

    spring+struts+hibernate(简单入门实例)

    Spring、Struts和Hibernate是Java开发中非常经典的三大框架,它们各自负责应用程序的不同层面:Spring作为全面的轻量级框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等核心功能;Struts则是...

    基于Struct+Hibernate的BS程序开发入门实例剖析2

    【Struct+Hibernate的BS程序开发入门实例剖析】 在IT领域,构建基于Browser/Server(B/S)架构的应用程序已经成为主流,这种模式下,用户通过浏览器访问服务器上的应用程序,实现数据的交互。本篇将深入剖析如何...

    SSH(spring+springmvc+hibernate+mysql)入门实例

    这个入门实例将带你逐步了解如何整合这三个框架,并使用MySQL作为数据库,实现一个全注解驱动的项目,避免了传统Hibernate中的XML配置文件。 **Spring框架** Spring是Java应用的核心框架,提供了依赖注入(DI)和面向...

    struts2+hibernate3.2+spring2.0配置+入门实例

    本文将详细介绍如何配置和构建一个基于Struts2、Hibernate3.2和Spring2.0的企业级Java应用入门实例。首先,我们理解整体架构,这有助于我们更好地了解各个组件的作用。 **1. 整体架构** 在企业级Java应用中,常见...

    Struts2+Hibernate+Spring课件 张志峰版

    3. **Hibernate入门**:理解实体类、配置文件、Session工厂和Session接口的基本使用,以及如何进行CRUD(创建、读取、更新、删除)操作。 4. **Hibernate与Spring整合**:学习Spring的Hibernate模板或者JPA,实现对...

    基于Struts2+Spring+Hibernate+MySql的注册登录系统

    Struts2、Spring和Hibernate是Java EE开发中的三大框架,它们共同构成了SSH(Struts2、Spring、Hibernate)体系,用于构建高效、可扩展的企业级应用程序。本项目是一个基于SSH框架和MySQL数据库的注册登录系统实例,...

    struts+hibernate+spring 增删改查实例

    Struts、Hibernate和Spring是Java开发中非常流行的三大框架,它们各自在Web应用程序的不同层面上发挥作用,共同构建出高效、可维护的系统。Struts主要负责控制层,Hibernate处理持久化层,而Spring则提供了全面的...

    Grails 技术精解与Web开发实践【源码+样章】----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    第一篇 入门篇 第2章 Hello Grails 6 2.1 Grails的安装 6 2.1.1 JDK的安装与配置 6 2.1.2 Grails的安装 7 2.2 创建Grails工程 8 2.3 Grails的MVC架构 11 2.4 Scaffold应用程序 14 2.5 开发工具的使用 17 2.6 本章小...

    j2ee项目struts+hibernate

    - **教程与实例**:网上有许多针对Struts和Hibernate的入门教程和实战项目,可以帮助初学者快速上手。 - **书籍**:如《精通Struts2》、《Hibernate in Action》等书籍,系统讲解了这两个框架的理论和实践。 总的...

    hibernate+struts2简单实例入门

    【hibernate+struts2简单实例入门】 Hibernate和Struts2是两个非常重要的Java Web开发框架,它们分别负责持久层管理和控制层处理。在这个实例中,我们将学习如何将这两个框架整合,创建一个简单的Web应用,实现数据...

    SSH 入门程序(struts+spring+hibernate)

    SSH入门程序是一个帮助开发者熟悉这三个框架集成使用的实例教程。 **Struts** 是一个基于MVC设计模式的Java Web框架,主要负责处理用户请求和控制应用程序流程。它通过Action类处理HTTP请求,并将结果转发到指定的...

Global site tag (gtag.js) - Google Analytics