package com.util;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.LockMode;
import org.springframework.context.ApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* Data access object (DAO) for domain model class User.
* @see com.util.User
* @author MyEclipse - Hibernate Tools
*/
public class UserDAO extends HibernateDaoSupport {
private static final Log log = LogFactory.getLog(UserDAO.class);
protected void initDao() {
//do nothing
}
public boolean isValidUser(String username, String password) {
String hql = "from User u where u.username=? and u.password=?";
String []userInfo=new String[2];
userInfo[0]=username;
userInfo[1]=password;
List userList = this.getHibernateTemplate().find(hql, userInfo);
if (userList.size() > 0) {
return true;
}
return false;
}
public void save(User transientInstance) {
log.debug("saving User instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
public void delete(User persistentInstance) {
log.debug("deleting User instance");
try {
getHibernateTemplate().delete(persistentInstance);
log.debug("delete successful");
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}
public User findById( java.lang.Integer id) {
log.debug("getting User instance with id: " + id);
try {
User instance = (User) getHibernateTemplate()
.get("com.util.User", id);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
public List findByExample(User instance) {
log.debug("finding User instance by example");
try {
List results = getHibernateTemplate().findByExample(instance);
log.debug("find by example successful, result size: " + results.size());
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}
public List findByProperty(String propertyName, Object value) {
log.debug("finding User instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from User as model where model."
+ propertyName + "= ?";
return getHibernateTemplate().find(queryString, value);
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}
public User merge(User detachedInstance) {
log.debug("merging User instance");
try {
User result = (User) getHibernateTemplate()
.merge(detachedInstance);
log.debug("merge successful");
return result;
} catch (RuntimeException re) {
log.error("merge failed", re);
throw re;
}
}
public void attachDirty(User instance) {
log.debug("attaching dirty User instance");
try {
getHibernateTemplate().saveOrUpdate(instance);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}
public void attachClean(User instance) {
log.debug("attaching clean User instance");
try {
getHibernateTemplate().lock(instance, LockMode.NONE);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}
public static UserDAO getFromApplicationContext(ApplicationContext ctx) {
return (UserDAO) ctx.getBean("UserDAO");
}
}
struts1.2+spring2.3+hibernate3.0



Struts1.2、Spring2.3 和 Hibernate3.0 是经典的Java企业级开发框架组合,被称为SSH(Struts-Spring-Hibernate)集成框架。这个组合在2000年代末到2010年初非常流行,它们各自解决了不同的问题,并通过相互配合,构建出强大的后端应用系统。 Struts1.2 是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,主要用于控制应用的流程。它负责接收HTTP请求,调用业务逻辑,然后将结果传递给视图进行展示。Struts1.2 提供了ActionForm、Action、ActionMapping等核心组件,帮助开发者实现请求与业务逻辑的解耦。 Spring2.3 是一个全面的Java企业级应用开发框架,涵盖了依赖注入(DI)、面向切面编程(AOP)、事务管理、数据访问/集成、Web应用框架等多个方面。在这个例子中,Spring2.3 主要用于实现服务层和持久层的管理,通过DI将对象之间的依赖关系解耦,提高代码的可测试性和可维护性。同时,Spring的AOP功能可以方便地实现如日志记录、权限检查等横切关注点。 Hibernate3.0 是一个流行的Java ORM(对象关系映射)框架,它允许开发者以面向对象的方式来操作数据库,减少了SQL的直接编写。Hibernate3.0 提供了实体类、映射文件(XML或注解)、Session接口等一系列工具,使得数据库操作变得更加简单,提高了开发效率。 SSH集成的示例通常会包含以下部分: 1. **配置文件**:包括struts-config.xml(Struts配置)、applicationContext.xml(Spring配置)、hibernate.cfg.xml(Hibernate配置)。这些文件定义了各个组件的配置,如Action的映射、Bean的定义、数据库连接等。 2. **模型(Model)**:定义业务对象,通常带有Hibernate的注解或者XML映射文件,用于与数据库交互。 3. **控制(Controller)**:Struts的Action类作为控制器,接收并处理用户的请求,调用相应的业务逻辑。 4. **服务(Service)**:Spring管理的服务层,包含了业务逻辑,可以通过Spring的DI注入DAO(数据访问对象)来操作数据。 5. **视图(View)**:通常使用JSP页面作为视图,展示处理结果。Struts的ActionForward或ActionRedirect负责跳转到相应的JSP页面。 6. **DAO**:使用Hibernate的Session接口进行数据库操作,封装了SQL语句。 7. **数据库**:与Hibernate配置文件匹配的数据库结构,存储应用的数据。 这个SSH3的示例项目可以帮助开发者理解这三个框架如何协同工作,提供了一种高效、解耦的后端架构。通过实际操作,开发者可以学习到如何配置和使用SSH框架,以及如何设计和实现一个完整的MVC架构的Java Web应用。同时,这也是对早期Java企业级开发的一种回顾,对于理解现代框架如Spring Boot和Spring MVC的发展有着重要的历史价值。


































































- 1

- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整
- you198905092012-06-27還行,但是講解不夠仔細、
- tongchao13514672011-10-23如果用注解做的就更好了

- 粉丝: 0
- 资源: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- AI大模型Deepseek赋能企业数字化转型实践(ERP_SRM_WMS_MES_APS_EMS等系统举例).pptx
- 嵌入式物联网项目_微联智控开源工作室_1741164176.zip
- 物联网设备数据管理_HTTP接口集成_1741161790.zip
- 通信技术_VoIP即时消息私有部署服务端_1741164495.zip
- 基于Matlab相场模拟的热力耦合断裂问题研究-以陶瓷淬火算例为例,采用Paraview实现可视化分析,Matlab相场模型下的热力耦合断裂问题研究:陶瓷淬火算例及Paraview可视化应用,mat
- 物联网_EVM_嵌入式Vue_开发框架_1741165396.zip
- 工具变量-上市公司实质性创新和策略性创新数据集 (2000-2023年).txt
- 工业物联网数据采集网关技术_DataShark_1741164605.zip
- 两级式三相光伏并网发电系统Simulink仿真方法结合学习,《基于Simulink仿真的两级式三相光伏并网发电系统及其MPPT优化研究-整合参数设计与仿真学习》,两级式三相光伏并网发电系统simul
- 【未知机构-2025研报】深度推理驱动的Agent智能体构建研究.pdf
- ,基于STM32F1的线性自抗扰技术(LADRC)改进程序及LabVIEW程序实现,线性自抗扰(LADRC)的stm32f1在原有程序基础上修改后的,另送labview程序 ,LADRC; STM32
- postgresql数据类型转换PDF
- 基于扩展卡尔曼滤波算法EKF的锂电池SOC动态估算:考虑充放电倍率与环境温度的综合辨识,基于扩展卡尔曼滤波算法EKF的锂电池SOC动态估算:考虑充放电倍率与环境温度的综合辨识,扩展卡尔曼滤波soc估算
- 基于COMSOL模拟的脉冲抑制锂电池枝晶生长模型案例:多条件对比下的枝晶生长现象验证,基于COMSOL模拟的脉冲抑制锂电池枝晶生长模型案例:多条件对比下的枝晶生长现象验证,COMSOL脉冲抑制锂电池枝
- 编程语言_Golang_面试题合集_学习成长_1741356734.zip
- 计算机知识图书汇编_资源分享_1741356544.zip


