使用Maven+SSM框架,实现简单的增删改查。

Spring介绍:

spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而, Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java 应用都可以从 Spring 中受益。 简单来说, Spring 是一个轻量级的控制反转(IoC )和面向切面( AOP )的容器框架。

SpringMVC介绍

Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在Spring Web Flow 里面。 Spring MVC  分离了 控制器 、模型 对象 、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

MyBatis介绍

  MyBatis  本是 apache 的一个开源项目 iBatis , 2010 年这个项目由apache software foundation  迁移到了 google code ,并且改名为 MyBatis  。MyBatis 是一个基于 Java 的 持久层 框架。 iBATIS 提供的 持久层 框架包括SQL Maps 和 Data Access Objects ( DAO ) MyBatis  消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。 MyBatis  使用简单的  XML 或注解用于配置和原始映射,将接口和  Java  的 POJOs ( Plain Old Java Objects ,普通的  Java 对象)映射成数据库中的记录。

首先不是maven架构整合的  SSM 框架

 

创建数据库、表db_zsl   t_user   user_t【最下面有sql语句】

1.项目整体结构

2.添加相关jar 包

3.项目整体结构出来了

4.创建model【User】

 

  1. package com.lyt.model;  
  2.   
  3. /**  
  4.  * 用户  
  5.  * @author 
  6.  *  
  7.  */    
  8. public class User {    
  9.     
  10.     private int id;    
  11.     private String userName;   
  12.     private String age;    
  13.       
  14.     @Override  
  15.     public String toString() {  
  16.         return "User [id=" + id + ", age=" + age + ", userName=" + userName  
  17.                 + "]";  
  18.     }  
  19.     public User(){    
  20.         super();    
  21.     }    
  22.     public int getId() {    
  23.         return id;    
  24.     }    
  25.     public void setId(int id) {    
  26.         this.id = id;    
  27.     }    
  28.     public String getAge() {    
  29.         return age;    
  30.     }    
  31.     public void setAge(String age) {    
  32.         this.age = age;    
  33.     }    
  34.     public String getUserName() {    
  35.         return userName;    
  36.     }    
  37.     public void setUserName(String userName) {    
  38.         this.userName = userName;    
  39.     }    
  40.     public User(int id, String age, String userName) {    
  41.         super();    
  42.         this.id = id;    
  43.         this.age = age;    
  44.         this.userName = userName;    
  45.     }    
  46. }    

5.创建DAO接口【在mybatis中 mapper就相当于dao】

 

 

  1. package com.lyt.mapper;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.lyt.model.User;  
  6. /** 
  7.  * 做为 DAO的接口 
  8.  * @author 
  9.  */  
  10. public interface UserMapper {    
  11.     void save(User user);    
  12.     boolean update(User user);    
  13.     boolean delete(int id);    
  14.     User findById(int id);    
  15.     List findAll();    
  16. }    
  17. 5.创建DAO接口【在mybatis中 mapper就相当于dao】

     

     

    1. package com.lyt.mapper;  
    2.   
    3. import java.util.List;  
    4.   
    5. import com.lyt.model.User;  
    6. /** 
    7.  * 做为 DAO的接口 
    8.  * @author */  
    9. public interface UserMapper {    
    10.     void save(User user);    
    11.     boolean update(User user);    
    12.     boolean delete(int id);    
    13.     User findById(int id);    
    14.     List findAll();    
    15. }    

    6.实现dao接口【mybatis中就是UserMapper.xml文件】
    1.   
    2. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">    
    3.     
    4.    
    5.    
    6.       
    7.         insert into t_user(user_name,user_age) values(#{userName},#{age})  
    8.       
    9.       
    10.         
    11.         update t_user set user_name=#{userName},user_age=#{age} where user_id=#{id}    
    12.        
    13.       
    14.         
    15.         delete from t_user where user_id=#{id}    
    16.         
    17.         
    18.            
    19.         
    20.         select user_id id,user_name userName,user_age age from t_user where user_id=#{id}    
    21.         
    22.         
    23.         
    24.         select user_id id,user_name userName,user_age age from t_user    
    25.        
    26.       
    27.    

    这里对这个xml文件作几点说明: 
    1、namespace必须与对应的接口全类名一致。 
    2、id必须与对应接口的某个对应的方法名一致即必须要和UserMapper.java接口中的方法同名。 

     

     

    ---------------------------------------------------

    7.mybatis与Spring整合【spring-common.xml】放在src的根目录下

     对于Mybatis和Spring的整合是这篇博文的重点,需要配置的内容在下面有详细的解释。

     

    1.   
    2.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
    3.     xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"  
    4.     xsi:schemaLocation="  
    5.         http://www.springframework.org/schema/beans  
    6.         http://www.springframework.org/schema/beans/spring-beans-4.0.xsd  
    7.         http://www.springframework.org/schema/context  
    8.         http://www.springframework.org/schema/context/spring-context-4.0.xsd  
    9.         http://www.springframework.org/schema/tx  
    10.         http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">  
    11.   
    12.   
    13.       
    14.     
    15.         class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
    16.           
    17.           
    18.           
    19.           
    20.       
    21.   
    22.       
    23.       
    24.           
    25.            
    26.       
    27.   
    28.       
    29.       
    30.           
    31.           
    32.       
    33.   
    34.       
    35.     
    36.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
    37.           
    38.       
    39.   
    40.       
    41.       
    42.   
    43.   
    44. 8.mybatis配置文件【mybatis-config.xml】放在src目录下

       

       

      1.   
      2. "http://mybatis.org/dtd/mybatis-3-config.dtd">  
      3.   
      4.   
      5.       
      6.       
      7.           
      8.       
      9.       
      10.       
      11.       
      12.           
      13.       
      14.   
      15.    
      16. 配置log4j.properties

         

        1. ### set log levels ###   
        2. log4j.rootLogger = info , Console , D  
        3. #Console  
        4. log4j.appender.Console=org.apache.log4j.ConsoleAppender  
        5. log4j.appender.Console.layout=org.apache.log4j.PatternLayout  
        6. log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n  
        7. log4j.logger.java.sql.ResultSet=INFO  
        8. log4j.logger.org.apache=INFO  
        9. log4j.logger.java.sql.Connection=INFO  
        10. log4j.logger.java.sql.Statement=INFO  
        11. log4j.logger.java.sql.PreparedStatement=INFO  
        12. #output2file  
        13. log4j.appender.D = org.apache.log4j.DailyRollingFileAppender   
        14. log4j.appender.D.File = D\:/logs/log.log   
        15. log4j.appender.D.Append = true   
        16. log4j.appender.D.Threshold = INFO \#\# \u00E8\u00BE\u0093\u00E5\u0087\u00BAinfo\u00E7\u00BA\u00A7\u00E5\u0088\u00AB\u00E4\u00BB\u00A5\u00E4\u00B8\u008A\u00E7\u009A\u0084\u00E6\u0097\u00A5\u00E5\u00BF\u0097   
        17. log4j.appender.D.layout = org.apache.log4j.PatternLayout   
        18. log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%n   
        19.    
         

         

        10.整合Springmvc

        配置【spring-mvc.xml】放在src根目录下

         

        1.   
        2.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
        3.     xmlns:mvc="http://www.springframework.org/schema/mvc"  
        4.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
        5.     http://www.springframework.org/schema/beans/spring-beans.xsd  
        6.     http://www.springframework.org/schema/context  
        7.     http://www.springframework.org/schema/context/spring-context-4.0.xsd  
        8.     http://www.springframework.org/schema/mvc  
        9.     http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  
        10.   
        11.       
        12.       
        13.       
        14.   
        15.       
        16.       
        17.   
        18.       
        19.       
        20.       
        21.       
        22.       
        23.   
        24.   
        25.   
        26.       
        27.     
        28.         class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
        29.           
        30.           
        31.           
        32.       
        33.   
        34. 11.配置web.xml

           

           

          1.   
          2.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
          3.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
          4.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
          5.   
          6.       
          7.       
          8.         org.springframework.web.context.ContextLoaderListener  
          9.       
          10.   
          11.       
          12.       
          13.         contextConfigLocation  
          14.           
          15.         classpath:spring-common.xml,classpath:spring-mvc.xml  
          16.           
          17.       
          18.   
          19.       
          20.       
          21.         springMVC  
          22.         org.springframework.web.servlet.DispatcherServlet  
          23.             
          24.           
          25.             contextConfigLocation  
          26.             classpath:spring-common.xml,classpath:spring-mvc.xml  
          27.           
          28.             
          29.         1  
          30.       
          31.   
          32.       
          33.       
          34.         springMVC  
          35.           
          36.         /  
          37.       
          38.   
          39.       
          40.       
          41.         org.springframework.web.util.IntrospectorCleanupListener  
          42.       
          43.   
          44.       
          45.       
          46.         encodingFilter  
          47.         org.springframework.web.filter.CharacterEncodingFilter  
          48.           
          49.             encoding  
          50.             UTF-8  
          51.           
          52.           
          53.             forceEncoding  
          54.             true  
          55.           
          56.       
          57.       
          58.       
          59.         encodingFilter  
          60.         /*  
          61.       
          62.   
          63.       
          64.         index.jsp  
          65.       
          66.   
          67. 12.建立service以及service实现【UserService.java】

             

             

            1. package com.lyt.service;  
            2.   
            3. import java.util.List;  
            4.   
            5. import com.lyt.model.User;  
            6.   
            7. public interface UserService {  
            8.     void save(User user);  
            9.     boolean update(User user);  
            10.     boolean delete(int id);  
            11.     User findById(int id);  
            12.     List findAll();  
            13. }  
             

             

            【UserServiceImpl.java】

             

            1. package com.lyt.service.impl;  
            2.   
            3. import java.util.List;  
            4.   
            5. import javax.annotation.Resource;  
            6.   
            7. import org.springframework.stereotype.Service;  
            8. import org.springframework.transaction.annotation.Transactional;  
            9.   
            10. import com.lyt.mapper.UserMapper;  
            11. import com.lyt.model.User;  
            12. import com.lyt.service.UserService;  
            13.  
            14. @Service  
            15. @Transactional  
            16. // 此处不再进行创建SqlSession和提交事务,都已交由spring去管理了。  
            17. public class UserServiceImpl implements UserService {  
            18.  
            19.     @Resource  
            20.     private UserMapper mapper;  
            21.   
            22.     /**  
            23.      * 根据  id  删除 数据  
            24.      */  
            25.     public boolean delete(int id) {  
            26.         return mapper.delete(id);  
            27.     }  
            28.     /**  
            29.      * 查询User的全部数据  
            30.      */  
            31.     public List findAll() {  
            32.         List findAllList = mapper.findAll();  
            33.         return findAllList;  
            34.     }  
            35.     /**  
            36.      * 根据 id 查询 对应数据  
            37.      */  
            38.     public User findById(int id) {  
            39.         User user = mapper.findById(id);  
            40.         return user;  
            41.     }  
            42.     /**  
            43.      * 新增数据  
            44.      */  
            45.     public void save(User user) {  
            46.         mapper.save(user);  
            47.     }  
            48.     /**  
            49.      * 根据 id 修改对应数据  
            50.      */  
            51.     public boolean update(User user) {  
            52.         return mapper.update(user);  
            53.     }  
            54.   
            55. }  

            13.建立Controller【UserController.java】

             

            1. package com.lyt.controller;  
            2.   
            3. import java.io.IOException;  
            4. import java.io.PrintWriter;  
            5. import java.util.List;  
            6.   
            7. import javax.servlet.http.HttpServletRequest;  
            8. import javax.servlet.http.HttpServletResponse;  
            9.   
            10. import org.springframework.beans.factory.annotation.Autowired;  
            11. import org.springframework.stereotype.Controller;  
            12. import org.springframework.ui.Model;  
            13. import org.springframework.web.bind.annotation.RequestMapping;  
            14.   
            15. import com.lyt.model.User;  
            16. import com.lyt.service.UserService;  
            17.  
            18. @Controller  
            19. @RequestMapping("/user")  
            20. public class UserController {  
            21.     @Autowired  
            22.     private UserService userService;  
            23.     /**  
            24.      * 获取所有用户列表  
            25.      * @param request  
            26.      * @return  
            27.      */  
            28.     @RequestMapping("/getAllUser")  
            29.     public String getAllUser(HttpServletRequest request,Model model){  
            30.         List user = userService.findAll();  
            31.         model.addAttribute("userList", user);  
            32.         request.setAttribute("userList", user);  
            33.         return "/allUser";  
            34.     }  
            35.     /**  
            36.      * 跳转到添加用户界面  
            37.      * @param request  
            38.      * @return  
            39.      */  
            40.     @RequestMapping("/toAddUser")  
            41.     public String toAddUser(){  
            42.         return "/addUser";  
            43.     }  
            44.     /**  
            45.      * 添加用户并重定向  
            46.      * @param user  
            47.      * @param request  
            48.      * @return  
            49.      */  
            50.     @RequestMapping("/addUser")  
            51.     public String addUser(User user,Model model){  
            52.         userService.save(user);  
            53.         return "redirect:/user/getAllUser";  
            54.     }  
            55.     /**  
            56.      *编辑用户  
            57.      * @param user  
            58.      * @param request  
            59.      * @return  
            60.      */  
            61.     @RequestMapping("/updateUser")  
            62.     public String updateUser(User user,HttpServletRequest request,Model model){  
            63.         if(userService.update(user)){  
            64.             user = userService.findById(user.getId());  
            65.             request.setAttribute("user", user);  
            66.             model.addAttribute("user", user);  
            67.             return "redirect:/user/getAllUser";  
            68.         }else{  
            69.             return "/error";  
            70.         }  
            71.     }  
            72.     /**  
            73.      * 根据id查询单个用户  
            74.      * @param id  
            75.      * @param request  
            76.      * @return  
            77.      */  
            78.     @RequestMapping("/getUser")  
            79.     public String getUser(int id,HttpServletRequest request,Model model){  
            80.         request.setAttribute("user", userService.findById(id));  
            81.         model.addAttribute("user", userService.findById(id));  
            82.         return "/editUser";  
            83.     }  
            84.     /**  
            85.      * 删除用户  
            86.      * @param id  
            87.      * @param request  
            88.      * @param response  
            89.      */  
            90.     @RequestMapping("/delUser")  
            91.     public void delUser(int id,HttpServletRequest request,HttpServletResponse response){  
            92.         String result = "{\"result\":\"error\"}";  
            93.         if(userService.delete(id)){  
            94.             result = "{\"result\":\"success\"}";  
            95.         }  
            96.         response.setContentType("application/json");  
            97.         try {  
            98.             PrintWriter out = response.getWriter();  
            99.             out.write(result);  
            100.         } catch (IOException e) {  
            101.             e.printStackTrace();  
            102.         }  
            103.     }  
            104. }  
            105.   


             

             

             

            至此 大部分架构以及代码已经搭建完成

            我们来做前台页面--修改index.jsp

             

            1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
            2. <%  
            3.     String path = request.getContextPath();  
            4.     String basePath = request.getScheme() + "://"  
            5.             + request.getServerName() + ":" + request.getServerPort()  
            6.             + path + "/";  
            7. %>  
            8.   
            9.   
            10.   
            11.   
            12. ">  
            13. 首页  
            14.   
            15.   
            16.     
                
            17.         user/getAllUser">进入用户管理页  
            18.       
            19.   
            20.   


            在 WEB-INF 下新建jsp文件夹【里面新建以下文件】【addUser.jsp】【allUser.jsp】【editUser.jsp】

             

            addUser.jsp内容

             

            1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
            2. <%  
            3. String path = request.getContextPath();  
            4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
            5. %>  
            6. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>    
            7.   
            8.   
            9.     
            10.     ">  
            11.       
            12.     添加用户  
            13.       
            14.       
            15.     function addUser(){  
            16.         var form = document.forms[0];  
            17.         form.action = "<%=basePath%>user/addUser";  
            18.         form.method="post";  
            19.         form.submit();  
            20.     }  
            21.   
            22.   
            23.     
            24.     
            25.     
            26.     

              <%=path%>添加用户<%=basePath%>

                
            27.       
            28.         姓名:  
            29.         年龄:  
            30.           
            31.       
            32.     
            33.   


            allUser.jsp

             

             

            1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
            2. <%  
            3. String path = request.getContextPath();  
            4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
            5. %>  
            6. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>    
            7.   
            8.   
            9.     
            10.     ">  
            11.       
            12.     用户列表  
            13.       
            14.       
            15.     function del(id){  
            16.         $.get("<%=basePath%>user/delUser?id=" + id,function(data){  
            17.             if("success" == data.result){  
            18.                 alert("删除成功");  
            19.                 window.location.reload();  
            20.             }else{  
            21.                 alert("删除失败");  
            22.             }  
            23.         });  
            24.     }  
            25.   
            26.     
            27.     
            28.     
            29.     
              user/toAddUser">添加用户
                
            30.       
            31.           
            32.               
            33.                 姓名  
            34.                 年龄  
            35.                 操作  
            36.               
            37.               
            38.                   
            39.                       
            40.                         ${user.userName }  
            41.                         ${user.age }  
            42.                           
            43.                             user/getUser?id=${user.id}">编辑  
            44.                             删除  
            45.                           
            46.                                    
            47.                   
            48.               
            49.           
            50.       
            51.     
            52.   


            editUser.jsp

             

             

            1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
            2. <%  
            3. String path = request.getContextPath();  
            4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
            5. %>  
            6. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>    
            7.   
            8.   
            9.     
            10.     ">  
            11.       
            12.     编辑用户  
            13.       
            14.       
            15.     function updateUser(){  
            16.         var form = document.forms[0];  
            17.         form.action = "<%=basePath%>user/updateUser";  
            18.         form.method="post";  
            19.         form.submit();  
            20.     }  
            21.   
            22.   
            23.     
            24.     
            25.     
            26.     

              添加用户

                
            27.       
            28.           
            29.         姓名:  
            30.         年龄:  
            31.           
            32.       
            33.     
            34.     
            35.   


            到此 简单的整合SSM 【基本的操作内容已经完成】

             

            让你们看下界面运行,地址:http://localhost:8088/SpringMVC_Spring_mybatis/

            首页:

            点击编辑进去:

            点击添加进去:

            由于我在网络问题  图片暂时没有上传上去。【现在我吧图片都正上去了,希望多多支持】

            对应的数据库 表

            1. /*  
            2. Navicat MySQL Data Transfer  
            3.   
            4. Source Server         : localhost  
            5. Source Server Version : 50515  
            6. Source Host           : localhost:3306  
            7. Source Database       : db_zsl  
            8.   
            9. Target Server Type    : MYSQL  
            10. Target Server Version : 50515  
            11. File Encoding         : 65001  
            12.   
            13. Date: 2016-05-16 16:10:51  
            14. */  
            15.   
            16. SET FOREIGN_KEY_CHECKS=0;  
            17. -- ----------------------------  
            18. -- Table structure for `t_user`  
            19. -- ----------------------------  
            20. DROP TABLE IF EXISTS `t_user`;  
            21. CREATE TABLE `t_user` (  
            22.   `user_id` int(11) NOT NULL AUTO_INCREMENT,  
            23.   `user_name` varchar(20) NOT NULL,  
            24.   `user_age` varchar(20) NOT NULL,  
            25.   PRIMARY KEY (`user_id`)  
            26. ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;  
            27.   
            28. -- ----------------------------  
            29. -- Records of t_user  
            30. -- ----------------------------  
            31. INSERT INTO `t_user` VALUES ('2', '朱佳鹏', '25');  
            32. INSERT INTO `t_user` VALUES ('3', '傻狍子', '150');  
            33. INSERT INTO `t_user` VALUES ('4', 'jiuqiyuliang', '23');  
            34. INSERT INTO `t_user` VALUES ('5', 'jiuqiyuliang', '23');  
            35. INSERT INTO `t_user` VALUES ('6', 'jiuqiyuliang', '23');  
            36. INSERT INTO `t_user` VALUES ('7', 'jiuqiyuliang', '23');  
            37. INSERT INTO `t_user` VALUES ('9', 'liyintao123', '23123');  
            38.   
            39. -- ----------------------------  
            40. -- Table structure for `user_t`  
            41. -- ----------------------------  
            42. DROP TABLE IF EXISTS `user_t`;  
            43. CREATE TABLE `user_t` (  
            44.   `id` int(11) NOT NULL AUTO_INCREMENT,  
            45.   `user_name` varchar(40) NOT NULL,  
            46.   `password` varchar(255) NOT NULL,  
            47.   `age` int(4) NOT NULL,  
            48.   PRIMARY KEY (`id`)  
            49. ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;  
            50.   
            51. -- ----------------------------  
            52. -- Records of user_t  
            53. -- ----------------------------  
            54. INSERT INTO `user_t` VALUES ('1', '测试', 'sfasgfaf', '24');  

你可能感兴趣的:(javaEE框架)