前言
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…