zoukankan      html  css  js  c++  java
  • schema类SpringMVC+Hibernate+Spring整合(二)

    这段时间笔者几篇文章介绍了改schema类的文章. 关联文章的地址

        这篇接着上篇,把没贴完的代码写完,上篇主要实现了一些公共配置和界面的东西,这篇把后台的代码实现。

        首先是web包下属于的control层的类UserController,这相当于Struts中的Action,是主要的类:

        package com.tgb.web; import java.io.IOException; import java.io.PrintWriter; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.tgb.entity.User; import com.tgb.manager.UserManager; @Controller @RequestMapping("/user") public class UserController { @Resource(name="userManager") private UserManager userManager; @RequestMapping("/getAllUser") public String getAllUser(HttpServletRequest request){ request.setAttribute("userList", userManager.getAllUser()); return "/index"; } @RequestMapping("/getUser") public String getUser(String id,HttpServletRequest request){ request.setAttribute("user", userManager.getUser(id)); return "/editUser"; } @RequestMapping("/toAddUser") public String toAddUser(){ return "/addUser"; } @RequestMapping("/addUser") public String addUser(User user,HttpServletRequest request){ userManager.addUser(user); return "redirect:/user/getAllUser"; } @RequestMapping("/delUser") public void delUser(String id,HttpServletResponse response){ String result = "{\"result\":\"error\"}"; if(userManager.delUser(id)){ result = "{\"result\":\"success\"}"; } response.setContentType("application/json"); try { PrintWriter out = response.getWriter(); out.write(result); } catch (IOException e) { e.printStackTrace(); } } @RequestMapping("/updateUser") public String updateUser(User user,HttpServletRequest request){ if(userManager.updateUser(user)){ user = userManager.getUser(user.getId()); request.setAttribute("user", user); return "redirect:/user/getAllUser"; }else{ return "/error"; } } }

        然后是属于manager包下的业务逻辑类,接口UserManager

        package com.tgb.manager; import java.util.List; import com.tgb.entity.User; public interface UserManager { public User getUser(String id); public List<User> getAllUser(); public void addUser(User user); public boolean delUser(String id); public boolean updateUser(User user); }

        实现类UserManagerImpl

        package com.tgb.manager; import java.util.List; import com.tgb.dao.UserDao; import com.tgb.entity.User; public class UserManagerImpl implements UserManager { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } @Override public User getUser(String id) { return userDao.getUser(id); } @Override public List<User> getAllUser() { return userDao.getAllUser(); } @Override public void addUser(User user) { userDao.addUser(user); } @Override public boolean delUser(String id) { return userDao.delUser(id); } @Override public boolean updateUser(User user) { return userDao.updateUser(user); } }

        每日一道理
    爱,有的时候不需要山盟海誓的承诺,但她一定需要细致入微的关怀与问候;爱,有的时候不需要梁祝化蝶的悲壮,但她一定需要心有灵犀的默契与投合;爱,有的时候不需要雄飞雌从的追随,但她一定需要相濡以沫的支持与理解。

        最后是属于dao包底下的DAO层,主要由Hibernate实现。接口UserDao

        package com.tgb.dao; import java.util.List; import com.tgb.entity.User; public interface UserDao { public User getUser(String id); public List<User> getAllUser(); public void addUser(User user); public boolean delUser(String id); public boolean updateUser(User user); }

        实现类UserDaoImpl

        package com.tgb.dao; import java.util.List; import org.hibernate.Query; import org.hibernate.SessionFactory; import com.tgb.entity.User; public class UserDaoImpl implements UserDao { private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } @Override public User getUser(String id) { String hql = "from User u where u.id=?"; Query query = sessionFactory.getCurrentSession().createQuery(hql); query.setString(0, id); return (User)query.uniqueResult(); } @Override public List<User> getAllUser() { String hql = "from User"; Query query = sessionFactory.getCurrentSession().createQuery(hql); return query.list(); } @Override public void addUser(User user) { sessionFactory.getCurrentSession().save(user); } @Override public boolean delUser(String id) { String hql = "delete User u where u.id = ?"; Query query = sessionFactory.getCurrentSession().createQuery(hql); query.setString(0, id); return (query.executeUpdate() > 0); } @Override public boolean updateUser(User user) { String hql = "update User u set u.userName = ?,u.age=? where u.id = ?"; Query query = sessionFactory.getCurrentSession().createQuery(hql); query.setString(0, user.getUserName()); query.setString(1, user.getAge()); query.setString(2, user.getId()); return (query.executeUpdate() > 0); } }

        最后外加一个配置spring-beans.xml,放在config.spring包下,担任为各层依赖注入需要的对象:

        <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userDao" class="com.tgb.dao.UserDaoImpl"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="userManagerBase" class="com.tgb.manager.UserManagerImpl"> <property name="userDao" ref="userDao"></property> </bean> <!-- 此处为代理 --> <bean name="userManager" parent="transactionProxy"> <property name="target" ref="userManagerBase"></property> </bean> </beans>

        到此为止,全部的配置和代码实现,部署运行,运行结果如下图:

        schema和类

        schema和类schema和类

        这个小实例结束,下篇将对SpringMVCStruts2做一个比较。

        实例下载地址:http://download.csdn.net/detail/stubbornpotatoes/5489587

    文章结束给大家分享下程序员的一些笑话语录: 女人篇
      有的女人就是Windows虽然很优秀,但是安全隐患太大。
      有的女人就是MFC她条件很好,然而不是谁都能玩的起。
      有的女人就是C#长的很漂亮,但是家务活不行。
      有的女人就是C++,她会默默的为你做很多的事情。
      有的女人就是汇编虽然很麻烦,但是有的时候还得求它。
      有的女人就是SQL,她会为你的发展带来莫大的帮助。

    --------------------------------- 原创文章 By
    schema和类
    ---------------------------------

  • 相关阅读:
    2.8
    2.7
    2.6
    2.5
    2.4第三篇读后感
    2.2第一篇读后感
    2.1
    字符统计
    6468: Snuke's Coloring
    6463: Tak and Hotels II
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3111330.html
Copyright © 2011-2022 走看看