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.品种完全布局

图片 1

2.添加相关jar 包

图片 2

3.系列总体布局出来了

4.创建model【User】

 

[java] view
plain
 copy

 图片 3图片 4

  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】

 

 

[java] view
plain
 copy

 图片 5图片 6

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

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

 

[java] view
plain
 copy

 图片 7图片 8

  1. package com.lyt.mapper;  
  2. import java.util.List;  
  3. import com.lyt.model.User;  
  4. /** 
  5.  * 做为 DAO的接口 
  6.  * @author */  
  7. public interface UserMapper {    
  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. }    

6.实现dao接口【mybatis中就是UserMapper.xml文件】

[python] view
plain
 copy

 图片 9图片 10

  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"&gt;    
  4. <!–     
  5. namespace:必须与相应的接口全类名相同  UserMapper.java  
  6.     id :必须与相应接口的某个对应的点子名一致即必须要和UserMapper.java接口中的方法同名。  
  7.  –>    
  8.  <mapper namespace=”com.lyt.mapper.UserMapper”>  
  9.     <insert id=”save” parameterType=”User”>  
  10.         insert into t_user(user_name,user_age) values(#{userName},#{age})  
  11.     </insert>  
  12.     <update id=”update” parameterType=”User”>    
  13.         update t_user set user_name=#{userName},user_age=#{age} where user_id=#{id}    
  14.     </update>   
  15.     <delete id=”delete” parameterType=”int”>    
  16.         delete from t_user where user_id=#{id}    
  17.     </delete>    
  18.      <!– mybsits_config中布置的alias体系名,也可一贯配置resultType为类路径 –>      
  19.     <select id=”findById” parameterType=”int” resultType=”User”>    
  20.         select user_id id,user_name userName,user_age age from t_user where user_id=#{id}    
  21.     </select>    
  22.     <select id=”findAll” resultType=”User”>    
  23.         select user_id id,user_name userName,user_age age from t_user    
  24.     </select>   
  25.  </mapper>  

此处对这多少个xml文件作几点表明: 
1、namespace必须与相应的接口全类名相同。 

2、id必须与相应接口的某个对应的主意名一致即必须要和UserMapper.java接口中的方法同名。 

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

 对于Mybatis和Spring的咬合是这篇博文的第一,需要安排的内容在下面有详细的表达。

[python] view
plain
 copy

 图片 11图片 12

  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"&gt;  
  12. <!– Mybatis和Spring的整合 –>  
  13.     <!– 1. 数据源 : DriverManagerDataSource –>  
  14.     <bean id=”dataSource”  
  15. class=”org.springframework.jdbc.datasource.DriverManagerDataSource”>  
  16.         <property name=”driverClassName” value=”com.mysql.jdbc.Driver” />  
  17.         <property name=”url” value=”jdbc:mysql://localhost:3306/db_zsl” />  
  18.         <property name=”username” value=”root” />  
  19.         <property name=”password” value=”root” />  
  20.     </bean>  
  21.     <!–  
  22. 2. mybatis的SqlSession的厂子: SqlSessionFactoryBean dataSource:引用数据源  
  23.         MyBatis定义数据源,同意加载配置  
  24.     –>  
  25.     <bean id=”sqlSessionFactory” class=”org.mybatis.spring.SqlSessionFactoryBean”>  
  26.         <property name=”dataSource” ref=”dataSource”></property>  
  27.         <property name=”configLocation” value=”classpath:mybatis-config.xml” />   
  28.     </bean>  
  29.     <!–  
  30. 3. mybatis自动扫描加载Sql映射文件/接口 : MapperScannerConfigurer sqlSessionFactory  
  31.         basePackage:指定sql映射文件/接口所在的包(自动扫描)  
  32.     –>  
  33.     <bean class=”org.mybatis.spring.mapper.MapperScannerConfigurer”>  
  34.         <property name=”basePackage” value=”com.lyt.mapper”></property>  
  35.         <property name=”sqlSessionFactory” ref=”sqlSessionFactory”></property>  
  36.     </bean>  
  37.     <!–  
  38. 4. 工作管理 : DataSourceTransactionManager dataSource:引用上边定义的数据源  
  39.     –>  
  40.     <bean id=”txManager”  
  41. class=”org.springframework.jdbc.datasource.DataSourceTransactionManager”>  
  42.         <property name=”dataSource” ref=”dataSource”></property>  
  43.     </bean>  
  44.     <!– 5. 利用阐明式事务  
  45.          transaction-manager:引用下边定义的作业管理器  
  46.      –>  
  47.     <tx:annotation-driven transaction-manager=”txManager” />  
  48. </beans>  

8.mybatis部署文件【mybatis-config.xml】放在src目录下

[python] view
plain
 copy

 图片 13图片 14

<?xml version=”1.0″ encoding=”UTF-8″?>  

<!DOCTYPE configuration PUBLIC “-//mybatis.org//DTD Config 3.0//EN”   

http://mybatis.org/dtd/mybatis-3-config.dtd"&gt;
 

<configuration>  

<!– 实体类,简称 -设置别名 –>  

<typeAliases>  

<typeAlias alias=”User” type=”com.lyt.model.User” />  

 </typeAliases>  

<!– 实体接口映射资源 –>  

  <!–  

 表达:假如xxMapper.xml配置文件放在和xxMapper.java统一目录下,mappers也足以简简单单,因为org.mybatis.spring.mapper.MapperFactoryBean默认会去追寻与xxMapper.java相同目录和名称的xxMapper.xml  

 –>  

<mappers>  

 <mapper resource=”com/lyt/mapper/userMapper.xml” />  

</mappers>  

</configuration>   

1、配置log4j.properties

[python] view
plain
 copy

 图片 15图片 16

  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   

10.整合Springmvc

部署【spring-mvc.xml】放在src根目录下

[python] view
plain
 copy

 图片 17图片 18

  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"&gt;  
  11.     <!– 申明扫描包 –>  
  12.     <context:component-scan base-package=”com.lyt.controller” />  
  13.     <context:component-scan base-package=”com.lyt.service” />  
  14.     <!– 开启阐明 –>  
  15.     <mvc:annotation-driven />  
  16.     <!–  
  17.         配置静态资源,直接照射到对应的文书夹,不被DispatcherServlet处理,3.04新增效益,需要再行安装spring-mvc-3.0.xsd  
  18.     –>  
  19.     <mvc:resources mapping=”/img/**” location=”/img/” />  
  20.     <mvc:resources mapping=”/js/**” location=”/js/” />  
  21.     <mvc:resources mapping=”/css/**” location=”/css/” />  
  22.     <mvc:resources mapping=”/html/**” location=”/html/” />  
  23.     <!– 定义跳转的文书的前后缀 ,视图格局配置–>  
  24.     <bean id=”viewResolver”  
  25. class=”org.springframework.web.servlet.view.InternalResourceViewResolver”>  
  26.         <!– 这里的布置我的接头是活动给末端action的办法return的字符串加上前缀和后缀,变成一个 可用的url地址 –>  
  27.         <property name=”prefix” value=”/WEB-INF/jsp/” />  
  28.         <property name=”suffix” value=”.jsp” />  
  29.     </bean>  
  30. </beans>  

11.配置web.xml

[python] view
plain
 copy

 图片 19图片 20

  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"&gt;  
  6.     <!– 加载Spring容器配置 –>  
  7.     <listener>  
  8.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  9.     </listener>  
  10.     <!– 设置Spring容器加载所有的配置文件的门路 –>  
  11.     <context-param>  
  12.         <param-name>contextConfigLocation</param-name>  
  13.         <!– <param-value>classpath:config/spring-*.xml</param-value> –>  
  14.         <param-value>classpath:spring-common.xml,classpath:spring-mvc.xml</param-value>  
  15.     </context-param>  
  16.     <!– 配置SpringMVC主旨控制器 –>  
  17.     <servlet>  
  18.         <servlet-name>springMVC</servlet-name>  
  19.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  20.         <!– 配置初步配置化文件,后面contextConfigLocation看情状二选一 –>    
  21.         <init-param>  
  22.             <param-name>contextConfigLocation</param-name>  
  23.             <param-value>classpath:spring-common.xml,classpath:spring-mvc.xml</param-value>  
  24.         </init-param>  
  25.         <!– 启动加载一次 –>    
  26.         <load-on-startup>1</load-on-startup>  
  27.     </servlet>  
  28.     <!–为DispatcherServlet建立映射 –>  
  29.     <servlet-mapping>  
  30.         <servlet-name>springMVC</servlet-name>  
  31.         <!– 此处能够可以安排成*.do,对应struts的后缀习惯 –>  
  32.         <url-pattern>/</url-pattern>  
  33.     </servlet-mapping>  
  34.     <!– 制止Spring内存溢出监听器 –>  
  35.     <listener>  
  36.         <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  
  37.     </listener>  
  38.     <!– 解决工程编码过滤器 –>  
  39.     <filter>  
  40.         <filter-name>encodingFilter</filter-name>  
  41.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  42.         <init-param>  
  43.             <param-name>encoding</param-name>  
  44.             <param-value>UTF-8</param-value>  
  45.         </init-param>  
  46.         <init-param>  
  47.             <param-name>forceEncoding</param-name>  
  48.             <param-value>true</param-value>  
  49.         </init-param>  
  50.     </filter>  
  51.     <filter-mapping>  
  52.         <filter-name>encodingFilter</filter-name>  
  53.         <url-pattern>/*</url-pattern>  
  54.     </filter-mapping>  
  55.     <welcome-file-list>  
  56.         <welcome-file>index.jsp</welcome-file>  
  57.     </welcome-file-list>  
  58. </web-app>  
  59. 12.建立service以及service实现【UserService.java】

    [python] view
    plain
     copy

     图片 21图片 22

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

**\[python\]** [view
plain](http://blog.csdn.net/liyintaoliuyun/article/details/51426479) [copy](http://blog.csdn.net/liyintaoliuyun/article/details/51426479)

 [![](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/1685450)[![](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/1685450/fork)

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

13.建立Controller【UserController.java】

**\[python\]** [view
plain](http://blog.csdn.net/liyintaoliuyun/article/details/51426479) [copy](http://blog.csdn.net/liyintaoliuyun/article/details/51426479)

 [![](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/1685450)[![](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/1685450/fork)

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




至此
大部分[架构](http://lib.csdn.net/base/architecture)以及代码已经搭建完成

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

**\[python\]** [view
plain](http://blog.csdn.net/liyintaoliuyun/article/details/51426479) [copy](http://blog.csdn.net/liyintaoliuyun/article/details/51426479)

 [![](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/1685450)[![](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/1685450/fork)

1.  &lt;%@ page language="java" import="java.util.\*" pageEncoding="utf-8"%&gt;  
2.  &lt;%  
3.      String path = request.getContextPath();  
4.      String basePath = request.getScheme() + "://"  
5.              + request.getServerName() + ":" + request.getServerPort()  
6.              + path + "/";  
7.  %&gt;  
8.  &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;  
9.  &lt;html&gt;  
10. &lt;head&gt;  
11. &lt;base href="&lt;%=basePath%&gt;"&gt;  
12. &lt;title&gt;首页&lt;/title&gt;  
13. &lt;/head&gt;  
14. &lt;body&gt;  
15.     &lt;h5&gt;  
16.         &lt;a href="&lt;%=basePath%&gt;user/getAllUser"&gt;进入用户管理页&lt;/a&gt;  
17.     &lt;/h5&gt;  
18. &lt;/body&gt;  
19. &lt;/html&gt;  


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

addUser.jsp内容

**\[python\]** [view
plain](http://blog.csdn.net/liyintaoliuyun/article/details/51426479) [copy](http://blog.csdn.net/liyintaoliuyun/article/details/51426479)

 [![](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/1685450)[![](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/1685450/fork)

1.  &lt;%@ page language="java" import="java.util.\*" pageEncoding="UTF-8"%&gt;  
2.  &lt;%  
3.  String path = request.getContextPath();  
4.  String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
5.  %&gt;  
6.  &lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%&gt;    
7.  &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;  
8.  &lt;html&gt;  
9.    &lt;head&gt;  
10.     &lt;base href="&lt;%=basePath%&gt;"&gt;  
11.     &lt;title&gt;添加用户&lt;/title&gt;  
12.     &lt;script type="text/javascript"&gt;  
13.     function addUser(){  
14.         var form = document.forms\[0\];  
15.         form.action = "&lt;%=basePath%&gt;user/addUser";  
16.         form.method="post";  
17.         form.submit();  
18.     }  
19. &lt;/script&gt;  
20.   &lt;/head&gt;  
21.   &lt;body&gt;  
22.     &lt;h1&gt;&lt;%=path%&gt;添加用户&lt;%=basePath%&gt;&lt;/h1&gt;  
23.     &lt;form action="" name="userForm"&gt;  
24.         姓名:&lt;input type="text" name="userName"&gt;  
25.         年龄:&lt;input type="text" name="age"&gt;  
26.         &lt;input type="button" value="添加" onclick="addUser()"&gt;  
27.     &lt;/form&gt;  
28.   &lt;/body&gt;  
29. &lt;/html&gt;  


allUser.jsp

**\[python\]** [view
plain](http://blog.csdn.net/liyintaoliuyun/article/details/51426479) [copy](http://blog.csdn.net/liyintaoliuyun/article/details/51426479)

 [![](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/1685450)[![](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/1685450/fork)

1.  &lt;%@ page language="java" import="java.util.\*" pageEncoding="UTF-8"%&gt;  
2.  &lt;%  
3.  String path = request.getContextPath();  
4.  String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
5.  %&gt;  
6.  &lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%&gt;    
7.  &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;  
8.  &lt;html&gt;  
9.    &lt;head&gt;  
10.     &lt;base href="&lt;%=basePath%&gt;"&gt;  
11.     &lt;script type="text/javascript" src="js/jquery-1.7.1.js"&gt;&lt;/script&gt;  
12.     &lt;title&gt;用户列表&lt;/title&gt;  
13.     &lt;script type="text/javascript"&gt;  
14.     function del(id){  
15.         $.get("&lt;%=basePath%&gt;user/delUser?id=" + id,function(data){  
16. if("success" == data.result){  
17.                 alert("删除成功");  
18.                 window.location.reload();  
19.             }else{  
20.                 alert("删除失败");  
21.             }  
22.         });  
23.     }  
24. &lt;/script&gt;  
25.   &lt;/head&gt;  
26.   &lt;body&gt;  
27.     &lt;h6&gt;&lt;a href="&lt;%=basePath%&gt;user/toAddUser"&gt;添加用户&lt;/a&gt;&lt;/h6&gt;  
28.     &lt;table border="1"&gt;  
29.         &lt;tbody&gt;  
30.             &lt;tr&gt;  
31.                 &lt;th&gt;姓名&lt;/th&gt;  
32.                 &lt;th&gt;年龄&lt;/th&gt;  
33.                 &lt;th&gt;操作&lt;/th&gt;  
34.             &lt;/tr&gt;  
35.             &lt;c:if test="${!empty userList }"&gt;  
36.                 &lt;c:forEach items="${userList}" var="user"&gt;  
37.                     &lt;tr&gt;  
38.                         &lt;td&gt;${user.userName }&lt;/td&gt;  
39.                         &lt;td&gt;${user.age }&lt;/td&gt;  
40.                         &lt;td&gt;  
41.                             &lt;a href="&lt;%=basePath%&gt;user/getUser?id=${user.id}"&gt;编辑&lt;/a&gt;  
42.                             &lt;a href="javascript:del('${user.id }')"&gt;删除&lt;/a&gt;  
43.                         &lt;/td&gt;  
44.                     &lt;/tr&gt;               
45.                 &lt;/c:forEach&gt;  
46.             &lt;/c:if&gt;  
47.         &lt;/tbody&gt;  
48.     &lt;/table&gt;  
49.   &lt;/body&gt;  
50. &lt;/html&gt;  


editUser.jsp

**\[python\]** [view
plain](http://blog.csdn.net/liyintaoliuyun/article/details/51426479) [copy](http://blog.csdn.net/liyintaoliuyun/article/details/51426479)

 [![](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/1685450)[![](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/1685450/fork)

1.  &lt;%@ page language="java" import="java.util.\*" pageEncoding="UTF-8"%&gt;  
2.  &lt;%  
3.  String path = request.getContextPath();  
4.  String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
5.  %&gt;  
6.  &lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%&gt;    
7.  &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;  
8.  &lt;html&gt;  
9.    &lt;head&gt;  
10.     &lt;base href="&lt;%=basePath%&gt;"&gt;  
11.     &lt;title&gt;编辑用户&lt;/title&gt;  
12.     &lt;script type="text/javascript"&gt;  
13.     function updateUser(){  
14.         var form = document.forms\[0\];  
15.         form.action = "&lt;%=basePath%&gt;user/updateUser";  
16.         form.method="post";  
17.         form.submit();  
18.     }  
19. &lt;/script&gt;  
20.   &lt;/head&gt;  
21.   &lt;body&gt;  
22.     &lt;h1&gt;添加用户&lt;/h1&gt;  
23.     &lt;form action="" name="userForm"&gt;  
24.         &lt;input type="hidden" name="id" value="${user.id }"/&gt;  
25.         姓名:&lt;input type="text" name="userName" value="${user.userName }"/&gt;  
26.         年龄:&lt;input type="text" name="age" value="${user.age }"/&gt;  
27.         &lt;input type="button" value="编辑" onclick="updateUser()"/&gt;  
28.     &lt;/form&gt;  
29.   &lt;/body&gt;  
30. &lt;/html&gt;  


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

让你们看下界面运行,地址:http://localhost:8088/SpringMVC\_Spring\_mybatis/

首页:

![](http://img.blog.csdn.net/20160518230222730?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)

点击编辑进去:

![](http://img.blog.csdn.net/20160518230242574?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)

点击添加进去:

![](http://img.blog.csdn.net/20160518230302290?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)

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

对应的数据库 表

**\[python\]** [view
plain](http://blog.csdn.net/liyintaoliuyun/article/details/51426479) [copy](http://blog.csdn.net/liyintaoliuyun/article/details/51426479)

 [![](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/1685450)[![](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/1685450/fork)

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

相关文章

网站地图xml地图