毕业设计初稿已经交了,好久没有更新博客了,抽空来写一下自己的毕业设计,水平实在有限,只想自己记录一下,代码等毕业了我会贴上来。有准备做毕业设计,或者未来准备用ssm框架来做毕设的同学看完我的文章能够对你有所帮助,那就再好不过了,开始吧!
关于ssm框架这部分网上的博客很多,大家多看看几篇博客就可以对这个框架有一个大概的了解,我不再赘述了,关于框架的入门demo,我自己也写过一篇博客,大家有兴趣可以去看看,我会贴在下面。
Eclipse使用的较少,而且IDEA确实使用体验很好,这次做毕设就使用了IDEA来开发,使用maven来管理依赖,也确实方便了许多,节省了很多的时间。
2019年,用jsp确实有点老了,后续有时间会考虑使用Thymeleaf,以后把代码贴上来,有兴趣的同学可以用Thymeleaf改一改
使用的技术及开发的工具差不多介绍到这里,其实是很基础的项目,但是毕竟在学校没有实际自己开发过整个项目,对自己的能力还是有一定的提高,下面是我当时刚学习ssm框架的时候写的一个入门demo,用上面提到的技术整合了ssm框架,实现了查询和添加,大家有兴趣可以去看一看。
ssm框架整合全记录(idea版)
本文链接:https://blog.csdn.net/OliverND/article/details/100037462
本系统为班级信息管理系统,班主任及班上的班委使用该系统来管理班级的各种信息,所以系统分了三个角色:
系统功能模块图,根据角色的不同,对应的有不同的功能,做的时候时间短,角色权限这一块,并没有完全实现,只是用js代码,根据session里角色的信息把页面中对应的菜单隐藏了,这样不好,后面的版本我会改进的。
根据本系统的需要,总共设计的八张表,分别为管理员表、用户表、学生表、课程表、教师表、角色表、系统信息表、用户表。
学生表、班级表、课程表、教师表E-R图如下:
用户表、角色表E-R图如下:
系统信息表E-R图如下:
管理员表E-R图如下:
数据库模型图暂时不放了,答辩完我会放上来,有需要的可以根据E-R图先自己创建一下数据库表
具体页面暂时不往上放了,我会贴部分代码,使用框架简化了开发,代码量少了好多。
实现功能的步骤为:
实体类
=>dao层
=>service层
=>contorller
因为功能不是太多,我没有使用***.xml
的映射文件,而是用的注解@Select、@insert
等注解开发的数据持久层(dao层)。
具体实现的模块有以下几个,我只贴最后一个模块,也就是管理员管理模块的代码,供大家参考。
实体类(domain/entity/pojo)
Admin
public class Admin {
private Integer admin_id;
private String admin_name;
private String admin_password;
public Integer getAdmin_id() {
return admin_id;
}
public void setAdmin_id(Integer admin_id) {
this.admin_id = admin_id;
}
public String getAdmin_name() {
return admin_name;
}
public void setAdmin_name(String admin_name) {
this.admin_name = admin_name;
}
public String getAdmin_password() {
return admin_password;
}
public void setAdmin_password(String admin_password) {
this.admin_password = admin_password;
}
public String getAdmin_role() {
return admin_role;
}
public void setAdmin_role(String admin_role) {
this.admin_role = admin_role;
}
private String admin_role;
}
dao层(dao)
AdminDao
@Repository
public interface AdminDao {
@Select("select * from admin ")
public List findAll();
@Select("select * from admin where admin_id = #{admin_id}")
public List findByadmin_id(Integer admin_id);
@Insert("INSERT INTO admin(admin_id,admin_name,admin_password,admin_role) VALUES (#{admin_id},#{admin_name},#{admin_password},#{admin_role})")
public void insertAdmin(Admin admin);
@Delete("delete from admin where admin_id = #{admin_id}")
public Integer delAdmin(Integer admin_id);
@Update("update admin set admin_name = #{admin_name},admin_password = #{admin_password},admin_role = #{admin_role} where admin_id = #{admin_id}")
public void updateByadmin_id(Admin admin);
@Select("select * from admin where admin_name = #{admin_name}")
public List loginCheck(String admin_name);
}
service层(service)
AdminService
public interface AdminService {
public List findAll();
public List findByadmin_id(Integer admin_id);
public void insertAdmin(Admin admin);
public Integer delAdmin(Integer admin_id);
public void updateByadmin_id(Admin admin);
public List loginCheck(String admin_name,String admin_password);
}
AdminServiceImpl
@Service("AdminService")
@Transactional
public class AdminServiceImpl implements AdminService {
@Autowired
private AdminDao adminDao;
@Override
public List findAll() {
return adminDao.findAll();
}
@Override
public List findByadmin_id(Integer admin_id) {
return adminDao.findByadmin_id(admin_id); }
@Override
public void updateByadmin_id(Admin admin){
adminDao.updateByadmin_id(admin);
}
@Override
public void insertAdmin(Admin admin) {
adminDao.insertAdmin(admin);
}
@Override
public Integer delAdmin(Integer admin_id)
{
return adminDao.delAdmin(admin_id);
}
@Override
public List loginCheck(String admin_name,String admin_password){
List adminList = adminDao.loginCheck(admin_name);
if(adminList != null && adminList.iterator().next().getAdmin_password().equals(admin_password)){
return adminList;
}
return null;
}
}
controller(controller)
``
@Controller
@RequestMapping("/admin")
public class AdminController {
@Autowired
private AdminService adminService;
@Autowired
private RoleService roleService;
//查询所有人员
@RequestMapping(value="/findAlladmin",method = RequestMethod.GET)
public ModelAndView findAll(@RequestParam(defaultValue="1",required=true,value="pageNo") Integer pageNo){
ModelAndView modelAndView = new ModelAndView();
Integer pageSize = 5;
PageHelper.startPage(pageNo,pageSize);
List adminList = adminService.findAll();
PageInfo pageInfo = new PageInfo(adminList);
modelAndView.addObject("pageInfo",pageInfo);
modelAndView.setViewName("admdatalist");
return modelAndView;
}
//跳转添加页面
@RequestMapping(value = "/insertpage",method = RequestMethod.GET)
public String insertPage(){
return "admfrom";
}
//添加操作
@RequestMapping(value = "/saveAdmin",method = RequestMethod.POST)
public void saveAdmin(Admin admin, HttpServletRequest request, HttpServletResponse response, Model model) throws IOException {
adminService.insertAdmin(admin);
// response.sendRedirect(request.getContextPath()+"/admin/findAlladmin");
response.setContentType("text/html;charset=utf-8");
response.getWriter().print("");
return;
}
//修改页面
@RequestMapping(value = "/updatePage")
public String updatePage(@RequestParam(name = "admin_id",required = false) Integer admin_id,Model model){
List adminList = adminService.findByadmin_id(admin_id);
model.addAttribute("adminList",adminList);
return "admUpdatefrom";
}
//修改操作
@RequestMapping(value = "/updateAdmin",method = RequestMethod.POST)
public void updateAdmin(Admin admin, HttpServletResponse response) throws IOException {
adminService.updateByadmin_id(admin);
response.setContentType("text/html;charset=utf-8");
response.getWriter().print("");
return;
}
//删除操作
@RequestMapping(value = "/deleteAdmin",method = RequestMethod.GET)
public void delAdmin(@RequestParam(name = "admin_id",required = false) Integer admin_id, HttpServletResponse response) throws IOException {
adminService.delAdmin(admin_id);
response.setContentType("text/html;charset=utf-8");
response.getWriter().print("");
return;
//接收table中的参数:
// 1. 给button添加标签,添加href属性/admin/deleteAdmin?admid=${admin.admid} 问号后的参数会被传递
// 2. controller方法中添加@RequestParam注解,其name属性值与?后所传递的参数name相同
}
}
写到这里基本差不多了,虽然部分内容没有贴,但是管理员的增删改查已经基本完成了。
从2019年7月刚开始接触ssm,到2019年10月初稿完成,大部分时间都花费在了看视频学习框架的理论知识和看书上,虽然系统做的不是很完善,但对我的能力确实有了很大的提升,毕竟是第一次实际开发项目,积累了一定的经验,也有很多待解决的问题,回顾一下做如下几点的总结: