【SSH】ssh再认识(一)

前言

    ssh再次认识sping,struts和hibernate框架。过程遇到了很多问题,还是需要大量实践。

一条线

存储(以订单为例)

    (1)jsp与action交互
    ^1^ applicationContext代码:
    中定义action的地址,并指出该action配的service是哪个。

<!-- 配置OrderAction -->
    <bean id="orderAction" class="cn.itcast.shop.order.action.OrderAction" scope="prototype">
        <property name="orderService" ref="orderService"/>
    </bean>

    ^2^ jsp代码:

<div class="bottom">
    <a href="${pageContext.request.contextPath}/order_save.action" id="submit" class="submit">提交订单</a></div>

    ^3^ action获得jsp数据——session

Cart cart = (Cart)ServletActionContext.getRequest().getSession().getAttribute("cart");

    (2)action与service交互
    ^1^ action代码:

orderService.save(order);

    ^2^ applicationContext代码:

<!-- 配置OrderAction -->
    <bean id="orderAction" class="cn.itcast.shop.order.action.OrderAction" scope="prototype">
        <property name="orderService" ref="orderService"/>
    </bean>

    (3)service 与 dao交互
    ^1^ service代码:

//保存订单的业务层的代码
    public void save(Order order) {
        orderDao.save(order);       
    }

    ^2^ applicationContext代码:

<bean id="orderService" class="cn.itcast.shop.order.service.OrderService">
        <property name="orderDao" ref="orderDao"/>
    </bean>

    (4)dao与hibernate交互
    ^1^ dao代码:

//dao层保存订单的方法
    public void save(Order order) {
        this.getHibernateTemplate().save(order);        
    }

    ^2^ application代码:

<bean id="orderDao" class="cn.itcast.shop.order.dao.OrderDao">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    ^3^ hibernate信息:

<!-- Hibernate的相关信息 -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <!-- 注入连接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 配置Hibernate的其他的属性 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.connection.autocommit">false</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
        <!-- 配置Hibernate的映射文件 -->
        <property name="mappingResources">
            <list>          
                <value>cn/itcast/shop/order/vo/OrderItem.hbm.xml</value>

            </list>
        </property>
    </bean>

    ^4^ hbm.xml代码:

<!-- 订单与订单项关联配置 -->
        <set name="orderItems"  lazy="false"  cascade="save-update">
            <key column="oid"/>
            <one-to-many class="cn.itcast.shop.order.vo.OrderItem"/>
        </set>

    注:one-to-many 或 many-to-one指两个实体即两张表之间的一对多,多对一关系。cascade=”save-update”指级联修改。

    来张图:
这里写图片描述

小结

    这次只总结一部分,按照自己的理解先大致梳理一下。请期待next part…

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值