value="jdbc:
derby:
//localhost:
1527/myeclipse">
也不需要了,因为hibernate中带有数据源的配置。
3.在applicationContext.xml点击右键新建HibernateSessionFactory。
会有三个值需要设置,由于名字可以自己随便起,数据源的id,数据库的方言,都是通过hibernate所以不用写,只需要让spring框架认识hibernate框架就行,找到hibernate.cfg.xml加载配置。
4.在StudentDao中创建
privateSessionFactorysessionFactory;增加get和set函数,并且装配到applicationContext.xml中
在StudentDao中则改为
privateSessionFactorysessionFactory;
publicListqueryStuByName3(Stringsname){
Stringhql="fromStudentwherestuNamelike'%"+sname+"%'";
HibernateTemplateht=newHibernateTemplate(sessionFactory);
ListsList=ht.find(hql);
returnsList;
}
publicSessionFactorygetSessionFactory(){
returnsessionFactory;
}
publicvoidsetSessionFactory(SessionFactorysessionFactory){
this.sessionFactory=sessionFactory;
}
5.前端显示要做一些修改:
iteratorid="stu"name="sList">
writename="stu"proerity="stuId"/> | writename="stu"proerity="stuName"/> | writename="stu"proerity="stuAdd"/> | writename="stu"proerity="stuBir"/> |
iterator>
注意;这种方法的完成其实就是把hibernate的配置文件注入到spring框架中使其认识,有hibernate生成数据源一些信息,再通过spring生成SessionFactory,就可以对数据库进行相关操作.
6.其实还可以对这种方法进行修改
1.在StudentDao中继承HinernateDaoSupport类,在这个类通过一些get方法得到想要的方法。
2.对上面中的属性sessionFactory可以进行省略,通过getSessionFactory得到工厂,
publicListqueryStuByName3(Stringsname){
Stringhql="fromStudentwherestuNamelike'%"+sname+"%'";
HibernateTemplateht=this.getHibernateTemplate();
ListsList=ht.find(hql);
returnsList;
}
这就是对上面与hibernate整合框架的一些简单优化。
剩下的问题:
如何在spring配置文件中配置对数据库操作的事物?
写一个完整的例子:
struts、spring、hibernate框架结合
模拟一个银行系统:
1.建立一个表:
T_CUSTOMER(ACCOUNT,PASSWORD,CNAME,CBALANCE)
2.Login.jsp:
输入帐号密码,提交,如果成功,则跳转到达操作页面register.jsp:
输入账号,密码,确认密码,姓名,提交,可以注册,余额初始为0,
3.Ope.jsp:
操作页面,上面显示欢迎xxx来到银行,你的余额是?
?
,底部有三个链接,存款,取款,退出。
4.Cunkuan,jsp:
表单输入一个数字,能够将余额增加这个数字,存款成功,自动跳转到ope.jsp。
5.Qukuan.jsp:
表单输入一个数字,能够将余额减少这个数字,取款成功,自动跳转,自动跳转到ope.jsp,如果不够取,显示:
取款失败,
6.要求在页面上有一些错误提示。
步骤:
1、用struts框架把上面的写做了(action.jsp,form),自动生成完成
2、导入spring框架对业务逻辑进行管理,使其自动注入,在注入之前要使sturts的配置文件认识到spring的配置文件(通过插件,修改action的type值),把请求代理截获,并在spring中配置文件进行注入。
3、导入hibernate框架改进代码量,先在spring配置文件中认识hinernate的配置文件,点击右键生成HibernateSessionFactory,并注入到DAO中,
4、在DAO中继承HinernateDaoSupport类,使用其sessionFactory属性,然后得到HibernateTemplate模版,
三个框架之间组建的之间的关系!
——项目实施安排:
1、提取项目需求中所有的用例(动作)
2、将用例按照实体(静态的内容)分类,将每个用例的详细信息描述出来。
3、根据实体大致可以设计数据库:
实体表,关系表
一般使用的方法
4、原则上,一个用例就是一个Action,有表单就有设计ActionForm,Jsp根据实际情况设计
5、适当情况下,考虑使用DispatchAaction来减少模块个数。
6、设计公用模块(公用类,自定义标签)
7、原则上,根据第2步的分类,建立Dao,所以Dao前面名字一般都是名词,适当设计po类来支持Dao
8、设计一些辅助的工具,如果过滤器,插件等等
注意技巧:
模块尽量降低耦合性,分工后尽量减少代码模块之间在开发时的影响。