# SSH **Repository Path**: mirrors_bluesky51/SSH ## Basic Information - **Project Name**: SSH - **Description**: Spring+SpringMVC+Hibernate三大框架整合思路导图 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-24 - **Last Updated**: 2026-05-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SSH Spring+SpringMVC+Hibernate三大框架整合思路导图 # SSH(Spring+SpringMVC+Hibernate) 1.创建项目,导入jar(spring(15个)+hibernate(11个)+上传包(2个)………….) 2.导入页面资源jsp放入到WEB-INF/jsp目录下 3.以分层思想进行分包 ![1.项目分层思想分包目录图](1.项目分层思想分包目录图.png) ## 第一章:以xml方式进行整合 #### 1.1 dao层相关: ##### 1.1.1 dao层接口及实现类 ```java UserDao.java public interface UserDao { public void insertUser(User user); public User queryUserByUserNameAndPwd(User user); } UserDaoImpl.java public class UserDaoImpl extends HibernateDaoSupport implements UserDao { @Override public void insertUser(User user) { getHibernateTemplate().save(user); } @Override public User queryUserByUserNameAndPwd(User user) { DetachedCriteria criteria = DetachedCriteria.forClass(User.class); criteria.add(Restrictions.eq("user_name", user.getUser_name())); criteria.add(Restrictions.eq("user_pwd", user.getUser_pwd())); List list = ( List)getHibernateTemplate().findByCriteria(criteria); if (list!=null&&list.size()>0) { return list.get(0); } return null; } } ShopDao.java public interface ShopDao { public List queryAllShopList(); public Shop queryShopById(Integer shop_id); public void updateShop(Shop shop); } ShopDaoImpl.java public class ShopDaoImpl extends HibernateDaoSupport implements ShopDao { @Override public List queryAllShopList() { List list= (List)getHibernateTemplate().find("from com.sky.domain.Shop"); return list; } @Override public Shop queryShopById(Integer shop_id) { return getHibernateTemplate().get(Shop.class,shop_id); } @Override public void updateShop(Shop shop) { getHibernateTemplate().update(shop); } } ``` ##### 1.1.2 配置文件(applicationContext_dao.xml) ```xml dbinfo.properties如下: driverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/ideaBySSH user=root password=123456 applicationContext_dao.xml如下: org.hibernate.dialect.MySQL5InnoDBDialect true true update 4 org.springframework.orm.hibernate5.SpringSessionContext ``` #### 1.2 service层相关: ##### 1.2.1 service接口实现类 ```java UserService.java public interface UserService { public void register(User user); public User loginUser(User user) ; } UserServiceImpl.java //@Transactional public class UserServiceImpl implements UserService { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } @Override public void register(User user) { userDao.insertUser(user); } @Override public User loginUser(User user) { User user1 = userDao.queryUserByUserNameAndPwd(user); return user1; } } ShopService.java public interface ShopService { public List queryShopList(); public Shop queryShopById(Integer shop_id); public void updateShop(Shop shop); } ShopServiceImpl.java //@Transactional public class ShopServiceImpl implements ShopService { private ShopDao shopDao; public void setShopDao(ShopDao shopDao) { this.shopDao = shopDao; } @Override public List queryShopList() { return shopDao.queryAllShopList(); } @Override public Shop queryShopById(Integer shop_id) { return shopDao.queryShopById(shop_id); } @Override public void updateShop(Shop shop) { shopDao.updateShop(shop); } } ``` ##### 1.2.2 配置文件(applicationContext_service.xml) ```xml ``` #### 1.3 controller控制层类: ##### 1.2.1 UserController类 ```java @Controller public class UserController { @Resource(name = "userService") private UserService userService; //跳转到注册页面 @RequestMapping("/register.action") public String register() { return "user/register"; } @RequestMapping("/doRegister.action") public String toDoRegister(HttpServletRequest request, User user, @RequestParam("picture") MultipartFile picture) throws Exception{ String imagePath= request.getRealPath("/WEB-INF/image"); File file=new File(imagePath); if (!file.exists()){ file.mkdirs(); } //1.获取文件名 String originalName = FilenameUtils.getName(picture.getOriginalFilename()); System.out.println("=====originalName====="); // 2.设置图片名称,不能重复,可以使用uuid String uuid = UUID.randomUUID().toString(); //3.上传 picture.transferTo(new File(file,uuid + "_" + originalName)); user.setUser_headimg(uuid + "_" + originalName); //5.打印网络地址进行测试是否成功显示图片 System.out.println("http://localhost"+request.getContextPath() +"/image/"+ user.getUser_headimg()); //6.调用业务逻辑 userService.register(user); return "user/success"; } @RequestMapping("/login.action") public String login() { return "user/login"; } @RequestMapping("/dologin.action") public String tologin(User user, HttpSession httpSession) { User user1= userService.loginUser(user); httpSession.setAttribute("userInfo",user1); return "user/userinfo"; } } ``` ##### 1.3.2 ShopController类 ```java @Controller public class ShopController { @Resource(name = "shopService") private ShopService shopService; @RequestMapping("/shopList.action") public String queryAllShopList(Model model){ List list= shopService.queryShopList(); model.addAttribute("list",list); return "shop/itemList"; } @RequestMapping("/itemEdit.action") public String findShopById(Integer id,Model model){ Shop shop = shopService.queryShopById(id); model.addAttribute("shop",shop); return "/shop/editItem"; } @RequestMapping("/updateitem.action") public String updateShop(Shop shop){ System.out.print("==shop=="+shop); shopService.updateShop(shop); return "redirect:shopList.action"; } } ``` #### 1.4 springmvc的配置文件: ```xml ``` #### 1.5 web.xml配置: ```XML org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath*:applicationContext_*.xml dispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath*:springmvc.xml 1 dispatcherServlet / encoding org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encoding /* ``` ## 第二章:以注解方式进行整合 #### 1.1 dao层相关: ##### 1.1.1 dao层接口及实现类 ```java UserDao.java public interface UserDao { public void insertUser(User user); public User queryUserByUserNameAndPwd(User user); } UserDaoImpl.java @Repository public class UserDaoImpl extends HibernateDaoSupport implements UserDao { @Resource(name = "sessionFactory") public void setSessionFactoryOverride(SessionFactory sessionFactory) { super.setSessionFactory(sessionFactory); } @Override public void insertUser(User user) { getHibernateTemplate().save(user); } @Override public User queryUserByUserNameAndPwd(User user) { DetachedCriteria criteria = DetachedCriteria.forClass(User.class); criteria.add(Restrictions.eq("user_name", user.getUser_name())); criteria.add(Restrictions.eq("user_pwd", user.getUser_pwd())); List list = ( List)getHibernateTemplate().findByCriteria(criteria); if (list!=null&&list.size()>0) { return list.get(0); } return null; } } ShopDao.java public interface ShopDao { public List queryAllShopList(); public Shop queryShopById(Integer shop_id); public void updateShop(Shop shop); } ShopDaoImpl.java @Repository public class ShopDaoImpl extends HibernateDaoSupport implements ShopDao { @Resource(name = "sessionFactory") public void setSessionFactoryOverride(SessionFactory sessionFactory) { super.setSessionFactory(sessionFactory); } @Override public List queryAllShopList() { List list= (List)getHibernateTemplate().find("from com.sky.domain.Shop"); return list; } @Override public Shop queryShopById(Integer shop_id) { return getHibernateTemplate().get(Shop.class,shop_id); } @Override public void updateShop(Shop shop) { getHibernateTemplate().update(shop); } } ``` ##### 1.1.2 配置文件(applicationContext_dao.xml) ```xml dbinfo.properties如下: driverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/ideaBySSH user=root password=123456 applicationContext_dao.xml如下: org.hibernate.dialect.MySQL5InnoDBDialect true true update 4 org.springframework.orm.hibernate5.SpringSessionContext ``` #### 1.2 service层相关: ##### 1.2.1 service接口实现类 ```java UserService.java public interface UserService { public void register(User user); public User loginUser(User user) ; } UserServiceImpl.java //@Transactional public class UserServiceImpl implements UserService { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } @Override public void register(User user) { userDao.insertUser(user); } @Override public User loginUser(User user) { User user1 = userDao.queryUserByUserNameAndPwd(user); return user1; } } ShopService.java public interface ShopService { public List queryShopList(); public Shop queryShopById(Integer shop_id); public void updateShop(Shop shop); } ShopServiceImpl.java //@Transactional public class ShopServiceImpl implements ShopService { private ShopDao shopDao; public void setShopDao(ShopDao shopDao) { this.shopDao = shopDao; } @Override public List queryShopList() { return shopDao.queryAllShopList(); } @Override public Shop queryShopById(Integer shop_id) { return shopDao.queryShopById(shop_id); } @Override public void updateShop(Shop shop) { shopDao.updateShop(shop); } } ``` ##### 1.2.2 配置文件(applicationContext_service.xml) ```xml ``` #### 1.3 controller控制层类: ##### 1.2.1 UserController类 ```java @Controller public class UserController { @Resource(name = "userService") private UserService userService; //跳转到注册页面 @RequestMapping("/register.action") public String register() { return "user/register"; } @RequestMapping("/doRegister.action") public String toDoRegister(HttpServletRequest request, User user, @RequestParam("picture") MultipartFile picture) throws Exception{ String imagePath= request.getRealPath("/WEB-INF/image"); File file=new File(imagePath); if (!file.exists()){ file.mkdirs(); } //1.获取文件名 String originalName = FilenameUtils.getName(picture.getOriginalFilename()); System.out.println("=====originalName====="); // 2.设置图片名称,不能重复,可以使用uuid String uuid = UUID.randomUUID().toString(); //3.上传 picture.transferTo(new File(file,uuid + "_" + originalName)); user.setUser_headimg(uuid + "_" + originalName); //5.打印网络地址进行测试是否成功显示图片 System.out.println("http://localhost"+request.getContextPath() +"/image/"+ user.getUser_headimg()); //6.调用业务逻辑 userService.register(user); return "user/success"; } @RequestMapping("/login.action") public String login() { return "user/login"; } @RequestMapping("/dologin.action") public String tologin(User user, HttpSession httpSession) { User user1= userService.loginUser(user); httpSession.setAttribute("userInfo",user1); return "user/userinfo"; } } ``` ##### 1.3.2 ShopController类 ```java @Controller public class ShopController { @Resource(name = "shopService") private ShopService shopService; @RequestMapping("/shopList.action") public String queryAllShopList(Model model){ List list= shopService.queryShopList(); model.addAttribute("list",list); return "shop/itemList"; } @RequestMapping("/itemEdit.action") public String findShopById(Integer id,Model model){ Shop shop = shopService.queryShopById(id); model.addAttribute("shop",shop); return "/shop/editItem"; } @RequestMapping("/updateitem.action") public String updateShop(Shop shop){ System.out.print("==shop=="+shop); shopService.updateShop(shop); return "redirect:shopList.action"; } } ``` #### 1.4 springmvc的配置文件: ```xml ``` #### 1.5 web.xml配置: ```XML org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath*:applicationContext_*.xml dispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath*:springmvc.xml 1 dispatcherServlet / encoding org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encoding /* ```