ssm菜鸟整合案例(内含增删改查)

maven+ssm+bootstrap实现简单的增删改查 

工程结构 

è¿éåå¾çæè¿°

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
        
        

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; } }

 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(); }

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}    
      

      
      

      
         
   

4:spring配置文件




        
        
        

        
        
        
            
            
            
            
        

        
        
        
            
            
            
        

        
        
            
            
            
        

        
        
            
        

        
        
            
            
        

        
        
            
                
                
                
                
            
        

5:mybatis配置文件





    
    
        
    

    
    
        
    

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  

7:springmvc.xml springmvc的配置文件



        
        

        
        
        
        
        

        
       
        
       
 

 

8:jdbc.properties

这个是数据库连接,把你对应的mysql的账号和密码写在对应的地方,没有密码就把对应密码的root删除,空白就好了

jdbc.url = jdbc\:mysql\:///ssm
jdbc.driver = com.mysql.jdbc.Driver
jdbc.username= root
jdbc.password= root

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
    /*
  


 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(); }

10.1  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; } }

 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"; } }

 后端差不多是完了,接下来是前段简单的页面

(由于除了首页 其他页面都是放在WEB-INF下 所以我们通过首页来跳转一下)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    pageContext.setAttribute("path", request.getContextPath());
%>



首页



    

进入用户管理页

 è¿éåå¾çæè¿°

点击这里可以跳转到用户列表界面 
在页面引入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}条记录

通过首页 就跳到了这里来 然后进行增删改查 
在引入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 + "/";  
%>  

添加用户


    

添加用户

姓名:
年龄:

è¿éåå¾çæè¿°

用户修改界面 

<%@ 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"%>


编辑用户





    

添加用户

姓名: 年龄:

 è¿éåå¾çæè¿°

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

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

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;  

è¿éåå¾çæè¿°

文章转载自:https://blog.csdn.net/qq_30500113/article/details/74995037  谢谢支持

资源源代码地址  https://download.csdn.net/download/weixin_41664173/10594852

你可能感兴趣的:(基础)