struts1.2+spring2.0+hibernate3.2 整合的小示例

先上小示例效果图:

 

 

再上spring的配置文件:

 

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xmlns:aop="http://www.springframework.org/schema/aop"
  5.     xmlns:tx="http://www.springframework.org/schema/tx"
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans 
  7.                      http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  8.            http://www.springframework.org/schema/aop 
  9.            http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
  10.            http://www.springframework.org/schema/tx 
  11.            http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
  12.     
  13.     <!-- 配置sessionFactory -->
  14.     <bean id="sessionFactory"
  15.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  16.         <property name="configLocation">
  17.             <value>classpath:hibernate.cfg.xml</value>
  18.         </property>
  19.     </bean>
  20.     <!-- 配置事务管理器 -->
  21.     <bean id="transactionManager"
  22.         class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  23.         <property name="sessionFactory">
  24.             <ref bean="sessionFactory" />
  25.         </property>
  26.     </bean>
  27.     <!-- 注释驱动事务 -->
  28.     <!-- 
  29.     <tx:annotation-driven transaction-manager="transactionManager"/>
  30.     -->
  31.         
  32.     <!-- 配置事务策略 -->
  33.     
  34.     <tx:advice id="txAdvice" transaction-manager="transactionManager">
  35.         <tx:attributes>
  36.             <tx:method name="create*" propagation="REQUIRED" />
  37.             <tx:method name="update*" propagation="REQUIRED" />
  38.             <tx:method name="delete*" propagation="REQUIRED" />
  39.             <tx:method name="*" propagation="SUPPORTS" read-only="true" />
  40.         </tx:attributes>
  41.     </tx:advice>
  42.     
  43.     <!-- 事务通知器:哪些类的哪些方法参与事务 -->
  44.     <aop:config>
  45.         <aop:advisor pointcut="execution(* com.qiujy.service.*.*(..))"
  46.             advice-ref="txAdvice" />
  47.     </aop:config>
  48.     
  49.     <!-- =========================== dao的配置 ================================ -->
  50.     <bean id="genericHibernateDaoImpl"
  51.         class="com.qiujy.dao.hibernate.GenericHibernateDaoImpl"
  52.         abstract="true">
  53.         <property name="sessionFactory" ref="sessionFactory" />
  54.     </bean>
  55.     <bean id="deptDao" class="com.qiujy.dao.hibernate.DeptDaoImpl"
  56.         parent="genericHibernateDaoImpl" />
  57.     <bean id="employeeDao"
  58.         class="com.qiujy.dao.hibernate.EmployeeDaoImpl"
  59.         parent="genericHibernateDaoImpl" />
  60.     <!-- ====================== ServiceFacade的配置 =========================== -->
  61.     <bean id="serviceFacade" class="com.qiujy.service.ServiceFacade">
  62.         <property name="deptDao" ref="deptDao" />
  63.         <property name="employeeDao" ref="employeeDao" />
  64.     </bean>
  65.     <!-- ====================== Struts Action的配置 =========================== -->
  66.     <bean id="baseAction" class="com.qiujy.web.base.BaseAction"
  67.         abstract="true">
  68.         <property name="serviceFacade" ref="serviceFacade" />
  69.     </bean>
  70.     <bean name="/dept" class="com.qiujy.web.dept.DeptAction"
  71.         parent="baseAction" scope="prototype" />
  72. </beans>

示例源代码将上传到csdn资源库中。呵呵。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里提供一个简单的示例,涉及到基于 SpringStruts2 和 Hibernate 的增删改查操作。 首先,我们需要创建一个实体类 User,并使用注解定义它的属性和表格映射: ``` @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String name; private String email; private String password; // getters and setters } ``` 接下来,我们需要创建一个 DAO 接口和实现类,以便进行数据库操作。这里使用 Hibernate 的 API 来实现增删改查操作: ``` public interface UserDao { void save(User user); void delete(int id); User getById(int id); List<User> getAll(); } @Repository public class UserDaoImpl implements UserDao { @Autowired private SessionFactory sessionFactory; @Override public void save(User user) { Session session = sessionFactory.getCurrentSession(); session.save(user); } @Override public void delete(int id) { Session session = sessionFactory.getCurrentSession(); User user = session.byId(User.class).load(id); session.delete(user); } @Override public User getById(int id) { Session session = sessionFactory.getCurrentSession(); return session.get(User.class, id); } @Override public List<User> getAll() { Session session = sessionFactory.getCurrentSession(); CriteriaQuery<User> criteriaQuery = session.getCriteriaBuilder().createQuery(User.class); criteriaQuery.from(User.class); return session.createQuery(criteriaQuery).getResultList(); } } ``` 然后,我们需要创建一个 Service 层,以便在控制器中使用它来进行数据库操作: ``` @Service @Transactional public class UserService { @Autowired private UserDao userDao; public void save(User user) { userDao.save(user); } public void delete(int id) { userDao.delete(id); } public User getById(int id) { return userDao.getById(id); } public List<User> getAll() { return userDao.getAll(); } } ``` 接下来,我们需要创建一个控制器类,以便处理用户请求,并调用 UserService 来进行数据库操作: ``` @Controller public class UserController { @Autowired private UserService userService; @RequestMapping("/") public String index(Model model) { List<User> users = userService.getAll(); model.addAttribute("users", users); return "index"; } @RequestMapping("/add") public String add(Model model) { model.addAttribute("user", new User()); return "add"; } @PostMapping("/save") public String save(@ModelAttribute("user") User user) { userService.save(user); return "redirect:/"; } @RequestMapping("/edit/{id}") public String edit(@PathVariable int id, Model model) { User user = userService.getById(id); model.addAttribute("user", user); return "edit"; } @PostMapping("/update") public String update(@ModelAttribute("user") User user) { userService.save(user); return "redirect:/"; } @RequestMapping("/delete/{id}") public String delete(@PathVariable int id) { userService.delete(id); return "redirect:/"; } } ``` 最后,我们需要创建视图文件(JSP 或 Thymeleaf)来渲染 HTML 页面,以便用户可以进行操作。 这就是一个基于 SpringStruts2 和 Hibernate 的增删改查示例。当然,这只是一个简单的示例,实际应用中可能需要更多的配置和代码来实现更复杂的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值