您当前的位置: 首页 >  Java

彭世瑜

暂无认证

  • 2浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java学习路线-65:整合 SSM-Spring+SpringMVC+MyBatis

彭世瑜 发布时间:2020-06-22 21:06:26 ,浏览量:2

整合 SSM

项目结构

.
├── pom.xml
└── src
    └── main
        ├── java
        │   └── com
        │       └── pengshiyu
        │           ├── controller
        │           │   └── UserController.java
        │           ├── dao
        │           │   ├── UserDao.java
        │           │   └── impl
        │           │       └── UserDaoImpl.java
        │           ├── interceptor
        │           │   └── MyInterceptor.java
        │           ├── service
        │           │   ├── UserService.java
        │           │   └── impl
        │           │       └── UserServiceImpl.java
        │           └── vo
        │               └── User.java
        ├── resources
        │   ├── applicationContext.xml
        │   ├── db.properties
        │   ├── mappers
        │   │   └── user.mapper.xml
        │   ├── mybatis-config.xml
        │   └── spring-mvc.xml
        └── webapp
            ├── WEB-INF
            │   └── web.xml
            ├── detail.jsp
            ├── edit.jsp
            └── list.jsp
依赖

pom.xml




    4.0.0

    org.example
    spring-mvc-demo
    1.0-SNAPSHOT

    

        

            
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                2.2
                
                    8080
                    /
                    UTF-8
                    
                    true
                    src/main/webapp/WEB-INF/web.xml
                    true
                
            

        
    

    
        
        
            org.springframework
            spring-core
            5.2.6.RELEASE
        
        
        
            org.springframework
            spring-beans
            5.2.6.RELEASE
        
        
        
            org.springframework
            spring-context
            5.2.6.RELEASE
        

        
            org.springframework
            spring-context-support
            5.2.6.RELEASE
        

        
        
            org.springframework
            spring-web
            5.2.6.RELEASE
        
        
        
            org.springframework
            spring-webmvc
            5.2.6.RELEASE
        

        
        
            org.springframework
            spring-aop
            5.2.6.RELEASE
        

        
        
            org.springframework
            spring-expression
            5.2.6.RELEASE
        


        
        
            commons-logging
            commons-logging
            1.2
        

        
            javax.servlet
            javax.servlet-api
            4.0.1
            provided
        

        
            taglibs
            standard
            1.1.2
        

        
            jstl
            jstl
            1.2
        

        
        
        
            commons-io
            commons-io
            2.7
        

        
        
            commons-fileupload
            commons-fileupload
            1.4
        

        
        
        
            com.fasterxml.jackson.core
            jackson-annotations
            2.11.0
        
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.11.0
        
        
        
            com.fasterxml.jackson.core
            jackson-core
            2.11.0
        

        
            org.aspectj
            aspectjweaver
            1.9.5
        

        
            org.mybatis
            mybatis
            3.5.4
        

        
            org.mybatis
            mybatis-spring
            2.0.4
        

        
            org.springframework
            spring-jdbc
            5.2.6.RELEASE
        

        
            mysql
            mysql-connector-java
            8.0.18
        

    

配置

1、web.xml





    
    
        contextConfigLocation
        classpath:applicationContext.xml
    

    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        spring-mvc
        org.springframework.web.servlet.DispatcherServlet

        
            contextConfigLocation
            classpath:spring-mvc.xml
        

        
        1
    

    
        spring-mvc
        
        /
    

    
    
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
    

    
        CharacterEncodingFilter
        /*
    


2、applicationContext.xml





    
    
        
    

    
    
        
        
        
        
    

    
    
        
        
    

    
    
    
        
    

    
        
            
            
            
        
    

    
        
        
    

    
    



3、db.properties

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/data
username=root
password=123456

4、spring-mvc.xml





    
    




5、mybatis-config.xml







    
        
    

    
        
    


6、user.mapper.xml






    
    
        select * from users
    

    
        select * from users where id = #{id}
    

    
    
        insert into users(name, password) values(#{name}, #{password})
    

    
        delete from users where id = #{id}
    

    
        update users set name = #{name}, password = #{password} where id = #{id}
    


实体类
package com.pengshiyu.vo;

public class User {
    private int id;
    private String name;
    private String password;

    public User(int id, String name, String password) {
        this.id = id;
        this.name = name;
        this.password = password;
    }

    public User() {
    }

    public int getId() {
        return id;
    }

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

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

Dao
package com.pengshiyu.dao;

import com.pengshiyu.vo.User;

import java.util.List;

public interface UserDao {
    public List list();
    public User detail(int id);
    public int delete(int id);
    public int update(User user);
    public int insert(User user);
}

实现类

package com.pengshiyu.dao.impl;

import com.pengshiyu.dao.UserDao;
import com.pengshiyu.vo.User;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository("userDao")
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
    @Autowired
    @Override
    public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
        super.setSqlSessionFactory(sqlSessionFactory);
    }

    public List list() {
        return getSqlSession().selectList("com.pengshiyu.vo.user.mapper.selectList");
    }

    public User detail(int id) {
        return getSqlSession().selectOne("com.pengshiyu.vo.user.mapper.selectOne", id);
    }

    public int delete(int id) {
        return getSqlSession().delete("com.pengshiyu.vo.user.mapper.delete", id);
    }

    public int update(User user) {
        return getSqlSession().update("com.pengshiyu.vo.user.mapper.update", user);
    }

    public int insert(User user) {
        return getSqlSession().insert("com.pengshiyu.vo.user.mapper.insert", user);
    }
}

Service
package com.pengshiyu.service;

import com.pengshiyu.vo.User;

import java.util.List;

public interface UserService {
    public List list();
    public User detail(int id);
    public int delete(int id);
    public int update(User user);
    public int insert(User user);
}

实现类

package com.pengshiyu.service.impl;

import com.pengshiyu.dao.UserDao;
import com.pengshiyu.service.UserService;
import com.pengshiyu.vo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service("userService")
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDao userDao;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    public List list() {
        return userDao.list();
    }

    public User detail(int id) {
        return userDao.detail(id);
    }

    public int delete(int id) {
        return userDao.delete(id);
    }

    public int update(User user) {
        return userDao.update(user);
    }

    public int insert(User user) {
        return userDao.insert(user);
    }
}

Controller
package com.pengshiyu.controller;

import com.pengshiyu.service.UserService;
import com.pengshiyu.vo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.io.IOException;
import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    @RequestMapping("/list")
    public String list(ModelMap modelMap) throws IOException {
        List list = userService.list();
        System.out.println(list);
        modelMap.addAttribute("list", list);
        return "/list.jsp";
    }

    @RequestMapping("/detail")
    public String detail(int id, ModelMap modelMap) throws IOException {
        User user = userService.detail(id);

        modelMap.addAttribute("user", user);
        return "/detail.jsp";
    }

    @RequestMapping("/update")
    public String update(int id, ModelMap modelMap) throws IOException {
        User user = userService.detail(id);

        modelMap.addAttribute("title", "修改");
        modelMap.addAttribute("user", user);

        return "/edit.jsp";
    }

    @RequestMapping("/add")
    public String add(ModelMap modelMap) throws IOException {
        User user = new User();

        modelMap.addAttribute("title", "添加");
        modelMap.addAttribute("user", user);
        return "/edit.jsp";
    }

    @RequestMapping("/delete")
    public String delete(int id) throws IOException {
        userService.delete(id);
        return "redirect:list";
    }

    @RequestMapping(value = "/edit", method = RequestMethod.POST)
    public String edit(User user, ModelMap modelMap) throws IOException {


        if (user.getId() != 0) {
            userService.update(user);
        } else {
            userService.insert(user);
        }

        return "redirect:detail?id=" + user.getId();
    }
}
拦截器

此项目中并没有配置生效

package com.pengshiyu.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

public class MyInterceptor implements HandlerInterceptor {


    private List allowedUrls;

    // 在请求处理的方法执行之前执行,
    // 返回true执行下一个拦截器,
    // 返回false不执行下一个拦截器
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("preHandle");
        // 解决中文打印乱码输出
        response.setContentType("text/html;charset=utf-8");

        // 判断session
        Object user = request.getSession().getAttribute("user");
        if(user != null){
            return true;
        }

        // 判断放行路径
        String url = request.getRequestURL().toString();
        System.out.println(url);

        for(String temp: allowedUrls){
            if(url.endsWith(temp)){
                return true;
            }
        }

        // 如果没有登录就重定向到登录页面
        response.sendRedirect("/login.do");

        return false;
    }

    // 在处理方法执行之后执行
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle");
    }

    // 在DispatcherServlet 之后执行 清理工作
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion");
    }

    public List getAllowedUrls() {
        return allowedUrls;
    }

    public void setAllowedUrls(List allowedUrls) {
        this.allowedUrls = allowedUrls;
    }
}

页面

list.jsp

 

list


  添加


  
    编号
    姓名
    密码
    详细
    删除
  

  
    
      ${item.id}
      ${item.name}
      ${item.password}
      详细
      修改
      删除
    
  


detail.jsp

 

detail

返回列表

编辑

id: ${user.id}

name: ${user.name}

password: ${user.password}

edit.jsp

 

${title}

返回列表

name

password

项目代码 https://gitee.com/mouday/spring-springmvc-mybatis-demo

关注
打赏
1665367115
查看更多评论
立即登录/注册

微信扫码登录

0.1485s