SSM整合---以学生信息管理为例实现前后端分离(后端)

SSM整合---以学生信息管理为例实现前后端分离(前端)

前面把前端写好了,接下来就是后端,下面给出后端的Maven工程结构

SSM整合---以学生信息管理为例实现前后端分离(后端)_第1张图片

下面是Maven的pom.xml文件,整合SMM所需要的jar包和tomcat服务器


	4.0.0
	com.zhaoguang
	SSM
	1.0.0
	war

	
	
		
		
			junit
			junit
			4.12
			test
		

		
		
			mysql
			mysql-connector-java
			8.0.13
		

		
		
			org.mybatis
			mybatis
			3.4.1
		

		
		
			org.mybatis
			mybatis-spring
			1.3.1
		

		
		
			org.springframework
			spring-context
			4.3.20.RELEASE
		

		
		
			org.apache.commons
			commons-dbcp2
			2.1.1
		

		
		
			org.springframework
			spring-jdbc
			4.3.20.RELEASE
		



		
		
			org.springframework
			spring-webmvc
			4.3.20.RELEASE
		

		
		
			javax.servlet
			javax.servlet-api
			3.1.0
			provided
		

		
		
			com.fasterxml.jackson.core
			jackson-databind
			2.8.5
		

		
		
			com.thetransactioncompany
			cors-filter
			2.5
		

	
	
	
	
		
			
			
				org.apache.maven.plugins
				maven-compiler-plugin
				2.3.2
				
					1.8
					1.8
				
			
			
			
				org.apache.tomcat.maven
				tomcat7-maven-plugin
				2.2
				
				
					8080
				
			

		
		

后端

1、定义一个学生 POJO

public class Student {
	private int id;
	private int studentId;
	private String name;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getStudentId() {
		return studentId;
	}
	public void setStudentId(int studentId) {
		this.studentId = studentId;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

2、定义学生Mapper接口,相当于DAO层

public interface StudentMapper {
	/**
	 * @Description:添加信息
	 * @param:学生对象
	 * @return:无
	 */
	public void addStudent(Student student);
	
	/**
	 * @Description:根据学生唯一的id更新其信息
	 * @param:学生对象
	 * @return:无
	 */
	public void updateStudent(Student student);
	
	/**
	 * @Description:根据学生唯一的id删除其记录
	 * @param:该学生唯一的id
	 * @return:无
	 */
	public void deleteStudentById(int id);		
	
	/**
	 * @Description:查询所有学生信息
	 * @param:无
	 * @return:学生对象集合
	 */
	public List selectAllStudent();
}

3、学生Mapper接口对应的XML文件。在Maven项目中,一些资源文件最好放在sec/main/resource目录下





	
	
		insert into student(studentid,name) 
		values(#{studentId},#{name})
	
	
	
		update student 
		set studentid = #{studentId}, name = #{name} 
		where id = #{id}
	

 	
		delete from student 
		where id= #{id}
	

	 

4、接着定义学生service服务接口

public interface StudentService {

	public void addStudent(Student student);
	
	public void updateStudent(Student student);
	
	public void deleteStudentById(int id);		
	
	public List selectAllStudent();
}

5、学生service服务接口实现类

@Service
public class StudentServiceImpl implements StudentService {
	
	@Autowired
	StudentMapper studentMapper;

	@Override	   //是否开启只读事务                传播行为                                             隔离级别
	@Transactional(readOnly=false,propagation=Propagation.REQUIRED,isolation=Isolation.DEFAULT)
	public void addStudent(Student student) {
		System.out.println("Service服务:添加");
		studentMapper.addStudent(student);
	}

	@Override
	@Transactional(readOnly=false,propagation=Propagation.REQUIRED,isolation=Isolation.DEFAULT)
	public void updateStudent(Student student) {
		System.out.println("Service服务:修改");
		
		studentMapper.updateStudent(student);
	}

	@Override
	@Transactional(readOnly=false,propagation=Propagation.REQUIRED,isolation=Isolation.DEFAULT)
	public void deleteStudentById(int id) {
		System.out.println("Service服务:删除");
		
		studentMapper.deleteStudentById(id);
	}

	@Override
	@Transactional(readOnly=false,propagation=Propagation.REQUIRED,isolation=Isolation.DEFAULT)
	public List selectAllStudent() {
		System.out.println("Service服务:查询");
		
		List stuList = studentMapper.selectAllStudent();
		return stuList;
	}

}

6、使用XML文件方式配置Spring IoC



	
	
 	 
	
	
	
		
		
		
		
	
	
	
	
		
		
		
		
		
		
	
	
	
	
		
		
		
	
	
	
	
		
	
	
	
	
	
	

最后在数据库中的创建表student,id主键自增

SSM整合---以学生信息管理为例实现前后端分离(后端)_第2张图片

到此,已经把Spring和MyBatis整合起来了,接下你可以自己测试了

测试代码:

public class TestModel {
	ApplicationContext ctx = null;
	StudentService ss = null;

	public TestModel() {
		ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		ss = ctx.getBean(StudentService.class);
	}

	//添加
//	@Test
	public void testAddStudent() {
		Student student = new Student();
		student.setStudentId(16999017);
		student.setName("兆光");
		
		ss.addStudent(student);
	}

	//修改
//	@Test
	public void testUpdateStudent() {
		Student student = new Student();
		student.setId(4);
		student.setStudentId(16999000);
		student.setName("光");
		
		ss.updateStudent(student);
	}
	
	//删除
//	@Test
	public void testDeleteStudent() {
		ss.deleteStudentById(15);
	}
	
	//查询
	@Test
	public void testSelectStudent() {
		List stuList = ss.selectAllStudent();
		for (Student student : stuList) {
			System.out.println(student.getId());
			System.out.println(student.getStudentId());
			System.out.println(student.getName());
		}
	}
}

接下来把Spring和SpringMVC合起来

7、在webapp的WEB-INF目录下编写web.xml文件



	SSM
	
	
	
		contextConfigLocation
		classpath:applicationContext.xml
	
	
		org.springframework.web.context.ContextLoaderListener
	

	
	
		SpringMVC
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:applicationContext-mvc.xml
		
	
	
		SpringMVC
		*.do
	

	
	
		CORS
		com.thetransactioncompany.cors.CORSFilter
	
	
		CORS
		/*
	

	
	
		characterEncodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
	
	
		characterEncodingFilter
		/*
	

8、使用XML文件方式配置SpringMVC



       
    
	
	
	
	
		

9、实现控制器

@Controller
@RequestMapping("StudentController")
public class StudentController {
	@Autowired
	private StudentService studentService;

	@RequestMapping("addStudent")
	public ModelAndView addStudent(Student student) {
		System.out.println("添加学生信息:" + student.getStudentId() + " " + student.getName());
		
		studentService.addStudent(student);
		
		ModelAndView mv = new ModelAndView();
		mv.addObject("msg", "添加成功");
		mv.setView(new MappingJackson2JsonView());
		return mv;
	}
	
	@RequestMapping("updateStudent")
	public ModelAndView updateStudent(Student student) {
		System.out.println("修改学生信息:" + student.getStudentId() + " " + student.getName());
		
		studentService.updateStudent(student);
		
		ModelAndView mv = new ModelAndView();
		mv.addObject("msg", "修改成功");
		mv.setView(new MappingJackson2JsonView());
		return mv;
	}
	
	@RequestMapping("deleteStudent")
	public ModelAndView deleteStudent(int id) {
		System.out.println("删除学生信息:" + id);
		
		studentService.deleteStudentById(id);
		
		ModelAndView mv = new ModelAndView();
		mv.addObject("msg", "删除成功");
		mv.setView(new MappingJackson2JsonView());
		return mv;
	}
	
	@ResponseBody
	@RequestMapping("selectStudent")
	public List selectStudent() {
		System.out.println("查询全部学生信息");
		
		List studentList = studentService.selectAllStudent();
		return studentList;
	}
	
}

到此,SMM整合完成,下面就可以测试了,把前后端打通。

测试

添加

SSM整合---以学生信息管理为例实现前后端分离(后端)_第3张图片  SSM整合---以学生信息管理为例实现前后端分离(后端)_第4张图片

查看

SSM整合---以学生信息管理为例实现前后端分离(后端)_第5张图片

修改(编辑)

SSM整合---以学生信息管理为例实现前后端分离(后端)_第6张图片   SSM整合---以学生信息管理为例实现前后端分离(后端)_第7张图片

删除

SSM整合---以学生信息管理为例实现前后端分离(后端)_第8张图片  SSM整合---以学生信息管理为例实现前后端分离(后端)_第9张图片

 

 

 

你可能感兴趣的:(Java-SSM整合)