初次使用SSM框架编写列表的增删改查以及分页

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


目录

前言

一、框架搭建

二、具体方法的编写步骤

1.Controller层方法

2.Service层方法

3.Dao层方法

三、具体网页显示

总结


前言

这是在做课程设计的项目之前,学习如何使用SSM的一个练手项目,其中有框架搭建以及列表的增删改查和分页功能的实现,此下内容大多是个人学习感悟,如有不妥请多指正交流。


一、框架搭建

本人的SSM框架搭建是在b站学习的,框架搭建不需要自己编写,从其他地方将框架复制过来学会即可,知道框架中的各个位置所发挥的作用即可。 

ssm项目搭建_哔哩哔哩_bilibili

在此附上框架学习的视频,UP主讲的很清晰,还有相应的文件。

SSM框架中三个板块,Dao层,Service层以及Controller层。

Dao层是最底层,负责调用与修改数据库的数据;Service层是中间层,负责Dao层与Controller层之间的数据传输与连接,Controller层是最上层,负责处理网页传来的相关数据并返回数据给网页。

举个例子就是,饭店。

顾客(网页)来吃饭,先向服务员(Controller层)点餐(数据请求),服务员将顾客点的菜(数据请求)写到后厨窗口(Service层),后厨(Dao层)根据窗口要求处理食材(数据库数据)并放到窗口,服务员取菜给顾客。

这样想会不会好理解SSM的大致作用呢?

接下来说说具体的项目,一个学生信息列表,建议是在分别学习好Spring,SpringMVC以及MyBatis三大板块后学着做整合。

 最后我的文件与框架创建如下图所示。

初次使用SSM框架编写列表的增删改查以及分页_第1张图片

jsp页面文件如下图所示,后续配置文件会设置好jsp文件的前后缀

初次使用SSM框架编写列表的增删改查以及分页_第2张图片

web.xml的作用是用来配置DispatcherServlet的,用于拦截网页url请求以及分发。

下面的filter用于解决编码乱码问题。

web.xml



  springLearn
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  
  
	 
	    DispatcherServlet
	    org.springframework.web.servlet.DispatcherServlet
	     
	    	
	         contextConfigLocation
	         
	         classpath:applicationContext.xml
	    
	    1
	
	
	    DispatcherServlet
	    
	    /
	
	
	
	
	    encodingFilter
	    
	        org.springframework.web.filter.CharacterEncodingFilter
	    
	    
	        encoding
	        utf-8
	    
	
	
	    encodingFilter
	    /*
	
  

此框架是将applicationContext.xml中的内容分成三个部分进行编写,此文件就是将三个分文件进行整合。

applicationContext.xml




        
        
        
        
        

 Mybatis-config.xml文件用于配置别名和扫描dao层接口文件





	
    
    	
	
	
	
	    
	


 spring-dao.xml用于SSM框架中最底层的相关文件配置,也就是与数据库连接那一层。




        
        
		
		    
            
		    
		    
		    
		
		
		
		
		    
		    
		    
		
		
		
		
        	
    	

		
		

spring-mvc.xml是视图解析器与注解的配置,即配置jsp文件的前后缀以及pojo层实体类方法的别名扫描,便于写方法更加方便





   		
		
		
		
		
		
		
		
		    
		    
		    
		    
		    
		    
		
		
		
		

spring-service就是service方法的扫描




        
        
        


二、具体方法的编写步骤

1.Controller层方法

@RequestMapping中填写的是网页的url,即在浏览器输入http://localhost:8080/StudentSSM/pagelistStudent,这里的StudentSSM是项目名称,后面的pagelistStudent就是@的内容

而要跳转的页面就是setViewName中的内容,这里面填的应该是jsp页面的名称(由于在配置文件中已经设置了前缀和后缀,此处直接填jsp页面名称即可)

package com.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.pojo.Page;
import com.pojo.Student;
import com.service.StudentService;

@Controller
public class Studentcontroller {
	@Autowired
	StudentService studentservice;
	@RequestMapping("/listStudent")
	public ModelAndView listStudent() {
		ModelAndView mav = new ModelAndView();
		List stduents=studentservice.list();
		mav.addObject("students",stduents);
		mav.setViewName("listStudent");
		return mav;
	}
	@RequestMapping("/pagelistStudent")
	public ModelAndView pagelistStudent(Page page) {
		
		ModelAndView mav = new ModelAndView();
		int total = studentservice.total();
        //设置页码防溢出
		if(page.getstart()<0)
			page.setstart(0);
		if(page.getstart()>total)
			page.setstart(total-1);
		page.calculatelast(total);
		List pagestudents=studentservice.pagelist(page);
		mav.addObject("pagestudents",pagestudents);
		mav.setViewName("listStudent");
		return mav;
	}
	@RequestMapping("/getStudent")
	public ModelAndView getStudent(int sno) {
		ModelAndView mav = new ModelAndView();
		Student student = studentservice.get(sno);
		List get = new ArrayList();
		get.add(student);
		mav.addObject("get",get);
		mav.setViewName("getStudent");
		return mav;
	}
	@RequestMapping("/deleteStudent")
	public ModelAndView deleteStudent(int sno,Page page) {
		ModelAndView mav = new ModelAndView();
		studentservice.delete(sno);
		int total = studentservice.total();
		if(page.getstart()<0)
			page.setstart(0);
		if(page.getstart()>total)
			page.setstart(total-1);
		page.calculatelast(total);
		List delete=studentservice.pagelist(page);
		mav.addObject("delete",delete);
		mav.setViewName("listStudent");
		return mav;
	}
	@RequestMapping("/beforeinsertStudent")
	public ModelAndView beforeinsertStudent() {
		ModelAndView mav = new ModelAndView();
		mav.setViewName("insertStudent");
		return mav;
	}

	@RequestMapping("/insertStudent")
	public ModelAndView insertStudent(int sno,String sname,Page page) {
		ModelAndView mav = new ModelAndView();
		studentservice.insert(sno,sname);
		int total = studentservice.total();
		if(page.getstart()<0)
			page.setstart(0);
		if(page.getstart()>total)
			page.setstart(total-1);
		page.calculatelast(total);
		List insert=studentservice.pagelist(page);
		mav.addObject("insert",insert);
		mav.setViewName("listStudent");
		return mav;
	}
	@RequestMapping("/beforeupdateStudent")
	public ModelAndView beforeupdateStudent(int id,int sno,String sname) {
		ModelAndView mav = new ModelAndView();
		mav.addObject("id",id);
		mav.addObject("sno",sno);
		mav.addObject("sname",sname);
		mav.setViewName("updateStudent");
		return mav;
	}
	@RequestMapping("/updateStudent")
	public ModelAndView updateStudent(int id,int sno,String sname) {
		ModelAndView mav = new ModelAndView();
		studentservice.update(id,sno,sname);
		List update = studentservice.list();
		mav.addObject("update",update);
		mav.setViewName("listStudent");
		return mav;
	}
}

2.Service层方法

 通过接口以实现Controller层调用方法与调用Dao层的方法

package com.service;

import java.util.List;

import com.pojo.Page;
import com.pojo.Student;

public interface StudentService {
	
	List list();
	
	List pagelist(Page page);
	int total();
	
	void delete(int sno);
	
	Student get(int sno);
	
	void insert(int sno,String sname);
	
	void update(int id,int sno,String sname);

}
package com.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.dao.StudentMapper;
import com.pojo.Page;
import com.pojo.Student;
import com.service.StudentService;

@Service
public class StudentServiceImpl implements StudentService{
	
	@Autowired
	StudentMapper studentmapper;
	
	@Override
	public List list(){
		return studentmapper.list();
	}
	
	@Override
	public Student get(int sno) {
		return studentmapper.get(sno);
	}
	
	@Override
	public void delete(int sno) {
		studentmapper.delete(sno);
	}
	
	@Override
	public void insert(int sno,String sname) {
		studentmapper.insert(sno,sname);
	}
	
	@Override
	public void update(int id,int sno,String sname) {
		studentmapper.update(id,sno,sname);
	}

	@Override
	public List pagelist(Page page) {
		// TODO Auto-generated method stub
		return studentmapper.pagelist(page);
	}

	@Override
	public int total() {
		// TODO Auto-generated method stub
		return studentmapper.total();
	}
}

3.Dao层方法

 Dao层就调用底层方法

package com.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.pojo.Page;
import com.pojo.Student;

public interface StudentMapper {
	
	public List list();
	
	public List pagelist(Page page);
	
	public int total();
	
	public void delete(int sno);
	
	public Student get(int sno);
	
	public void insert(@Param("sno")int sno,@Param("sname")String sname);
	
	public void update(@Param("id")int id,@Param("sno")int sno,@Param("sname")String sname);
	
	
}


        

	
	
	
	
	
	
	
		delete from student where Sno = #{sno}
	
	
		insert into student(Sno,Sname) value(#{sno},"${sname}")
	
	
		update student set Sno=#{sno},Sname=#{sname} where id=#{id}
	


三、具体网页显示

初次使用SSM框架编写列表的增删改查以及分页_第3张图片

最后会显示这样的一个表格,其中名字学号都与实际无关,只是用作表单内数据。


总结

总的来说,将框架搭建好并且理解相关方法的编写后,会让工作变得极其简单,付出时间理解就好了。

你可能感兴趣的:(大数据,eclipse,tomcat,java-ee,spring)