1 首先配置web.xml

1.1配置的信息主要有:


<!-- 在web启动的时候自动加载spring的配置文件 -->
   <listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
   <context-param>
   <param-name>contextConfigLocation</param-name><!-- 
将配置文件放到src下的config文件夹下后的路径配置
   <param-value>classpath*:config/applocationContext.xml, ....</param-value>
   --><param-value>/WEB-INF/applicationContext.xml</param-value>
   </context-param>

1.2 配置过滤器

<filter>
   <filter-name>characterEncoding</filter-name>
   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
   <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
   </init-param>
   <init-param>
   <param-name>forceEncoding</param-name>
   <param-value>true</param-value>
   </init-param>
   </filter>
   <filter-mapping>
   <filter-name>characterEncoding</filter-name>
   <url-pattern>/*</url-pattern>
   </filter-mapping>

1.3 配置dispatchServlets:所有的request的请求都转到这然后根据URL路径转到相应的Controller中处理


<servlet>
   <servlet-name>mvc</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- springmvc的配置文件的默认格式是<servlet-name>-servlet.xml 在进行参数设置后就可以随意的起名字了就像现在这样是的 -->
   <init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>/WEB-INF/mvc.xml</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
   <servlet-name>mvc</servlet-name>
   
   <!-- 这样能够拦截静态文件.jpg,.css,.js等文件会被拦截,但是后面的配置中解决会有办法解决 -->
   <url-pattern>/</url-pattern>
   </servlet-mapping>


2 编写相应的java文件本例比较简单只有一个实体类



[java] view plain copy


print

?

 
     
  
1. package
2.   
3.   
4. public class
5. private int
6.   
7. private
8.   
9. private int
10.   
11. private
12.   
13.   
14. public int
15. return
16. }  
17.   
18.   
19. public void setId(int
20. this.id = id;  
21. }  
22.   
23.   
24. public
25. return
26. }  
27.   
28.   
29. public void
30. this.userName = userName;  
31. }  
32.   
33.   
34. public int
35. return
36. }  
37.   
38.   
39. public void setUserAge(int
40. this.userAge = userAge;  
41. }  
42.   
43.   
44. public
45. return
46. }  
47.   
48.   
49. public void
50. this.userAddress = userAddress;  
51. }  
52.   
53.   
54. }



package com.ouma.spring.model;


public class User {
private int id;

private String userName;

private int userAge;

private String userAddress;


public int getId() {
return id;
}


public void setId(int id) {
this.id = id;
}


public String getUserName() {
return userName;
}


public void setUserName(String userName) {
this.userName = userName;
}


public int getUserAge() {
return userAge;
}


public void setUserAge(int userAge) {
this.userAge = userAge;
}


public String getUserAddress() {
return userAddress;
}


public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}


}





3 创建映射文件和接口



[java] view plain copy


print

?


    1. public interface
    2. public User selectUserById(int
    3.   
    4. public
    5.   
    6. public void
    7.   
    8. public void
    9.   
    10. public void deleteUserById(int
    11. }



    public interface UserMapper {
    public User selectUserById(int id);
    
    public List<User> listUsers();
    
    public void addUser(User user);
    
    public void updateUser(User user);
    
    public void deleteUserById(int id);
    }






    [html] view plain copy


    print

    ?

     
         
      
    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. <mapper namespace="com.ouma.spring.mapper.UserMapper">
    5. <resultMap type="User" id="resultListUser">
    6. <id column="id" property="id"/>
    7. <result column="userName" property="userName"/>
    8. <result column="userAge" property="userAge"/>
    9. <result column="userAddress" property="userAddress"/>
    10. </resultMap>
    11.   
    12. <select id="selectUserById" parameterType="int" resultType="user">
    13. select * from user where id=#{id}  
    14. </select>
    15.   
    16. <select id="listUsers" resultType="user">
    17. select * from user  
    18. </select>
    19.   
    20. <insert id="addUser" parameterType="user">
    21. insert into user(id, userName, useraAge, userAddress) value(#{id},#{userName}, #{userAge}, #{userAddress})  
    22. </insert>
    23.   
    24. <update id="updateUser" parameterType="user">
    25. update user set userName=#{userName}, userAge=#{userAge}, userAddress=#{userAddress}  
    26. </update>
    27.   
    28. <delete id="deleteUserById" parameterType="int">
    29. delete from user where id=#{id}  
    30. </delete>
    31. </mapper>



    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.ouma.spring.mapper.UserMapper">
    <resultMap type="User" id="resultListUser">
    <id column="id" property="id"/>
    <result column="userName" property="userName"/>
    <result column="userAge" property="userAge"/>
    <result column="userAddress" property="userAddress"/>
    </resultMap>
    
    <select id="selectUserById" parameterType="int" resultType="user">
    select * from user where id=#{id}
    </select>
    
    <select id="listUsers" resultType="user">
    select * from user
    </select>
    
    <insert id="addUser" parameterType="user">
    insert into user(id, userName, useraAge, userAddress) value(#{id},#{userName}, #{userAge}, #{userAddress})
    </insert>
    
    <update id="updateUser" parameterType="user">
    update user set userName=#{userName}, userAge=#{userAge}, userAddress=#{userAddress}
    </update>
    
    <delete id="deleteUserById" parameterType="int">
    delete from user where id=#{id}
    </delete>
    </mapper>




    4 配置spring的配置文件applicationContext.xml



    [html] view plain copy

    print 
        ? 
         
         
      
    1. <!-- 读取配置文件 -->
    2. <context:property-placeholder location="/WEB-INF/database.property"/>
    3.       
    4. <!-- 本例采用DHCP数据源,应先将DHCP的jar包复制到工程的lib目录下 -->
    5. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    6.       
    7. <!-- name中的参数必须是这样的不能修改 -->
    8. <property name="driverClassName" value="${drivername}" />
    9. <property name="url" value="${url}" />
    10. <property name="username" value="${username}" />
    11. <property name="password" value="${password}" /> -->
    12.   
    13. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    14. <property name="url" value="jdbc:mysql://localhost:3306/ibatis" />
    15. <property name="username" value="root" />
    16. <property name="password" value="root" />
    17. </bean>
    18. <!-- 下面的bean就是spring来管理mybatis了-->
    19. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    20. <property name="dataSource" ref="dataSource" />
    21. <property name="configLocation" value="/WEB-INF/mybatis.xml" />
    22.       
    23. <!-- 这里可以配置mapper的映射xml文件,当然当你的映射文件和你的接口的文件一样的话就不需要了 -->
    24. <!-- 
    25.     <property name="mapperLocations" vaue="路径名/*.xml">
    26.     -->
    27.       
    28. </bean>
    29.       
    30. <!-- 通过扫描的模式将该目录下的文件(就是映射文件和相关的接口) -->
    31. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    32. <property name="basePackage" value="com.ouma.spring.mapper"></property>
    33. </bean>



    <!-- 读取配置文件 -->
        <context:property-placeholder location="/WEB-INF/database.property"/>
        
        <!-- 本例采用DHCP数据源,应先将DHCP的jar包复制到工程的lib目录下 -->
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        
        <!-- name中的参数必须是这样的不能修改 -->
        <!-- <property name="driverClassName" value="${drivername}" /> 
    <property name="url" value="${url}" />
    <property name="username" value="${username}" />
    <property name="password" value="${password}" /> -->
    
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="jdbc:mysql://localhost:3306/ibatis" />
    <property name="username" value="root" />
    <property name="password" value="root" />
        </bean>
    <!-- 下面的bean就是spring来管理mybatis了-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="/WEB-INF/mybatis.xml" />
        
        <!-- 这里可以配置mapper的映射xml文件,当然当你的映射文件和你的接口的文件一样的话就不需要了 -->
        <!-- 
        <property name="mapperLocations" vaue="路径名/*.xml">
        -->
        
        </bean>
        
        <!-- 通过扫描的模式将该目录下的文件(就是映射文件和相关的接口) -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.ouma.spring.mapper"></property>
        </bean>





    5 配置mybatis的配置文件mybatis.xml



    因为我们使用了spring框架所以这里的映射文件,接口都不需要在这进行配置了全部交给spring来管理了



    [html] view plain copy


    print

    ?

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
    3. <configuration>
    4. <typeAliases>
    5. <typeAlias type="com.ouma.spring.model.User" alias="user"/>
    6. </typeAliases>



    <?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">
    <configuration>
    <typeAliases>
    <typeAlias type="com.ouma.spring.model.User" alias="user"/>
    </typeAliases>






    6 配置springMVC的配置文件mvc.xml



    [html] view plain copy


    print

    ?


      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 http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
      6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd  
      7. >
      8.   
      9. <!-- <mvc:annotation-driven /> -->
      10. <!-- <mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。<mvc:annotation-driven />
      11. 并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。  
      12. 后面,我们处理响应ajax请求时,就使用到了对json的支持。  
      13. 面,对action写JUnit单元测试时,要从spring IOC容器中取DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,来完成测试,取的时候要知道是<mvc:annotation-driven />这一句注册的这两个bean。 -->
      14. <!-- DefaultAnnotationHandlerMapping  通过注解,把一个URL映射到Controller类上 -->
      15. <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
      16. <!-- AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上 -->
      17. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
      18. <!-- 访问jsp,路径拼接 -->
      19. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      20. <property name="prefix">
      21. <value>/WEB-INF/pages/</value>
      22. </property>
      23. <property name="suffix">
      24. <value>.jsp</value>
      25. </property>
      26. </bean>
      27.   
      28. <!-- 对静态文件的访问前面我们在配置dispatchServlet的时候讲过那种拦截会将静态的文件进行拦截 这里我们就可以这样配置后使用静态文件了  -->
      29. <!-- <mvc:resources mapping="/static/**" location="/WEB-INF/static/"/> -->
      30. <!-- 在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean -->
      31. <context:component-scan base-package="com.ouma.spring.controller" />
      32. </beans>
      33.   
      34. </configuration>



      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
              http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
      
      <!-- <mvc:annotation-driven /> -->
      <!-- <mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。
      并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。
      后面,我们处理响应ajax请求时,就使用到了对json的支持。
      面,对action写JUnit单元测试时,要从spring IOC容器中取DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,来完成测试,取的时候要知道是<mvc:annotation-driven />这一句注册的这两个bean。 -->
      <!-- DefaultAnnotationHandlerMapping  通过注解,把一个URL映射到Controller类上 -->
      <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
      <!-- AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上 -->
      <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
      <!-- 访问jsp,路径拼接 -->
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix">
      <value>/WEB-INF/pages/</value>
      </property>
      <property name="suffix">
      <value>.jsp</value>
      </property>
      </bean>
      
      <!-- 对静态文件的访问前面我们在配置dispatchServlet的时候讲过那种拦截会将静态的文件进行拦截 这里我们就可以这样配置后使用静态文件了  -->
      <!-- <mvc:resources mapping="/static/**" location="/WEB-INF/static/"/> --> 
      <!-- 在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean -->
      <context:component-scan base-package="com.ouma.spring.controller" />
      </beans>
      
      </configuration>








      7 编写controller类



      [html] view plain copy


      print

      ?

      1. @Controller  
      2. @RequestMapping("/user")  
      3. public class UserController {  
      4.   
      5.   
      6. @Autowired  
      7. UserMapper userMapper;  
      8.   
      9. @RequestMapping("/list")  
      10. public ModelAndView listall(HttpServletRequest request,HttpServletResponse response){  
      11. List<User> listUser = userMapper.listUsers();  
      12. ModelAndView mav=new
      13. mav.addObject("listUser", listUser);  
      14. return mav;  
      15.   
      16. }  
      17. }  
       
          


      @Controller
      @RequestMapping("/user")
      public class UserController {
      
      
      @Autowired
      UserMapper userMapper;
      
      @RequestMapping("/list")
      public ModelAndView listall(HttpServletRequest request,HttpServletResponse response){
      List<User> listUser = userMapper.listUsers();
      ModelAndView mav=new ModelAndView("listUser");
      mav.addObject("listUser", listUser);
      return mav;
      
      }
      }








      8 在地址栏中输入http://localhost:8080/springMVC/user/list就可以访问list.jsp了


      1 首先配置web.xml

      1.1配置的信息主要有:


      <!-- 在web启动的时候自动加载spring的配置文件 -->
         <listener>
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
         </listener>
         <context-param>
         <param-name>contextConfigLocation</param-name><!-- 
      将配置文件放到src下的config文件夹下后的路径配置
         <param-value>classpath*:config/applocationContext.xml, ....</param-value>
         --><param-value>/WEB-INF/applicationContext.xml</param-value>
         </context-param>

      1.2 配置过滤器

      <filter>
         <filter-name>characterEncoding</filter-name>
         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
         <init-param>
         <param-name>encoding</param-name>
         <param-value>UTF-8</param-value>
         </init-param>
         <init-param>
         <param-name>forceEncoding</param-name>
         <param-value>true</param-value>
         </init-param>
         </filter>
         <filter-mapping>
         <filter-name>characterEncoding</filter-name>
         <url-pattern>/*</url-pattern>
         </filter-mapping>

      1.3 配置dispatchServlets:所有的request的请求都转到这然后根据URL路径转到相应的Controller中处理


      <servlet>
         <servlet-name>mvc</servlet-name>
         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- springmvc的配置文件的默认格式是<servlet-name>-servlet.xml 在进行参数设置后就可以随意的起名字了就像现在这样是的 -->
         <init-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>/WEB-INF/mvc.xml</param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
         </servlet>
         <servlet-mapping>
         <servlet-name>mvc</servlet-name>
         
         <!-- 这样能够拦截静态文件.jpg,.css,.js等文件会被拦截,但是后面的配置中解决会有办法解决 -->
         <url-pattern>/</url-pattern>
         </servlet-mapping>

      2 编写相应的java文件本例比较简单只有一个实体类



      [java] view plain copy

      print 
          ? 
           
           
        
      1. package
      2.   
      3.   
      4. public class
      5. private int
      6.   
      7. private
      8.   
      9. private int
      10.   
      11. private
      12.   
      13.   
      14. public int
      15. return
      16. }  
      17.   
      18.   
      19. public void setId(int
      20. this.id = id;  
      21. }  
      22.   
      23.   
      24. public
      25. return
      26. }  
      27.   
      28.   
      29. public void
      30. this.userName = userName;  
      31. }  
      32.   
      33.   
      34. public int
      35. return
      36. }  
      37.   
      38.   
      39. public void setUserAge(int
      40. this.userAge = userAge;  
      41. }  
      42.   
      43.   
      44. public
      45. return
      46. }  
      47.   
      48.   
      49. public void
      50. this.userAddress = userAddress;  
      51. }  
      52.   
      53.   
      54. }  
       
         


      package com.ouma.spring.model;
      
      
      public class User {
      private int id;
      
      private String userName;
      
      private int userAge;
      
      private String userAddress;
      
      
      public int getId() {
      return id;
      }
      
      
      public void setId(int id) {
      this.id = id;
      }
      
      
      public String getUserName() {
      return userName;
      }
      
      
      public void setUserName(String userName) {
      this.userName = userName;
      }
      
      
      public int getUserAge() {
      return userAge;
      }
      
      
      public void setUserAge(int userAge) {
      this.userAge = userAge;
      }
      
      
      public String getUserAddress() {
      return userAddress;
      }
      
      
      public void setUserAddress(String userAddress) {
      this.userAddress = userAddress;
      }
      
      
      }





      3 创建映射文件和接口



      [java] view plain copy


      print

      ?

      1. public interface
      2. public User selectUserById(int
      3.   
      4. public
      5.   
      6. public void
      7.   
      8. public void
      9.   
      10. public void deleteUserById(int
      11. }



      public interface UserMapper {
      public User selectUserById(int id);
      
      public List<User> listUsers();
      
      public void addUser(User user);
      
      public void updateUser(User user);
      
      public void deleteUserById(int id);
      }






      [html] view plain copy


      print

      ?

       
        
      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. <mapper namespace="com.ouma.spring.mapper.UserMapper">
      5. <resultMap type="User" id="resultListUser">
      6. <id column="id" property="id"/>
      7. <result column="userName" property="userName"/>
      8. <result column="userAge" property="userAge"/>
      9. <result column="userAddress" property="userAddress"/>
      10. </resultMap>
      11.   
      12. <select id="selectUserById" parameterType="int" resultType="user">
      13. select * from user where id=#{id}  
      14. </select>
      15.   
      16. <select id="listUsers" resultType="user">
      17. select * from user  
      18. </select>
      19.   
      20. <insert id="addUser" parameterType="user">
      21. insert into user(id, userName, useraAge, userAddress) value(#{id},#{userName}, #{userAge}, #{userAddress})  
      22. </insert>
      23.   
      24. <update id="updateUser" parameterType="user">
      25. update user set userName=#{userName}, userAge=#{userAge}, userAddress=#{userAddress}  
      26. </update>
      27.   
      28. <delete id="deleteUserById" parameterType="int">
      29. delete from user where id=#{id}  
      30. </delete>
      31. </mapper>



      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
      "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
      <mapper namespace="com.ouma.spring.mapper.UserMapper">
      <resultMap type="User" id="resultListUser">
      <id column="id" property="id"/>
      <result column="userName" property="userName"/>
      <result column="userAge" property="userAge"/>
      <result column="userAddress" property="userAddress"/>
      </resultMap>
      
      <select id="selectUserById" parameterType="int" resultType="user">
      select * from user where id=#{id}
      </select>
      
      <select id="listUsers" resultType="user">
      select * from user
      </select>
      
      <insert id="addUser" parameterType="user">
      insert into user(id, userName, useraAge, userAddress) value(#{id},#{userName}, #{userAge}, #{userAddress})
      </insert>
      
      <update id="updateUser" parameterType="user">
      update user set userName=#{userName}, userAge=#{userAge}, userAddress=#{userAddress}
      </update>
      
      <delete id="deleteUserById" parameterType="int">
      delete from user where id=#{id}
      </delete>
      </mapper>




      4 配置spring的配置文件applicationContext.xml



      [html] view plain copy

      print 
          ? 
           
           
        
      1. <!-- 读取配置文件 -->
      2. <context:property-placeholder location="/WEB-INF/database.property"/>
      3.       
      4. <!-- 本例采用DHCP数据源,应先将DHCP的jar包复制到工程的lib目录下 -->
      5. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
      6.       
      7. <!-- name中的参数必须是这样的不能修改 -->
      8. <property name="driverClassName" value="${drivername}" />
      9. <property name="url" value="${url}" />
      10. <property name="username" value="${username}" />
      11. <property name="password" value="${password}" /> -->
      12.   
      13. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
      14. <property name="url" value="jdbc:mysql://localhost:3306/ibatis" />
      15. <property name="username" value="root" />
      16. <property name="password" value="root" />
      17. </bean>
      18. <!-- 下面的bean就是spring来管理mybatis了-->
      19. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
      20. <property name="dataSource" ref="dataSource" />
      21. <property name="configLocation" value="/WEB-INF/mybatis.xml" />
      22.       
      23. <!-- 这里可以配置mapper的映射xml文件,当然当你的映射文件和你的接口的文件一样的话就不需要了 -->
      24. <!-- 
      25.     <property name="mapperLocations" vaue="路径名/*.xml">
      26.     -->
      27.       
      28. </bean>
      29.       
      30. <!-- 通过扫描的模式将该目录下的文件(就是映射文件和相关的接口) -->
      31. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      32. <property name="basePackage" value="com.ouma.spring.mapper"></property>
      33. </bean>



      <!-- 读取配置文件 -->
          <context:property-placeholder location="/WEB-INF/database.property"/>
          
          <!-- 本例采用DHCP数据源,应先将DHCP的jar包复制到工程的lib目录下 -->
          <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
          
          <!-- name中的参数必须是这样的不能修改 -->
          <!-- <property name="driverClassName" value="${drivername}" /> 
      <property name="url" value="${url}" />
      <property name="username" value="${username}" />
      <property name="password" value="${password}" /> -->
      
      <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
      <property name="url" value="jdbc:mysql://localhost:3306/ibatis" />
      <property name="username" value="root" />
      <property name="password" value="root" />
          </bean>
      <!-- 下面的bean就是spring来管理mybatis了-->
      <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
          <property name="dataSource" ref="dataSource" />
          <property name="configLocation" value="/WEB-INF/mybatis.xml" />
          
          <!-- 这里可以配置mapper的映射xml文件,当然当你的映射文件和你的接口的文件一样的话就不需要了 -->
          <!-- 
          <property name="mapperLocations" vaue="路径名/*.xml">
          -->
          
          </bean>
          
          <!-- 通过扫描的模式将该目录下的文件(就是映射文件和相关的接口) -->
          <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
          <property name="basePackage" value="com.ouma.spring.mapper"></property>
          </bean>





      5 配置mybatis的配置文件mybatis.xml



      因为我们使用了spring框架所以这里的映射文件,接口都不需要在这进行配置了全部交给spring来管理了



      [html] view plain copy


      print

      ?

       
         
      1. <?xml version="1.0" encoding="UTF-8"?>
      2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
      3. <configuration>
      4. <typeAliases>
      5. <typeAlias type="com.ouma.spring.model.User" alias="user"/>
      6. </typeAliases>



      <?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">
      <configuration>
      <typeAliases>
      <typeAlias type="com.ouma.spring.model.User" alias="user"/>
      </typeAliases>






      6 配置springMVC的配置文件mvc.xml



      [html] view plain copy


      print

      ?

       
         
      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 http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
      6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd  
      7. >
      8.   
      9. <!-- <mvc:annotation-driven /> -->
      10. <!-- <mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。<mvc:annotation-driven />
      11. 并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。  
      12. 后面,我们处理响应ajax请求时,就使用到了对json的支持。  
      13. 面,对action写JUnit单元测试时,要从spring IOC容器中取DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,来完成测试,取的时候要知道是<mvc:annotation-driven />这一句注册的这两个bean。 -->
      14. <!-- DefaultAnnotationHandlerMapping  通过注解,把一个URL映射到Controller类上 -->
      15. <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
      16. <!-- AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上 -->
      17. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
      18. <!-- 访问jsp,路径拼接 -->
      19. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      20. <property name="prefix">
      21. <value>/WEB-INF/pages/</value>
      22. </property>
      23. <property name="suffix">
      24. <value>.jsp</value>
      25. </property>
      26. </bean>
      27.   
      28. <!-- 对静态文件的访问前面我们在配置dispatchServlet的时候讲过那种拦截会将静态的文件进行拦截 这里我们就可以这样配置后使用静态文件了  -->
      29. <!-- <mvc:resources mapping="/static/**" location="/WEB-INF/static/"/> -->
      30. <!-- 在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean -->
      31. <context:component-scan base-package="com.ouma.spring.controller" />
      32. </beans>
      33.   
      34. </configuration>



      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
              http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
      
      <!-- <mvc:annotation-driven /> -->
      <!-- <mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。
      并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。
      后面,我们处理响应ajax请求时,就使用到了对json的支持。
      面,对action写JUnit单元测试时,要从spring IOC容器中取DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,来完成测试,取的时候要知道是<mvc:annotation-driven />这一句注册的这两个bean。 -->
      <!-- DefaultAnnotationHandlerMapping  通过注解,把一个URL映射到Controller类上 -->
      <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
      <!-- AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上 -->
      <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
      <!-- 访问jsp,路径拼接 -->
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix">
      <value>/WEB-INF/pages/</value>
      </property>
      <property name="suffix">
      <value>.jsp</value>
      </property>
      </bean>
      
      <!-- 对静态文件的访问前面我们在配置dispatchServlet的时候讲过那种拦截会将静态的文件进行拦截 这里我们就可以这样配置后使用静态文件了  -->
      <!-- <mvc:resources mapping="/static/**" location="/WEB-INF/static/"/> --> 
      <!-- 在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean -->
      <context:component-scan base-package="com.ouma.spring.controller" />
      </beans>
      
      </configuration>








      7 编写controller类



      [html] view plain copy


      print

      ?


      1. @Controller  
      2. @RequestMapping("/user")  
      3. public class UserController {  
      4.   
      5.   
      6. @Autowired  
      7. UserMapper userMapper;  
      8.   
      9. @RequestMapping("/list")  
      10. public ModelAndView listall(HttpServletRequest request,HttpServletResponse response){  
      11. List<User> listUser = userMapper.listUsers();  
      12. ModelAndView mav=new
      13. mav.addObject("listUser", listUser);  
      14. return mav;  
      15.   
      16. }  
      17. }



      @Controller
      @RequestMapping("/user")
      public class UserController {
      
      
      @Autowired
      UserMapper userMapper;
      
      @RequestMapping("/list")
      public ModelAndView listall(HttpServletRequest request,HttpServletResponse response){
      List<User> listUser = userMapper.listUsers();
      ModelAndView mav=new ModelAndView("listUser");
      mav.addObject("listUser", listUser);
      return mav;
      
      }
      }








      8 在地址栏中输入http://localhost:8080/springMVC/user/list就可以访问list.jsp了