[转自]http://www.pben.cn
一、首先应该明白,在SSH中,spring做了两次集成,第一次是与struts做了集成,第二次是与hibernate集成。
二、下面来谈第一次集成,与struts集成,通过修改struts-config.xml 中的action type 为 org.springframework.web.struts.DelegatingActionProxy,将action的控制转到spring 容器,当转到spring容器, spring会在spring的配置文件中找与action 的path属性同名的bean从而执行相应的类的操作.
- <action
- attribute="loginForm"
- input="login.jsp"
- name="loginForm"
- path="/login"
- scope="request"
- type="org.springframework.web.struts.DelegatingActionProxy" >
-
- <bean name="/login" class="com.ssh.action.LoginAction" singleton="false">
- <property name="dao">
- <ref bean="UsersDAOImp"/>
- property>
- bean>
xml 代码
三、第二次集成,与hibernate集成, DAO 继承了org.springframework.orm.hibernate3.support.HibernateDaoSupport类,所以可以简单的利用sping提供的一些功能。 HibnernateDaoSupport实现了HibernateTemplate与SessionFactory的关联。HibernateTemplate(用HibnernateDaoSupport里的getHibernateTemplate()可以获得)对Hibernate Session进行了封装,可省去获得Session实例、事务启动与提交/回滚以及异常处理等一系列步骤,所以非常简单。
java 代码
- public class UsersDAOImp extends HibernateDaoSupport implements UserDao {
-
- private static final Log log = LogFactory.getLog(UsersDAOImp.class);
-
- protected void initDao() {
-
- }
-
-
-
-
- public void save(Users transientInstance) {
- log.debug("saving Users instance");
- try {
- getHibernateTemplate().save(transientInstance);
- log.debug("save successful");
- } catch (RuntimeException re) {
- log.error("save failed", re);
- throw re;
- }
- }
-
-
-
-
- public void delete(Users persistentInstance) {
- log.debug("deleting Users instance");
- try {
- getHibernateTemplate().delete(persistentInstance);
- log.debug("delete successful");
- } catch (RuntimeException re) {
- log.error("delete failed", re);
- throw re;
- }
- }
-
-
-
-
- public Users findById( java.lang.Integer id) {
- log.debug("getting Users instance with id: " + id);
- try {
- Users instance = (Users) getHibernateTemplate()
- .get("com.ssh.entity.Users", id);
- return instance;
- } catch (RuntimeException re) {
- log.error("get failed", re);
- throw re;
- }
- }
-
-
-
-
-
- public List findByExample(Users instance) {
- log.debug("finding Users 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 Users instance with property: " + propertyName
- + ", value: " + value);
- try {
- String queryString = "from Users as model where model."
- + propertyName + "= ?";
- return getHibernateTemplate().find(queryString, value);
- } catch (RuntimeException re) {
- log.error("find by property name failed", re);
- throw re;
- }
- }
<property name="dao">
</property>
代码不全。
四、当然,你得首先把spring环境搭起来,通过在struts-config.xml
增加
xml 代码
<plug-in classname="org.springframework.web.struts.ContextLoaderPlugIn"></plug-in>
- <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
- <set-property property="contextConfigLocation"
- value="/WEB-INF/applicationContext.xml" />
- plug-in>
分享到:
相关推荐
该项目是一款基于freeRTOS操作系统和STM32F103x微控制器的手机远程控制浴室温度系统设计源码,共包含1087个文件,包括580个C语言源文件、269个头文件、45个汇编源文件、36个数据文件、36个目标文件、35个编译规则文件、28个包含文件、27个文本文件、6个源文件、3个归档文件。此系统通过手机远程实现对浴室温度的有效控制,适用于智能浴室环境管理。
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。