基于J2EE的SSH整合应用及操作示例二(CRUD操作及配置)
2009-10-12 00:00:00 来源:WEB开发网如果depAdd.do要对应另一个Action,则只要修改applicationContext.xml 即可,这将有利于系统的更新。同样,如果另一个.do 要对应DepAddAction,也只要在applicationContext.xml中配置即可,这将有利于代码的重用。在本系统中,Hibernate 和Spring 共用一个配置文件applicationContext.xml。Hibernate 从applicationContext.xml 中读取和数据库有关的信息。数据库信息包括数据库连接、与数据库结构相对应的映射文件。在新增部门请求中,涉及到的数据库表为userinfo表,它所对应的映射文件为Userinfo.hbm.xml。为了访问数据库表userinfo,只有Userinfo.hbm.xml映射文件是不够的,还需要数据访问类UserinfoDAO、数据类AbstractUserinfo,Userinfo。数据类Userinfo的实现较为简单,它只是Java对象与数据库表之间的对应,主要用于在各应用层间传递数据,在它的基础上要实现的就是数据访问类UserinfoDAO。系统在生成UserinfoDAO 的同时,也将UserinfoDAO作为JavaBean配置到applicationContext.xml 中。UserinfoDAO中是对userinfo 表进行保存、查询、删除或修改等基本数据操作,在applicationContext.xml 中需要userinfoService 进行UserinfoDAO 及其代理的依赖注入。这样做,使得当UserinfoDAO 变化时,只需修改applicationContext.xml给userinfoService实现新的注入,指向新的实现就可以了,由此解除了数据访问层和业务层的紧密耦合。数据访问类UserinfoDAO 继承于辅助类Hibernate-DaoSupport,借助于getHibernateTemplate() 获得对Hibernate资源的操作,极大的方便了Hibernate框架的使用。在UserinfoDAO中定义了对数据库表userinfo的操作函数。如下面代码,即是UserinfoService 中调用的saveData 方法。
public class UserinfoDAO extends HibernateDaoSupport implements IUserinfoDAO {
private static final Log log = LogFactory.getLog(UserinfoDAO.class);
protected void initDao() {
// do nothing
}
public void save(Userinfo transientInstance) {
log.debug("saving Userinfo instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
更多精彩
赞助商链接