SSM框架的搭建,SSM框架落成轻巧的增加和删除改查

Spring介绍:

spring 使用基本的 JavaBean 来完毕从前只也许由 EJB 完结的政工。可是, Spring的用途不仅只限于服务器端的成本。从轻便性、可测量试验性和松耦合的角度来讲,任何Java 应用都足以从 Spring 中收益。 轻易的话, Spring 是多少个轻量级的决定反转(IoC )和面向切面( AOP )的容器框架。

什么搭建SSM(SpringMvc+mybatis+Spring)java web工程

SpringMVC介绍

Spring MVC 属于 SpringFrameWork 的三回九转产品,已经融入在Spring Web Flow 里面。 Spring MVC  分离了 控制器 、模型 对象 、分派器以及处理程序对象的剧中人物,这种分离让它们更便于开展定制。

No.1   首先将web工程结营造好

MyBatis介绍

  MyBatis  本是 apache 的一个开源项目 iBatis , 2009 年以此体系由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必须与相应的接口全类名一样。 

1.1.1 开辟条件介绍

 在此处笔者是采取的是mysql数据库 

  编译器版本选取的是jdk使用的是1.8

 开拓工具是应用的是eclipse 马尔斯版本

  web容器采纳的是tomcat 版本是7.0版本 

 

  在这里本身将自身要好写好的德姆o工程目录结构截图展现出来方便大家新建项目

图片 11

那张图图片清晰地将自己的工程清晰地出示出来,先简要介绍下吧
,项目主包是以com.cntv开端的
。在以下又分为多数少个子包,分别是mapper、controller、service、dao、mapper、logs、config、base、entity、test包,在这之中controller包是肩负接收前台须求试行部分业务逻辑的action,理解struts框架的相应明白Action哈
在此地笔者就不详细说了。mapper包主假若承担mybatis框架实体映射,config包是至关心注重要囤积项目配置文件。
 其余的包就不一一介绍了,都以些符合规律的包。

 

2、id必得与相应接口的某些对应的办法名一致即必得求和UserMapper.java接口中的方法同名。 

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

 对于Mybatis和Spring的咬合是那篇博文的首要,需求计划的内容在上边有详细的演说。

[python] view
plain
 copy

 图片 12图片 13

  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

 图片 14图片 15

<?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

 图片 16图片 17

  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

 图片 18图片 19

  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

 图片 20图片 21

  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

     图片 22图片 23

    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');  

NO.2  计划好相应的jar包

此处小编是选拔Spring是.2.0本子 mybatis是3.3.0版本的

图片 24

 

图中框选的jar包是有些依据jar包   不要以为那就是完整的jar包  
还或者有呢….

图片 25

 

到此甘休 jar包已积谷防饥达成  今后就来开头希图框架的连带的布局了
 首先是Spring+mybatis关联的布局

NO.3 配置框架相关功用的配备文件

在src目录中config文件夹中新建spring-mybatis.xml文件
,通过那一个文件集成并涉及Spring+mybatis框架

 

[java] view
plain
 copy

 

  1. <span style=”font-size: 14px;”><</span><span style=”font-size:18px;”>?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”  
  5.     xmlns:mvc=”http://www.springframework.org/schema/mvc”  
  6.     xsi:schemaLocation=”http://www.springframework.org/schema/beans    
  7.         http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
  8.         http://www.springframework.org/schema/context    
  9.         http://www.springframework.org/schema/context/spring-context-3.1.xsd    
  10.         http://www.springframework.org/schema/mvc    
  11.         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"&gt;  
  12.     <span style=”color:#ff0000;”><!– 自动扫描 –></span>  
  13.     <context:component-scan base-package=”com.cntv” />  
  14.     <span style=”color:#ff0000;”><!– 引进配置文件 –></span>  
  15.     <bean id=”propertyConfigurer”  
  16.         class=”org.springframework.beans.factory.config.PropertyPlaceholderConfigurer”>  
  17.         <property name=”location” value=”classpath:jdbc.properties” />  
  18.     </bean>  
  19.   
  20.     <bean id=”dataSource” class=”org.apache.commons.dbcp.BasicDataSource”  
  21.         destroy-method=”close”>  
  22.         <property name=”driverClassName” value=”${driver}” />  
  23.         <property name=”url” value=”${url}” />  
  24.         <property name=”username” value=”${username}” />  
  25.         <property name=”password” value=”${password}” />  
  26.         <span style=”color:#ff0000;”><!– 起始化连接大小 –></span>  
  27.         <property name=”initialSize” value=”${initialSize}”></property>  
  28.         <span style=”color:#ff0000;”><!– 连接池最大数据 –></span>  
  29.         <property name=”maxActive” value=”${maxActive}”></property>  
  30.         <span style=”color:#ff0000;”><!– 连接池最大空闲 –></span>  
  31.         <property name=”maxIdle” value=”${maxIdle}”></property>  
  32.         <span style=”color:#ff0000;”><!– 连接池最小空闲 –></span>  
  33.         <property name=”minIdle” value=”${minIdle}”></property>  
  34.         <span style=”color:#ff0000;”><!– 获取连接最大等待时间 –></span>  
  35.         <property name=”maxWait” value=”${maxWait}”></property>  
  36.     </bean>  
  37.   
  38.     <span style=”color:#ff0000;”><!– spring和MyBatis完美组合,不要求mybatis的布署映射文件 –></span>  
  39.     <bean id=”sqlSessionFactory” class=”org.mybatis.spring.SqlSessionFactoryBean”>  
  40.         <property name=”dataSource” ref=”dataSource” />  
  41.         <span style=”color:#ff0000;”><!– 自动扫描mapping.xml文件 –></span>  
  42.         <property name=”mapperLocations” value=”classpath:com/cntv/mapper/*.xml”></property>  
  43.     </bean>  
  44.   
  45.     <span style=”color:#ff0000;”><!– DAO接口所在包名,Spring会自动物检疫索其下的类 –></span>  
  46.     <bean class=”org.mybatis.spring.mapper.MapperScannerConfigurer”>  
  47.         <property name=”basePackage” value=”com.cn.hnust.dao” />  
  48.         <property name=”sqlSessionFactoryBeanName” value=”sqlSessionFactory”></property>  
  49.     </bean>  
  50.   
  51.     <span style=”color:#ff0000;”><!– (事务管理)transaction manager, use JtaTransactionManager for global tx –></span>  
  52.     <bean id=”transactionManager”  
  53.         class=”org.springframework.jdbc.datasource.DataSourceTransactionManager”>  
  54.         <property name=”dataSource” ref=”dataSource” />  
  55.     </bean>  
  56.   
  57. </beans></span>  

 

 

 

跟着在src下config包下新建jdbc.properties文化
 把数据库的配备放在这些布局文件之中

 

[html] view
plain
 copy

 

  1. <span style=”font-size:18px;”>driver=com.mysql.jdbc.Driver  
  2. url=jdbc:mysql://125.221.225.113:3306/<span style=”color:#ff0000;”>db_zsl</span>  
  3. username=demao  
  4. password=demao  
  5. #概念开端连接数  
  6. initialSize=0  
  7. #概念最亚松森接数  
  8. maxActive=20  
  9. #概念最大空闲  
  10. maxIdle=20  
  11. #概念最小空闲  
  12. minIdle=1  
  13. #概念最长等待时间  
  14. maxWait=60000</span>  

 

证实:第一行是加载jdbc驱动地址 

其次行是三翻五次数据库 加深湖蓝字体是数据库名字
 前边是Ip地址+mysql数据库端口号

userName是数据库连接客商名

password是接连数据库密码

 

接下去配置SpringMvc相关的配置 

要么跟此前同一,在src目录下的config文件夹中新建spring-mvc.xml配置文件 

 那些文件根本是背负Mvc架构视图,前后台数据交互等。

 

[html] view
plain
 copy

 

  1. <span style=”font-size:18px;”><span style=”font-size:18px;”><?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”  
  5.  xmlns:mvc=”http://www.springframework.org/schema/mvc”  
  6.  xsi:schemaLocation=”http://www.springframework.org/schema/beans    
  7.     http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
  8.     http://www.springframework.org/schema/context    
  9.     http://www.springframework.org/schema/context/spring-context-3.1.xsd    
  10.     http://www.springframework.org/schema/mvc    
  11.     http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"&gt;  
  12.     <span style=”color:#ff0000;”><!– 自动扫描该包,使SpringMVC感觉包下用了@controller评释的类是调节器 –></span>  
  13.     <context:component-scan base-package=”com.cntv.controller” />  
  14.     <span style=”color:#ff0000;”><!–防止IE实践AJAX时,重回JSON出现下载文件 –></span>  
  15.     <bean id=”mappingJacksonHttpMessageConverter”  
  16.       
  17.         class=”org.springframework.http.converter.json.MappingJackson2HttpMessageConverter”>  
  18.         <property name=”supportedMediaTypes”>  
  19.             <list>  
  20.                 <value>text/html;charset=UTF-8</value>  
  21.             </list>  
  22.         </property>  
  23.     </bean>  
  24.     <span style=”color:#ff0000;”><!– 运维SpringMVC的表明功效,完毕须要和注释POJO的投射 –></span>  
  25.     <bean  
  26.         class=”org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter”>  
  27.         <property name=”messageConverters”>  
  28.             <list>  
  29.                 <ref bean=”mappingJacksonHttpMessageConverter” ></ref><span style=”color:#ff0000;”>   <!– JSON转换器 –></span>  
  30.             </list>  
  31.         </property>  
  32.     </bean>   
  33.     <span style=”color:#ff0000;”><!– 定义跳转的文本的左右缀 ,视图方式配置–></span>  
  34.     <bean class=”org.springframework.web.servlet.view.InternalResourceViewResolver”>  
  35.         <span style=”color:#ff0000;”><!– 这里的配置小编的知道是自动给后边action的主意return的字符串加上前缀和后缀,形成三个 可用的url地址 –></span>  
  36.         <property name=”prefix” value=”/” />  
  37.         <property name=”suffix” value=”.jsp” />  
  38.     </bean>  
  39.     <span style=”color:#ff0000;”><!– 配置文件上传,若无动用文件上传能够不用配置,当然假如不配,那么配置文件中也不必引进上传组件包 –></span>  
  40.       <!–  <bean id=”multipartResolver”    
  41.         class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”>    
  42.         暗许编码  
  43.         <property name=”defaultEncoding” value=”utf-8″ />    
  44.         文件大小最大值  
  45.         <property name=”maxUploadSize” value=”10485760000″ />    
  46.         内部存款和储蓄器中的最大值  
  47.         <property name=”maxInMemorySize” value=”40960″ />    
  48.     </bean> –>  
  49. </beans></span></span>  

 

终极陈设web.xml文件

种类总局署文件将spring-mybatis.xml和spring-mvc.xml集成到web.xml里面

[java] view
plain
 copy

 

  1. <span style=”font-size:18px;”><?xml version=”1.0″ encoding=”UTF-8″?>  
  2. <web-app xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”  
  3.     xmlns=”http://java.sun.com/xml/ns/javaee”  
  4.     xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app\_3\_0.xsd”  
  5.     version=”3.0″>  
  6.     <display-name>Archetype Created Web Application</display-name>  
  7.     <span style=”color:#ff0000;”><!– Spring和mybatis的配备文件 –></span>  
  8.     <context-param>  
  9.         <param-name>contextConfigLocation</param-name>  
  10.         <param-value>classpath:spring-mybatis.xml</param-value>  
  11.     </context-param>  
  12.     <span style=”color:#ff0000;”><!– 编码过滤器 –></span>  
  13.     <filter>  
  14.         <filter-name>encodingFilter</filter-name>  
  15.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  16.         <async-supported>true</async-supported>  
  17.         <init-param>  
  18.             <param-name>encoding</param-name>  
  19.             <param-value>UTF-8</param-value>  
  20.         </init-param>  
  21.     </filter>  
  22.     <filter-mapping>  
  23.         <filter-name>encodingFilter</filter-name>  
  24.         <url-pattern>/</url-pattern>  
  25.     </filter-mapping>  
  26.     <span style=”color:#ff0000;”><!– Spring监听器 –></span>  
  27.     <listener>  
  28.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  29.     </listener>  
  30.     <span style=”color:#ff0000;”><!– 防止Spring内部存储器溢出监听器 –></span>  
  31.     <listener>  
  32.         <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  
  33.     </listener>  
  34.     <!– Spring MVC servlet –>  
  35.     <servlet>  
  36.         <servlet-name>SpringMVC</servlet-name>  
  37.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  38.         <init-param>  
  39.             <param-name>contextConfigLocation</param-name>  
  40.             <param-value>classpath:spring-mvc.xml</param-value>  
  41.         </init-param>  
  42.         <load-on-startup>1</load-on-startup>  
  43.         <async-supported>true</async-supported>  
  44.     </servlet>  
  45.     <servlet-mapping>  
  46.         <servlet-name>SpringMVC</servlet-name>  
  47.         <span style=”color:#ff0000;”><!– 此处能够可以配备成*.do,对应struts的后缀习于旧贯 –></span>  
  48.         <url-pattern>*.do</url-pattern>  
  49.     </servlet-mapping>  
  50.     <welcome-file-list>  
  51.         <welcome-file>/index.jsp</welcome-file>  
  52.     </welcome-file-list>  
  53.     <span style=”color:#ff0000;”><!– 配置SESSION超时,单位是秒钟 –></span>  
  54.     <session-config>  
  55.         <session-timeout>15</session-timeout>  
  56.     </session-config>  
  57.   
  58. </web-app></span>  

NO.4 收官达成 测量试验框架能还是不能够健康运营

直到这里我们曾经把框架配置好了后天大家将在写一些事实上的事物了
把接口和service定一下

4.1.1  定义多个接口 

在dao包下新建IUserDao.java类

[java] view
plain
 copy

 

  1. <span style=”font-size:18px;”><span style=”font-size:18px;”>package com.cntv.dao;  
  2.   
  3. import org.springframework.stereotype.Repository;  
  4.   
  5. import com.cntv.entity.User;  
  6. @Repository  
  7. public interface IUserDao {  
  8.     int deleteByPrimaryKey(Integer id);  
  9.   
  10.     int insert(User record);  
  11.   
  12.     int insertSelective(User record);  
  13.   
  14.     User selectByPrimaryKey(Integer id);  
  15.   
  16.     int updateByPrimaryKeySelective(User record);  
  17.   
  18.     int updateByPrimaryKey(User record);  
  19. }</span></span>  

4.1.2 定义贰个service接口

 一样的在service包下新建IUserService.java类

[java] view
plain
 copy

 

  1. <span style=”font-size:18px;”><span style=”font-size:18px;”>package com.cntv.service;  
  2.   
  3. import com.cntv.entity.User;  
  4.   
  5. public interface IUserService {  
  6.     public User getUserById(int userId);  
  7. }</span><span style=”font-size:14px;”>  
  8. </span></span>  

 

4.1.3概念二个javaBean

 

[java] view
plain
 copy

 

  1. <span style=”font-size:18px;”><span style=”font-size:18px;”>package com.cntv.entity;  
  2. public class User {  
  3.     private Integer id;  
  4.   
  5.     private String userName;  
  6.   
  7.     private String password;  
  8.   
  9.     private Integer age;  
  10.   
  11.     public Integer getId() {  
  12.         return id;  
  13.     }  
  14.   
  15.     public void setId(Integer id) {  
  16.         this.id = id;  
  17.     }  
  18.   
  19.     public String getUserName() {  
  20.         return userName;  
  21.     }  
  22.   
  23.     public void setUserName(String userName) {  
  24.         this.userName = userName == null ? null : userName.trim();  
  25.     }  
  26.   
  27.     public String getPassword() {  
  28.         return password;  
  29.     }  
  30.   
  31.     public void setPassword(String password) {  
  32.         this.password = password == null ? null : password.trim();  
  33.     }  
  34.   
  35.     public Integer getAge() {  
  36.         return age;  
  37.     }  
  38.   
  39.     public void setAge(Integer age) {  
  40.         this.age = age;  
  41.     }  
  42.       
  43. }</span></span>  

 

4.1.4 定义贰个mapper.xml实体映射 

相当粗略,在mapper文件夹下新建UserMapper.xml配置文件

[html] view
plain
 copy

 

  1. <span style=”font-size:18px;”><span style=”font-size:18px;”><?xml version=”1.0″ encoding=”UTF-8″ ?>  
  2. <!DOCTYPE mapper PUBLIC “-//mybatis.org//DTD Mapper 3.0//EN” “http://mybatis.org/dtd/mybatis-3-mapper.dtd” >  
  3. <mapper namespace=”com.cntv.dao.IUserDao” >  
  4.   <resultMap id=”BaseResultMap” type=”com.cntv.entity.User” >  
  5.     <id column=”id” property=”id” jdbcType=”INTEGER” />  
  6.     <result column=”user_name” property=”userName” jdbcType=”VARCHAR” />  
  7.     <result column=”password” property=”password” jdbcType=”VARCHAR” />  
  8.     <result column=”age” property=”age” jdbcType=”INTEGER” />  
  9.   </resultMap>  
  10.   <sql id=”Base_Column_List” >  
  11.     id, user_name, password, age  
  12.   </sql>  
  13.   <select id=”selectByPrimaryKey” resultMap=”BaseResultMap” parameterType=”java.lang.Integer” >  
  14.     select   
  15.     <include refid=”Base_Column_List” />  
  16.     from user_t  
  17.     where id = #{id,jdbcType=INTEGER}  
  18.   </select>  
  19.   <delete id=”deleteByPrimaryKey” parameterType=”java.lang.Integer” >  
  20.     delete from user_t  
  21.     where id = #{id,jdbcType=INTEGER}  
  22.   </delete>  
  23.   <insert id=”insert” parameterType=”com.cntv.entity.User” >  
  24.     insert into user_t (id, user_name, password,   
  25.       age)  
  26.     values (#{id,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},   
  27.       #{age,jdbcType=INTEGER})  
  28.   </insert>  
  29.   <insert id=”insertSelective” parameterType=”com.cntv.entity.User” >  
  30.     insert into user_t  
  31.     <trim prefix=”(” suffix=”)” suffixOverrides=”,” >  
  32.       <if test=”id != null” >  
  33.         id,  
  34.       </if>  
  35.       <if test=”userName != null” >  
  36.         user_name,  
  37.       </if>  
  38.       <if test=”password != null” >  
  39.         password,  
  40.       </if>  
  41.       <if test=”age != null” >  
  42.         age,  
  43.       </if>  
  44.     </trim>  
  45.     <trim prefix=”values (” suffix=”)” suffixOverrides=”,” >  
  46.       <if test=”id != null” >  
  47.         #{id,jdbcType=INTEGER},  
  48.       </if>  
  49.       <if test=”userName != null” >  
  50.         #{userName,jdbcType=VARCHAR},  
  51.       </if>  
  52.       <if test=”password != null” >  
  53.         #{password,jdbcType=VARCHAR},  
  54.       </if>  
  55.       <if test=”age != null” >  
  56.         #{age,jdbcType=INTEGER},  
  57.       </if>  
  58.     </trim>  
  59.   </insert>  
  60.   <update id=”updateByPrimaryKeySelective” parameterType=”com.cntv.entity.User” >  
  61.     update user_t  
  62.     <set >  
  63.       <if test=”userName != null” >  
  64.         user_name = #{userName,jdbcType=VARCHAR},  
  65.       </if>  
  66.       <if test=”password != null” >  
  67.         password = #{password,jdbcType=VARCHAR},  
  68.       </if>  
  69.       <if test=”age != null” >  
  70.         age = #{age,jdbcType=INTEGER},  
  71.       </if>  
  72.     </set>  
  73.     where id = #{id,jdbcType=INTEGER}  
  74.   </update>  
  75.   <update id=”updateByPrimaryKey” parameterType=”com.cntv.entity.User” >  
  76.     update user_t  
  77.     set user_name = #{userName,jdbcType=VARCHAR},  
  78.       password = #{password,jdbcType=VARCHAR},  
  79.       age = #{age,jdbcType=INTEGER}  
  80.     where id = #{id,jdbcType=INTEGER}  
  81.   </update>  
  82. </mapper></span></span>  

以此文件就包括CRUD操作 sql语句在标签中都有定义
,须求静心的是那之中sql语句用到的片段参数全是从dao层获取的

mapper文件是炫人眼目数据库表对应的javaBean实体 mapper中能够写sql语句
很有益于。

4.1.5 定义叁个service完毕类

在service包下serviceImpl包下新建UserServiceImpl类

[java] view
plain
 copy

 

  1. <span style=”font-size:18px;”><span style=”font-size:18px;”>package com.cntv.service.serviceImpl;  
  2. import javax.annotation.Resource;  
  3. import javax.servlet.http.HttpServletResponse;  
  4.   
  5. import org.springframework.context.ApplicationContext;  
  6. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  7. import org.springframework.stereotype.Service;  
  8. import com.cntv.dao.IUserDao;  
  9. import com.cntv.entity.User;  
  10. import com.cntv.service.IUserService;  
  11. import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;  
  12. @Service  
  13. public class UserServiceImpl implements IUserService {  
  14.     @Resource  
  15.     private IUserDao userDao;  
  16.     @Override  
  17.     public User getUserById(int userId) {  
  18.         // TODO Auto-generated method stub  
  19.         return this.userDao.selectByPrimaryKey(userId);  
  20.     }  
  21.    public static void main(String[] args) {  
  22.        ApplicationContext ca= new ClassPathXmlApplicationContext(“spring-mybatis.xml”);  
  23.        UserServiceImpl u=(UserServiceImpl) ca.getBean(“userServiceImpl”);  
  24.       User ue= u.getUserById(12);  
  25.        System.out.println(“用户名:”+ue.getUserName());  
  26. <span>    </span>   System.out.println(“客户密码:”+ue.getPassword());  
  27. }  
  28. public IUserDao getUserDao() {  
  29.     return userDao;  
  30. }  
  31. public void setUserDao(IUserDao userDao) {  
  32.     this.userDao = userDao;  
  33. }  
  34.      
  35. }</span><span style=”font-size:14px;”>  
  36. </span></span>  

 

 

4.1.6 定义三个controller

在src目录下的controller包下新建一个controller,在此处自个儿新建的是UserController.java

[java] view
plain
 copy

 

  1. <span style=”font-size:18px;”><span style=”font-size:18px;”>package com.cntv.controller;  
  2.   
  3. import javax.annotation.Resource;  
  4. import javax.servlet.http.HttpServletRequest;  
  5. import javax.servlet.http.HttpServletResponse;  
  6.   
  7. import org.apache.coyote.Request;  
  8. import org.springframework.http.HttpRequest;  
  9. import org.springframework.stereotype.Controller;  
  10. import org.springframework.ui.Model;  
  11. import org.springframework.web.bind.annotation.RequestMapping;  
  12. import org.springframework.web.bind.annotation.ResponseBody;  
  13. import org.springframework.web.servlet.ModelAndView;  
  14.   
  15. import com.cntv.entity.User;  
  16. import com.cntv.service.serviceImpl.UserServiceImpl;  
  17.   
  18. @Controller  
  19. public class UserController {  
  20.     @Resource  
  21.     private UserServiceImpl userService;  
  22.     @RequestMapping(“test.do”)  
  23.     public ModelAndView  testCon(HttpServletRequest request,Model model){  
  24.         System.out.println(“hello”);  
  25.         System.out.println(request.getParameter(“id”));  
  26.         User u=userService.getUserById(new Integer(request.getParameter(“id”)));  
  27.         System.out.println(u.getUserName());  
  28.         ModelAndView mod=new ModelAndView();  
  29.         mod.setViewName(“success”);  
  30.         return mod;  
  31.     }  
  32.     /** 
  33.      * @deprecated 
  34.      * 依据前台封装的javaBean属性进行李包裹装  这里是张开User对象的封装 
  35.      * 测验后台是还是不是能健康能得到数码        
  36.      * @param user 获取前台穿过来的目的 
  37.      * @param request 
  38.      * @return 
  39.      */  
  40.     @RequestMapping(“submit.do”)  
  41.     public String testBean(User user,HttpServletRequest request){  
  42.         System.out.println(“========+”+user.getUserName()+”…”+user.getPassword());  
  43.         return “success”;  
  44.           
  45.     }  
  46.     public UserServiceImpl getUserService() {  
  47.         return userService;  
  48.     }  
  49.     public void setUserService(UserServiceImpl userService) {  
  50.         this.userService = userService;  
  51.     }  
  52.       
  53. }</span><span style=”font-size:14px;”>  
  54. </span></span>  

 

 

 

Ok!!!未来就来测量试验下吧后台数据库和service层到底能还是不可能掘进吧  

 

图片 26

再来对照下数据库中数据吧!!

图片 27

 经过测验持久层和业务层是能互通的 测验通过!!!!

  

啦啦啦!  今后测量检验前后台数据能还是不能互通了  ….

 

前面贰个新建一个jsp测量试验页面  测验央浼和数量能还是不可能达到后台controller里面

在此间笔者新建的是eg.jsp

 

[html] view
plain
 copy

 

  1. <span style=”font-size:18px;”><span style=”font-size:18px;”><%@ page language=”java” contentType=”text/html; charset=utf-8″  
  2.     pageEncoding=”utf-8″%>  
  3. <!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd"&gt;  
  4. <html>  
  5. <head>  
  6. <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>  
  7. <script type=”text/javascript” src=”js/jquery-1.7.js”></script>  
  8. <title>Insert title here</title>  
  9. </head>  
  10. <body>  
  11. <input id=”inp” type=”hidden” maxlength=”20″>  
  12. <h2>Test formMait</h2>  
  13. <form action=”submit.do” method=”post” >  
  14. 账户<input type=”text” name=”userName”><br>  
  15. 密码<input type=”text” name=”password”><br>  
  16. <button>提交</button>  
  17.   
  18. </form>  
  19. <script type=”text/javascript”>  
  20.  $(function(){  
  21.     // alert(“json hello”);  
  22.        
  23.  })  
  24.  function clicBt(){  
  25.      console.log(“hello friends!!!”)  
  26.      $.ajax({  
  27.            type: “POST”,  
  28.            url: “test.do?id=”+$(“#inp”).val(),  
  29.            data: “name=John&location=Boston”,  
  30.            success: function(msg){  
  31.              alert(“china is hello  and you are okau!”);  
  32.            }  
  33.         });  
  34.        
  35.        
  36.  }  
  37. </script>  
  38. </body>  
  39. </html></span></span>  

重大来了!!!测量检验前台数据和呼吁能还是无法达到后台

 

>>>>>>输入http://127.0.0.1:8080/SpringMybat/eg.jsp
步向测量检验页面 

图片 28

到后台来看看调控台有怎么样反应木有??

图片 29

 

相关文章