package org.eimhe.db;
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 Course.
* @see org.eimhe.db.Course
* @author MyEclipse - Hibernate Tools
*/
public class CourseDAO extends HibernateDaoSupport {
private static final Log log = LogFactory.getLog(CourseDAO.class);
//property constants
public static final String COU_NAME = "couName";
public static final String COU_DIS = "couDis";
protected void initDao() {
//do nothing
}
public void save(Course transientInstance) {
log.debug("saving Course instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
public void delete(Course persistentInstance) {
log.debug("deleting Course instance");
try {
getHibernateTemplate().delete(persistentInstance);
log.debug("delete successful");
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}
public List findAllCourses() {
log.debug("getting all courses ");
try {
System.out.println("this is test");
return this.getHibernateTemplate().find("from Course");
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
public Course findById( java.lang.Integer id) {
log.debug("getting Course instance with id: " + id);
try {
Course instance = (Course) getHibernateTemplate()
.get("org.eimhe.db.Course", id);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
public List findByExample(Course instance) {
log.debug("finding Course 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 Course instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from Course as model where model."
+ propertyName + "= ?";
return getHibernateTemplate().find(queryString, value);
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}
public List findByCouName(Object couName) {
return findByProperty(COU_NAME, couName);
}
public List findByCouDis(Object couDis) {
return findByProperty(COU_DIS, couDis);
}
public Course merge(Course detachedInstance) {
log.debug("merging Course instance");
try {
Course result = (Course) getHibernateTemplate()
.merge(detachedInstance);
log.debug("merge successful");
return result;
} catch (RuntimeException re) {
log.error("merge failed", re);
throw re;
}
}
public void attachDirty(Course instance) {
log.debug("attaching dirty Course instance");
try {
getHibernateTemplate().saveOrUpdate(instance);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}
public void attachClean(Course instance) {
log.debug("attaching clean Course instance");
try {
getHibernateTemplate().lock(instance, LockMode.NONE);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}
public static CourseDAO getFromApplicationContext(ApplicationContext ctx) {
return (CourseDAO) ctx.getBean("CourseDAO");
}
}
Struts、Hibernate、Spring是Java开发中非常著名的三大框架,它们各自解决着应用程序的不同层面问题。Struts作为MVC(模型-视图-控制器)框架,主要负责处理HTTP请求和控制应用程序流程;Hibernate是一个对象关系映射(ORM)工具,简化了数据库操作,将Java对象与数据库表进行映射;Spring则是一个全面的后端应用框架,提供了依赖注入、AOP(面向切面编程)以及众多其他功能,使得应用的结构更加清晰。 SSH整合是将这三个框架集成在一起,以实现更高效、模块化的Java Web开发。整合SSH能够充分利用各自的优势,提供一个强大的、灵活的开发环境,降低代码的耦合度,提高开发效率。 在整合过程中,通常会遵循以下步骤: 1. **引入依赖**:在项目中添加Struts、Hibernate、Spring的相关jar包,确保所有必要的库都已经包含。 2. **配置Struts**:编写struts.xml配置文件,定义Action类及其对应的结果页面,设置拦截器等。Struts2的核心是FilterDispatcher,它负责接收请求并分发到相应的Action。 3. **配置Hibernate**:创建Hibernate的配置文件hibernate.cfg.xml,设置数据库连接、实体类映射等。然后,通过SessionFactory获取Session,进行数据操作。 4. **配置Spring**:创建applicationContext.xml配置文件,声明Bean,包括Service层、DAO层、以及Struts2的Action类。使用Spring的IOC(Inversion of Control,控制反转)来管理这些Bean,实现依赖注入。 5. **整合Struts2与Spring**:在struts.xml中配置Struts2-Spring插件,让Struts2能够利用Spring管理的Bean。Action类通常会标记为@Controller,由Spring管理其生命周期。 6. **整合Hibernate与Spring**:在Spring的配置文件中,配置Hibernate SessionFactory,并将SessionFactory注入到需要进行数据库操作的DAO类中。Spring还支持事务管理,可以在Service层进行配置,实现事务的自动提交和回滚。 7. **测试**:编写JUnit测试用例,验证整合后的SSH是否正常工作,包括Action的跳转、Service的数据操作以及DAO的数据库访问。 在"eimheSSH2"这个压缩包中,可能包含了示例项目的源代码、配置文件以及相关的文档。通过研究这些文件,你可以深入理解SSH整合的实现细节,包括具体的配置语法、代码结构以及如何在实际项目中应用。此外,如果遇到问题,可以参考压缩包中的注释或留言,寻求帮助,发扬开源社区互助的精神。 SSH整合是Java Web开发中的高级技巧,掌握了这一技能,开发者能更好地构建可维护、可扩展的企业级应用。通过实践和学习,你可以逐渐掌握这一强大的技术栈,提升自己的开发能力。





















































































































- 1
- 2

- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整

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


最新资源


