博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC+Hibernate+Spring整合(二)
阅读量:3783 次
发布时间:2019-05-22

本文共 4846 字,大约阅读时间需要 16 分钟。

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

首先是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
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
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
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
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包下,负责为各层依赖注入需要的对象:

到此为止,所有的配置和代码完成,部署运行,运行结果如下图:

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

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

你可能感兴趣的文章
Nginx解析漏洞复现
查看>>
GhostScript沙箱绕过(命令执行漏洞)CVE-2018-16509
查看>>
通过图片获取地理位置
查看>>
PHP提权姿势
查看>>
Linux VI VIM编辑器
查看>>
Linux 进程管理
查看>>
Vulmap的使用
查看>>
SPSS Modeler工具笔记
查看>>
逻辑题分享
查看>>
后端开发中常用的语言
查看>>
数学考试(牛客)
查看>>
Codeforces Round #697 (Div. 3)
查看>>
Codeforces Round #705 (Div. 2)
查看>>
2021-04-11
查看>>
迷宫(BFS)
查看>>
1816. 连通(BFS+DFS+并查集)
查看>>
2021省赛总结
查看>>
Codeforces Round #719 (Div. 3)
查看>>
3. Mybatis说明typeAliases
查看>>
4. Mybatis结果集映射ResultMap
查看>>