1. 程式人生 > >ssm實現簡單的增刪改查demo

ssm實現簡單的增刪改查demo

訂閱

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_product   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中
 

package com.lyt.mapper;    import java.util.List;    import com.lyt.model.User;  /**  * 做為 DAO的介面  * @author  */  public interface UserMapper {        void save(User user);        boolean update(User user);        boolean delete(int id);        User findById(int id);        List<User> findAll();    }    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<User> findAll();    
  15. }    


6.實現dao介面【mybatis中就是UserMapper.xml檔案】

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"     
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">    
  4. <!--     
  5.     namespace:必須與對應的介面全類名一致  UserMapper.java  
  6.     id :必須與對應介面的某個對應的方法名一致即必須要和UserMapper.java介面中的方法同名。  
  7.  -->    
  8.  <mapper namespace="com.lyt.mapper.UserMapper">  
  9.    
  10.     <insert id="save" parameterType="User">  
  11.         insert into t_user(user_name,user_age) values(#{userName},#{age})  
  12.     </insert>  
  13.       
  14.     <update id="update" parameterType="User">    
  15.         update t_user set user_name=#{userName},user_age=#{age} where user_id=#{id}    
  16.     </update>   
  17.       
  18.     <delete id="delete" parameterType="int">    
  19.         delete from t_user where user_id=#{id}    
  20.     </delete>    
  21.         
  22.      <!-- mybsits_config中配置的alias類別名,也可直接配置resultType為類路徑 -->      
  23.     <select id="findById" parameterType="int" resultType="User">    
  24.         select user_id id,user_name userName,user_age age from t_user where user_id=#{id}    
  25.     </select>    
  26.         
  27.     <select id="findAll" resultType="User">    
  28.         select user_id id,user_name userName,user_age age from t_user    
  29.     </select>   
  30.       
  31.  </mapper>  


這裡對這個xml檔案作幾點說明: 
1、namespace必須與對應的介面全類名一致。 
2、id必須與對應介面的某個對應的方法名一致即必須要和UserMapper.java介面中的方法同名。 

 

 

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

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

 對於Mybatis和Spring的整合是這篇博文的重點,需要配置的內容在下面有詳細的解釋。

 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
  4.     xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"  
  5.     xsi:schemaLocation="  
  6.         http://www.springframework.org/schema/beans  
  7.         http://www.springframework.org/schema/beans/spring-beans-4.0.xsd  
  8.         http://www.springframework.org/schema/context  
  9.         http://www.springframework.org/schema/context/spring-context-4.0.xsd  
  10.         http://www.springframework.org/schema/tx  
  11.         http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">  
  12.   
  13. <!-- Mybatis和Spring的整合 -->  
  14.     <!-- 1. 資料來源 : DriverManagerDataSource -->  
  15.     <bean id="dataSource"  
  16.         class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
  17.         <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
  18.         <property name="url" value="jdbc:mysql://localhost:3306/db_zsl" />  
  19.         <property name="username" value="root" />  
  20.         <property name="password" value="root" />  
  21.     </bean>  
  22.   
  23.     <!--  
  24.         2. mybatis的SqlSession的工廠: SqlSessionFactoryBean dataSource:引用資料來源  
  25.   
  26.         MyBatis定義資料來源,同意載入配置  
  27.     -->  
  28.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  29.         <property name="dataSource" ref="dataSource"></property>  
  30.         <property name="configLocation" value="classpath:mybatis-config.xml" />   
  31.     </bean>  
  32.   
  33.     <!--  
  34.         3. mybatis自動掃描載入Sql對映檔案/介面 : MapperScannerConfigurer sqlSessionFactory  
  35.   
  36.         basePackage:指定sql對映檔案/介面所在的包(自動掃描)  
  37.     -->  
  38.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  39.         <property name="basePackage" value="com.lyt.mapper"></property>  
  40.         <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>  
  41.     </bean>  
  42.   
  43.     <!--  
  44.         4. 事務管理 : DataSourceTransactionManager dataSource:引用上面定義的資料來源  
  45.     -->  
  46.     <bean id="txManager"  
  47.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  48.         <property name="dataSource" ref="dataSource"></property>  
  49.     </bean>  
  50.   
  51.     <!-- 5. 使用宣告式事務  
  52.          transaction-manager:引用上面定義的事務管理器  
  53.      -->  
  54.     <tx:annotation-driven transaction-manager="txManager" />  
  55.   
  56. </beans>  
  57. 8.mybatis配置檔案【mybatis-config.xml】放在src目錄下

     

     

    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"   
    3. "http://mybatis.org/dtd/mybatis-3-config.dtd">  
    4. <configuration>  
    5.   
    6.     <!-- 實體類,簡稱 -設定別名 -->  
    7.     <typeAliases>  
    8.         <typeAlias alias="User" type="com.lyt.model.User" />  
    9.     </typeAliases>  
    10.     <!-- 實體介面對映資源 -->  
    11.     <!--  
    12.         說明:如果xxMapper.xml配置檔案放在和xxMapper.java統一目錄下,mappers也可以省略,因為org.mybatis.spring.mapper.MapperFactoryBean預設會去查詢與xxMapper.java相同目錄和名稱的xxMapper.xml  
    13.     -->  
    14.     <mappers>  
    15.         <mapper resource="com/lyt/mapper/userMapper.xml" />  
    16.     </mappers>  
    17.   
    18. </configuration>   
    19. 配置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. <?xml version="1.0" encoding="UTF-8"?>  
      2. <beans xmlns="http://www.springframework.org/schema/beans"  
      3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
      4.     xmlns:mvc="http://www.springframework.org/schema/mvc"  
      5.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
      6.     http://www.springframework.org/schema/beans/spring-beans.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/mvc  
      10.     http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  
      11.   
      12.     <!-- 註解掃描包 -->  
      13.     <context:component-scan base-package="com.lyt.controller" />  
      14.     <context:component-scan base-package="com.lyt.service" />  
      15.   
      16.     <!-- 開啟註解 -->  
      17.     <mvc:annotation-driven />  
      18.   
      19.     <!--  
      20.         配置靜態資源,直接對映到對應的資料夾,不被DispatcherServlet處理,3.04新增功能,需要重新設定spring-mvc-3.0.xsd  
      21.     -->  
      22.     <mvc:resources mapping="/img/**" location="/img/" />  
      23.     <mvc:resources mapping="/js/**" location="/js/" />  
      24.     <mvc:resources mapping="/css/**" location="/css/" />  
      25.     <mvc:resources mapping="/html/**" location="/html/" />  
      26.   
      27.   
      28.   
      29.     <!-- 定義跳轉的檔案的前後綴 ,檢視模式配置-->  
      30.     <bean id="viewResolver"  
      31.         class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
      32.         <!-- 這裡的配置我的理解是自動給後面action的方法return的字串加上字首和字尾,變成一個 可用的url地址 -->  
      33.         <property name="prefix" value="/WEB-INF/jsp/" />  
      34.         <property name="suffix" value=".jsp" />  
      35.     </bean>  
      36. </beans>  
      37. 11.配置web.xml

         

         

        1. <?xml version="1.0" encoding="UTF-8"?>  
        2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
        3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
        5.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
        6.   
        7.     <!-- 載入Spring容器配置 -->  
        8.     <listener>  
        9.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
        10.     </listener>  
        11.   
        12.     <!-- 設定Spring容器載入所有的配置檔案的路徑 -->  
        13.     <context-param>  
        14.         <param-name>contextConfigLocation</param-name>  
        15.         <!-- <param-value>classpath:config/spring-*.xml</param-value> -->  
        16.         <param-value>classpath:spring-common.xml,classpath:spring-mvc.xml</param-value>  
        17.           
        18.     </context-param>  
        19.   
        20.     <!-- 配置SpringMVC核心控制器 -->  
        21.     <servlet>  
        22.         <servlet-name>springMVC</servlet-name>  
        23.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        24.         <!-- 配置初始配置化檔案,前面contextConfigLocation看情況二選一 -->    
        25.         <init-param>  
        26.             <param-name>contextConfigLocation</param-name>  
        27.             <param-value>classpath:spring-common.xml,classpath:spring-mvc.xml</param-value>  
        28.         </init-param>  
        29.         <!-- 啟動載入一次 -->    
        30.         <load-on-startup>1</load-on-startup>  
        31.     </servlet>  
        32.   
        33.     <!--為DispatcherServlet建立對映 -->  
        34.     <servlet-mapping>  
        35.         <servlet-name>springMVC</servlet-name>  
        36.         <!-- 此處可以可以配置成*.do,對應struts的字尾習慣 -->  
        37.         <url-pattern>/</url-pattern>  
        38.     </servlet-mapping>  
        39.   
        40.     <!-- 防止Spring記憶體溢位監聽器 -->  
        41.     <listener>  
        42.         <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  
        43.     </listener>  
        44.   
        45.     <!-- 解決工程編碼過濾器 -->  
        46.     <filter>  
        47.         <filter-name>encodingFilter</filter-name>  
        48.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        49.         <init-param>  
        50.             <param-name>encoding</param-name>  
        51.             <param-value>UTF-8</param-value>  
        52.         </init-param>  
        53.         <init-param>  
        54.             <param-name>forceEncoding</param-name>  
        55.             <param-value>true</param-value>  
        56.         </init-param>  
        57.     </filter>  
        58.       
        59.     <filter-mapping>  
        60.         <filter-name>encodingFilter</filter-name>  
        61.         <url-pattern>/*</url-pattern>  
        62.     </filter-mapping>  
        63.   
        64.     <welcome-file-list>  
        65.         <welcome-file>index.jsp</welcome-file>  
        66.     </welcome-file-list>  
        67. </web-app>  
        68. 12.建立service以及service實現UserService

           

           

          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<User> findAll();  
          13. }  
           

           

          UserServiceImpl

           

          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<User> findAll() {  
          32.         List<User> 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.建立UserController

           

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

          至此 大部分架構以及程式碼已經搭建完成

          我們來做前臺頁面--修改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. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
          10. <html>  
          11. <head>  
          12. <base href="<%=basePath%>">  
          13. <title>首頁</title>  
          14. </head>  
          15. <body>  
          16.     <h5>  
          17.         <a href="<%=basePath%>user/getAllUser">進入使用者管理頁</a>  
          18.     </h5>  
          19. </body>  
          20. </html>  


          在 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. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
          8. <html>  
          9.   <head>  
          10.     <base href="<%=basePath%>">  
          11.       
          12.     <title>新增使用者</title>  
          13.       
          14.     <script type="text/javascript">  
          15.     function addUser(){  
          16.         var form = document.forms[0];  
          17.         form.action = "<%=basePath%>user/addUser";  
          18.         form.method="post";  
          19.         form.submit();  
          20.     }  
          21. </script>  
          22.   
          23.   </head>  
          24.     
          25.   <body>  
          26.     <h1><%=path%>新增使用者<%=basePath%></h1>  
          27.     <form action="" name="userForm">  
          28.         姓名:<input type="text" name="userName">  
          29.         年齡:<input type="text" name="age">  
          30.         <input type="button" value="新增" onclick="addUser()">  
          31.     </form>  
          32.   </body>  
          33. </html>  


          findAllUser.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. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
          8. <html>  
          9.   <head>  
          10.     <base href="<%=basePath%>">  
          11.     <script type="text/javascript" src="js/jquery-1.7.1.js"></script>  
          12.     <title>使用者列表</title>  
          13.       
          14.     <script type="text/javascript">  
          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. </script>  
          26.   </head>  
          27.     
          28.   <body>  
          29.     <h6><a href="<%=basePath%>user/toAddUser">新增使用者</a></h6>  
          30.     <table border="1">  
          31.         <tbody>  
          32.             <tr>  
          33.                 <th>姓名</th>  
          34.                 <th>年齡</th>  
          35.                 <th>操作</th>  
          36.             </tr>  
          37.             <c:if test="${!empty userList }">  
          38.                 <c:forEach items="${userList}" var="user">  
          39.                     <tr>  
          40.                         <td>${user.userName }</td>  
          41.                         <td>${user.age }</td>  
          42.                         <td>  
          43.                             <a href="<%=basePath%>user/getUser?id=${user.id}">編輯</a>  
          44.                             <a href="javascript:del('${user.id }')">刪除</a>  
          45.                         </td>  
          46.                     </tr>               
          47.                 </c:forEach>  
          48.             </c:if>  
          49.         </tbody>  
          50.     </table>  
          51.   </body>  
          52. </html>  


          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. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
          8. <html>  
          9.   <head>  
          10.     <base href="<%=basePath%>">  
          11.       
          12.     <title>編輯使用者</title>  
          13.       
          14.     <script type="text/javascript">  
          15.     function updateUser(){  
          16.         var form = document.forms[0];  
          17.         form.action = "<%=basePath%>user/updateUser";  
          18.         form.method="post";  
          19.         form.submit();  
          20.     }  
          21. </script>  
          22.   
          23.   </head>  
          24.     
          25.   <body>  
          26.     <h1>新增使用者</h1>  
          27.     <form action="" name="userForm">  
          28.         <input type="hidden" name="id" value="${user.id }"/>  
          29.         姓名:<input type="text" name="userName" value="${user.userName }"/>  
          30.         年齡:<input type="text" name="age" value="${user.age }"/>  
          31.         <input type="button" value="編輯" onclick="updateUser()"/>  
          32.     </form>  
          33.   </body>  
          34.     
          35. </html>  


          到此 簡單的SSM demo基本的操作內容已經完成

          對應的資料庫 表

          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', '二狗', '23');  
          34. INSERT INTO `t_user` VALUES ('5', '狗剩', '23');  
          35. INSERT INTO `t_user` VALUES ('6', '狗狗', '23');  
          36. INSERT INTO `t_user` VALUES ('7', '傻蛋', '23');  
          37. INSERT INTO `t_user` VALUES ('9', '大傻', '23123');  
          38.   
          39. -- ----------------------------  
          40. -- Table structure for `user_t`  
          41. -- ----------------------------  
          42. DROP TABLE IF EXISTS `user_t`;  
          43. CREATE