ssm整合的增删改查

maven+ssm+bootstrap实现简单的增删改查 
学习完ssm框架以后 做的第一个完整的增删改查 
是在博客园找到的一个小demo,我自己稍微修改了一下,加入了bootstrap和mybatis的分页插件,有些地方并没有处理好,等以后水平进步了在继续改进一下吧

工程结构 
这里写图片描述

pom文件


  4.0.0
  com.summer
  ssmdemo
  0.0.1-SNAPSHOT
  war

  
        
        
            org.springframework
            spring-webmvc
            4.3.7.RELEASE
        

        
        
            org.springframework
            spring-jdbc
            4.3.7.RELEASE
        

        
        
            org.springframework
            spring-aspects
            4.3.7.RELEASE
        

        
        
            org.mybatis
            mybatis
            3.4.2
        

        
        
            org.mybatis
            mybatis-spring
            1.3.1
        
        
        
        c3p0
        c3p0
        0.9.1.2
        

        
            mysql
            mysql-connector-java
            5.1.40
        

        
        
            javax.servlet
            jstl
            1.2
        
            
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
            
        
            junit
            junit
            4.12
            test
        

        
        
            org.springframework
            spring-test
            4.3.7.RELEASE
            test
        

        
        
        
            com.github.pagehelper
            pagehelper
            4.1.5
        
        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93

jar包一览 
这里写图片描述

1:实体类:

package com.ssm.model;
/**
 * 描述:用户实体类
* 创建人:
* 时间:2017年7月10日下午6:11:17
* @version */ public class User { //主键 private int id; //用户名 private String username; //年龄 private String age; public User() { super(); } public User(int id, String username, String age) { super(); this.id = id; this.username = username; this.age = age; } 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 getAge() { return age; } public void setAge(String age) { this.age = age; } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
2:*创建DAO接口【在mybatis中 mapper就相当于dao】*
package com.ssm.mapper;

import java.util.List;

import com.ssm.model.User;
/**
 * 描述:用户mapper接口
* 创建人:
* 时间:2017年7月10日下午6:14:22
* @version */ public interface UserMapper { void saveUser(User user); boolean updateUser(User user); boolean deleteUser(int id); User findUserById(int id); List findAll(); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
*3:实现dao接口【mybatis中就是UserMapper.xml文件】*
  
    
    
   

      
      
         insert into t_user(user_name,user_age) values (#{username},#{age})
      

      
      
        update t_user set user_name=#{username},user_age=#{age} where user_id=#{id}
      

      
      
          delete from t_user where user_id=#{id}    
      

      
      

      
         
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
4:spring配置文件



        
        
        

        
        
        
            
            
            
            
        

        
        
        
            
            
            
        

        
        
            
            
            
        

        
        
            
        

        
        
            
            
        

        
        
            
                
                
                
                
            
        

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
5:mybatis配置文件




    
    
        
    

    
    
        
    

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
6:log4j.properties
### set log levels ###  
log4j.rootLogger = INFO , console , debug , error  

### console ###  
log4j.appender.console = org.apache.log4j.ConsoleAppender  
log4j.appender.console.Target = System.out  
log4j.appender.console.layout = org.apache.log4j.PatternLayout  
log4j.appender.console.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [%p]-[%c] %m%n  

### log file ###  
log4j.appender.debug = org.apache.log4j.DailyRollingFileAppender  
log4j.appender.debug.File = ../logs/springmvc-demo.log  
log4j.appender.debug.Append = true  
log4j.appender.debug.Threshold = INFO  
log4j.appender.debug.layout = org.apache.log4j.PatternLayout  
log4j.appender.debug.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [%p]-[%c] %m%n  

### exception ###  
log4j.appender.error = org.apache.log4j.DailyRollingFileAppender  
log4j.appender.error.File = ../logs/springmvc-demo_error.log  
log4j.appender.error.Append = true  
log4j.appender.error.Threshold = ERROR  
log4j.appender.error.layout = org.apache.log4j.PatternLayout  
log4j.appender.error.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [%p]-[%c] %m%n  


###\u9700\u8981\u58F0\u660E\uFF0C\u7136\u540E\u4E0B\u65B9\u624D\u53EF\u4EE5\u4F7Fdruid sql\u8F93\u51FA\uFF0C\u5426\u5219\u4F1A\u629B\u51FAlog4j.error.key not found  
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.Target=System.out  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %l %c%n%p: %m%n  

### druid sql ###  
log4j.logger.druid.sql=warn,stdout  
log4j.logger.druid.sql.DataSource=warn,stdout  
log4j.logger.druid.sql.Connection=warn,stdout  
log4j.logger.druid.sql.Statement=warn,stdout  
log4j.logger.druid.sql.ResultSet=warn,stdout  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
7:springmvc.xml springmvc的配置文件


        
        

        
        
        
        
        

        
       
        
       
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
8:jdbc.properties

jdbc.url = jdbc\:mysql\:///ssm
jdbc.driver = com.mysql.jdbc.Driver
jdbc.username= root
jdbc.password= root
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
9:web.xml



  ssmdemo
  
    index.jsp
  

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

   
  
    dispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
     
      contextConfigLocation
      classpath:springmvc.xml
    
    1
  
  
  
    dispatcherServlet
    /
  

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


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
10:建立service以及service实现【UserService.java】
package com.ssm.service;

import java.util.List;

import com.ssm.model.User;
/**
 * 描述:用户service
* 创建人:
* 时间:2017年7月11日下午7:06:59
* @version */ public interface UserService { void saveUser(User user); boolean updateUser(User user); boolean deleteUser(int id); User findUserById(int id); List findAll(); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
service实现类
package com.ssm.service.impl;

import java.util.List;

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

import com.ssm.mapper.UserMapper;
import com.ssm.model.User;
import com.ssm.service.UserService;
@Service
/**
 * 描述:用户service实现类
* 创建人:
* 时间:2017年7月10日下午7:11:57
* @version */ public class UserServiceImpl implements UserService { /** * 注入UserMapper接口 */ @Autowired private UserMapper userMapper; /** * 新增用户 */ @Override public void saveUser(User user) { userMapper.saveUser(user); } /** * 更新用户 */ @Override public boolean updateUser(User user) { return userMapper.updateUser(user); } /** * 根据Id删除用户 */ @Override public boolean deleteUser(int id) { return userMapper.deleteUser(id); } /** * 根据id查找用户 */ @Override public User findUserById(int id) { User user = userMapper.findUserById(id); return user; } /** * 查询所有用户 */ @Override public List findAll() { List allUser = userMapper.findAll(); return allUser; } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
11:建立controller
package com.ssm.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ssm.model.User;
import com.ssm.service.UserService;

@Controller
@RequestMapping("/user")
/**
 * 描述:用户controller
* 创建人:
* 时间:2017年7月10日下午7:15:58
* @version */ public class UserController { @Autowired private UserService userService; /** *跳转到添加用户界面 */ @RequestMapping("toAddUser") public String toAddUser(){ return "addUser"; } /** * 添加用户并重定向 * @param model * @param user * @return */ @RequestMapping("addUser") public String addUser(Model model,User user){ if(user != null){ userService.saveUser(user); } return "redirect:/user/userInfo"; } /** * 修改用户 * @param model * @param request * @param user * @return */ @RequestMapping("updateUser") public String UpdateUser(Model model,User user){ if(userService.updateUser(user)){ user = userService.findUserById(user.getId()); model.addAttribute("user", user); return "redirect:/user/userInfo"; } return "/error"; } /** * 查询所有用户 * @param request * @param model * @return */ @RequestMapping("getAllUser") public String getAllUser(Model model){ List user = userService.findAll(); model.addAttribute("userList",user); return "allUser"; } /** * 查询单个用户 * @param id * @param request * @param model * @return */ @RequestMapping("/getUser") public String getUser(int id,Model model){ model.addAttribute("user", userService.findUserById(id)); return "editUser"; } /** * 根据id删除用户 * @param id * @param request * @param response */ @RequestMapping("/delUser") public String deleteUser(int id,Model model){ model.addAttribute("user", userService.deleteUser(id)); return "redirect:/user/userInfo"; } /** * 分页查询用户信息 * @param pn 默认从第一页开始 请求参数 * @param model * @return */ @RequestMapping("userInfo") public String getUsers(@RequestParam(value="pn",defaultValue="1")Integer pn,Model model){ //从第一条开始 每页查询五条数据 PageHelper.startPage(pn, 5); List users = userService.findAll(); //将用户信息放入PageInfo对象里 PageInfo page = new PageInfo(users,5); model.addAttribute("pageInfo", page); return "allUser"; } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123

好啦 后端部分至此基本结束 
下面就是前台页面

由于除了首页 其他页面都是放在WEB-INF下 所以我们通过首页来跳转一下
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    pageContext.setAttribute("path", request.getContextPath());
%>



首页



    

进入用户管理页

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

这里写图片描述

点击这里可以跳转到用户列表界面 
在页面引入bootstrap需要的文件 他提供的按钮样式 列表样式 分页导航等很方便,省的我们在去写前端的东西

用户列表界面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
    pageContext.setAttribute("path", request.getContextPath());
%>




用户列表







    

用户管理

id 用户名 年龄 操作
${user.id} ${user.username } ${user.age } 编辑 删除

当前第:${pageInfo.pageNum}页,总共:${pageInfo.pages}页,总共:${pageInfo.total}条记录
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113

通过首页 就跳到了这里来 然后进行增删改查 
在引入mybatis分页插件的时候5.0 版本会出现找不到sqlSessionFactory的异常 4.2版本会报转换异常 郁闷 所以这里 如果你们也遇到了同样的问题 可以注意一下 
这里写图片描述

用户添加界面
为了省事 没必要引入bootstrap了 
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%  
    String path = request.getContextPath();  
    String basePath = request.getScheme() + "://"  
            + request.getServerName() + ":" + request.getServerPort()  
            + path + "/";  
%>  

添加用户


    

添加用户

姓名:
年龄:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

这里写图片描述

修改界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%  
    String path = request.getContextPath();  
    String basePath = request.getScheme() + "://"  
            + request.getServerName() + ":" + request.getServerPort()  
            + path + "/";  
%>  

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>


编辑用户





    

添加用户

姓名: 年龄:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

这里写图片描述

当然 删除点击一下就直接删除了,然后会回显到用户列表页面

最后就是数据库的建表语句 很简单了 我这里就贴上来 万一有小伙伴要照着我这个来一遍 可以直接复制粘贴过去就好了

DROP TABLE IF EXISTS `t_user`;  
CREATE TABLE `t_user` (  
  `user_id` int(11) NOT NULL AUTO_INCREMENT,  
  `user_name` varchar(20) NOT NULL,  
  `user_age` varchar(20) NOT NULL,  
  PRIMARY KEY (`user_id`)  
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这里写图片描述

我的maven自己另外设置了一下,有的时候maven工程会毛病多多,老是出现找不到jar包的问题 
找到c盘这里来 
这里写图片描述

在进去 
这里写图片描述


在setting.xml中我配置的是阿里云的中央仓库 跟着视频来的
  
     
         alimaven
         aliyun maven
         http://maven.aliyun.com/nexus/content/groups/public/
         central
     
  


    
        jdk1.7
        
            true
            1.7
        
        
            1.7
            1.7
            1.7
        
    

你可能感兴趣的:(Java,Web)