SSM 整合
整合之前先看看各自的配置文件:
Spring:Ioc控制反转、AOP面向切面。
需配置web.xml(spring监听器、spring配置信息)、
applicationContext.xml(数据库相关bean:dataSource、sessionFactory、transactionManager)
SpringMVC:控制器,流程、页面显示的控制。
需配置web.xml(dispatcherServlet分发器servlet的配置)、
[servlet-name]-servlet.xml(配置自动扫描控制器,注解的启动,视图解析器)
Mybatis:提供ORM服务,优秀的持久层框架。
需配置mybatis.config.xml(配置数据库连接信息属性文件、数据源环境、实体类映射文件的路径)
[entity-name]-mapper.xml(sql语句的映射)
整合后配置文件:
web.xml(spring监听器、spring+mybatis配置文件路径信息、dispatcherServlet分发器servlet)
spring-mybatis.xml(结合applicationContext.xml和mybatis.config.xml)
spring-mvc.xml(原[servlet-name]-servlet.xml,基本不变 可扩充)
[entity-name]-mapper.xml(不变)
配置文件的整合方法看了很多,其中最主要的是Spring对其他所有配置的bean管理。
1、项目目录如下:
2、其中test、tool包测试用,可以不用。使用的实体类表如下:
package com.gan.model;
public class Student {
private int sno;
private String sname;
private double score;
get/set
}
3、spring-mybatis配置文件:
3、spring-mvc.xml配置文件
4、web.xml配置文件
contextConfigLocation
classpath:spring-mybatis.xml
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
true
encoding
UTF-8
encodingFilter
/*
org.springframework.web.context.ContextLoaderListener
SpringMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc.xml
1
SpringMVC
/
/index.jsp
5、主页index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="utf-8"%>
SSM crud
Student CURD
mapper包
mapper接口方法
package com.gan.mapper;
import java.util.List;
import com.gan.model.Student;
public interface StudentMapper {
public List getAllStudent();
}
mapper.xml配置sql映射
service包
service接口方法
package com.gan.service;
import java.util.List;
import com.gan.model.Student;
public interface InterStudentService {
public List showStudentList();
}
service实现方法
package com.gan.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.gan.mapper.StudentMapper;
import com.gan.model.Student;
@Service
@Transactional
public class StudentServiceImpl implements InterStudentService {
@Autowired(required=true)
private StudentMapper studentDao;
@Override
public List showStudentList() {
// TODO Auto-generated method stub
return studentDao.getAllStudent();
}
}
controller控制器
package com.gan.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.gan.model.Student;
import com.gan.service.InterStudentService;
@Controller
public class StudentController {
@Autowired(required=true)
private InterStudentService service;
@RequestMapping(value="/index",method=RequestMethod.GET)
public String index(){
return "index";
}
@RequestMapping(value="/show",method=RequestMethod.GET)
public String getAllStudent(Model model){
List stus=service.showStudentList();
model.addAttribute("stus",stus);
System.out.println(stus);
return "show";
}
}
show.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
show
Student Info
sno
sname
score
${stu.sno}
${stu.sname}
${stu.score}
返回
mapper接口:
public Student getStudentByID(int sno); //查找是否学号重复
public int insertStudent(Student stu);
mapper映射:
insert into student(sno,sname,score) values(#{sno},#{sname},#{score})
service接口:
public boolean checkID(int sno);
public boolean addStudent(Student stu);
service实现:
@Override
public boolean checkID(int sno) {
if(studentDao.getStudentByID(sno)!=null)
return true;
return false;
}
@Override
public boolean addStudent(Student stu) {
if(studentDao.insertStudent(stu)!=0)
return true;
return false;
}
controller方法:
/**
* @ add
* @return
*/
@RequestMapping(value="/add",method=RequestMethod.POST)
public String add(@ModelAttribute("stu")Student stu,Model model){
if(service.checkID(stu.getSno())){
model.addAttribute("message",stu.getSno()+"学号已有,添加失败!");
}else{
service.addStudent(stu);
model.addAttribute("message",stu.getSno()+"添加成功!");
}
return "message";
}
add.jsp添加页:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
add Student
Student ADD
学号
姓名
分数
返回
message.xml结果信息页:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
Message
${message}
返回
mapper接口:
public Student getStudentByID(int sno); //查找是否学号存在
public int deleteStudent(int sno);
mapper映射:
delete from student where sno=#{sno}
service接口:
public boolean checkID(int sno);
public boolean deleteStudent(int sno);
service实现:
@Override
public boolean deleteStudent(int sno) {
if(studentDao.deleteStudent(sno)!=0)
return true;
return false;
}
controller方法:
/**
* @param delete
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
public String getOneStudent(@RequestParam("sno")int sno,Model model){
if(service.checkID(sno)){
service.deleteStudent(sno);
model.addAttribute("message",sno+"删除成功!");
}else{
model.addAttribute("message",sno+"没有该学号,删除失败!");
}
return "message";
}
delete.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
My JSP 'index.jsp' starting page
返回
mapper接口:
public Student getStudentByID(int sno); //显示原本信息
public int updateStudent(Student stu);
public List
mapper映射:
update student set sname=#{sname},score=#{score} where sno=#{sno}
service接口:
public Student getOneStudent(int sno);
public boolean updateStudent(Student stu);
public List
service实现:
@Override
public boolean updateStudent(Student stu) {
if(studentDao.updateStudent(stu)!=0)
return true;
return false;
}
@Override
public List getAllSno() {
// TODO Auto-generated method stub
return studentDao.selectAllSno();
}
@Override
public Student getOneStudent(int sno) {
// TODO Auto-generated method stub
return studentDao.getStudentByID(sno);
}
controller方法实现:
//下拉显示学号
@RequestMapping(value="/update",method=RequestMethod.GET)
public String deletePage(Model model){
Student student =new Student();
Map snoList=new HashMap();
List list=service.getAllSno();
for(int i=0;i
update.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
add Student
Student Update
学号
姓名
分数
返回
下载 戳这里