Spring+Spring MVC+Mybatis整合

整合思路:

第一步:整合dao层:
mybatis和spring整合,通过spring管理mapper借口,使用mapper接口扫描自动扫描mapper接口在spring中注册;

第二步:整合service层:
通过spring管理service层接口,使用配置方法将service 接口配置在spring的文件中;

第三步:整合springMVC:
由于SpringMVC是spring的一个模块,无需整合。

整合过程:

第一步:引入jar包:

spring核心包、mybatis、mybatis-spring、connection-java、\spring-mvc\spring-webmvc\servlet-api

第二步:spring整合mybatis:

2.1、创建mybatis.xml文件




    
    
    
    

2.2、创建bean类、接口文件mapper以及所对应创建xml文件

实体bean类:

public class User3 {
    private int id;
    private String username;
    private String sex;
    private String address;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

接口mapper文件:

public interface UserMapper {
   
    int deleteByPrimaryKey(Integer id);

    
    int insert(User3 record);

   
    User3 selectByPrimaryKey(Integer id);

    
    List selectAll();

    
    int updateByPrimaryKey(User3 record);
}

接口mapper文件对应的xml文件:




    
        
        
        
        
    

    
        delete from user
        where id = #{id,jdbcType=INTEGER}
    

    
        insert into user (id, username, sex,
        address)
        values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{sex,jdbcType=CHAR},
        #{address,jdbcType=VARCHAR})
    

    
        update user
        set username = #{username,jdbcType=VARCHAR},
        sex = #{sex,jdbcType=CHAR},
        address = #{address,jdbcType=VARCHAR}
        where id = #{id,jdbcType=INTEGER}
    

    

    

2.3、创建spring的配置文件



    
    


    
    
        
        
        
        
        
    

    
    
        
        
        
        
    

    
    
        
        
        
        
    


第三步:service开发:

在service层中注入dao层(mapper)的实例,需要使用注解实现

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public List getAllUser() {
        //查询dao层的接口
        return userMapper.selectAll();
    }

    public User3 getUserById(int id){
        return userMapper.selectByPrimaryKey(id);
    }

    public int updateUser(User3 user3) {
        return userMapper.updateByPrimaryKey(user3);
    }
}

第四步:spring和springMVC的整合:

4.1、在controller层注入service对象【控制器】

@Controller
@RequestMapping(value = "/user")
public class user3Controller {

    @Autowired
    private UserService userService;

   @RequestMapping(value = "/userList")
   public ModelAndView getUserList(HttpServletRequest request, HttpServletResponse response){
        System.out.println("<<<<<<<<<<<<<<<<<<<<<<");
        List user3s=userService.getAllUser();

        ModelAndView mav=new ModelAndView();

        //返回数据
        mav.addObject("user",user3s);
        //指定视图逻辑名
        mav.setViewName("userList");

        return mav;
    }
    //获取用户信息
    @RequestMapping(value = "editUserSubmit")
    public ModelAndView userInfo(HttpServletRequest request,HttpServletResponse response){
       //获取用户信息
        User3 user=userService.getUserById(10);
        ModelAndView view=new ModelAndView();
        view.addObject("user",user);
        view.setViewName("editUser");
        return view;
    }
    @RequestMapping(value = "/editUser")
    public ModelAndView editUser(HttpServletRequest request,HttpServletResponse response){
       //获取用户信息
        User3 user=userService.getUserById(10);
        ModelAndView view=new ModelAndView();
        view.addObject("user",user);
        view.setViewName("editUser");
        return view;
    }
}

4.2、 视图页面开发:

userList.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>



    
    用户列表
    




用户列表

<%----%> <%----%>
选择用户ID 用户名 性别 住址 操作
${user.id } ${user.username } ${user.sex}" ${user.address } 修改

editUser.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>



    
    详情


修改用户信息

用户ID ${user.id }
用户名 ${user.username }
性别 ${user.sex }
地址 ${user.address }

4.3、spring-mvc配置文件、spring-mvc-servlet以及web.xml配置

至于为什么需要配置spring-mvc-servlet.xml文件,是因为我没有添加这个标签,所以:需要配置spring-mvc-servlet.xml文件,即修改配置文件的路径让其加载spring-mvc.xml




    
    

    
    

    
    
        
        
        
        
        
    




spring-mvc-servlet.xml文件:



    

    

    
    
        
        
        
        
        
    

  springmvc
  

    
    
        contextConfigLocation
        classpath:spring-core.xml
    
    
    
        org.springframework.web.context.ContextLoaderListener
    


  
  
    sprmvc
    
    org.springframework.web.servlet.DispatcherServlet
  

  
    sprmvc
    
    
    
    /
  




到这里,SSM框架基本已经成形,因为配置文件比较多,再给出具体示意图说明:

Spring+Spring MVC+Mybatis整合_第1张图片

SSM的整合中,Spring的作用是什么?
1、通过Spring管理持久层mapper(dao层接口)
2、通过Spring来管理service层,service层是调用dao层的实现,事务管理
3、通过Spring来管理表现层(Controller层):相应的Controller来调用service层

你可能感兴趣的:(Spring+Spring MVC+Mybatis整合)