SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

来源:互联网 发布:win7 网络打印机脱机 编辑:程序博客网 时间:2024/06/05 23:59
【公告】关于开启用户注册及登录手机短信验证的通知    CSDN日报20170412 ——《程序员该如何定位?看这四大方向》    博客搬家,有礼相送

SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

655512人阅读 评论(408)收藏举报
本文章已收录于:
分类:
作者同类文章X

    目录(?)[+]

    1. 基本概念
      1. 1Spring
      2. 2SpringMVC
      3. 3MyBatis
    2. 开发环境搭建
    3. Maven Web项目创建
    4. SSM整合
      1. 1Maven引入需要的JAR包
      2. 2Spring与MyBatis的整合
        1. 21建立JDBC属性文件
        2. 22建立spring-mybatisxml配置文件
        3. 23Log4j的配置
        4. 24JUnit测试
          1. 4241创建测试用表
          2. 4242利用MyBatis Generator自动创建代码
          3. 4243建立Service接口和实现类
          4. 4244建立测试类
        5. 3整合SpringMVC
          1. 31配置spring-mvcxml
          2. 32配置webxml文件
          3. 33测试
            1. 4331新建jsp页面
            2. 4332建立UserController类
            3. 4333部署项目

    使用SSMspringSpringMVCMybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。这次先说说三大框架整合过程。个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助。不过,如果用都不会,谈思想就变成纸上谈兵了!!!先技术,再思想。实践出真知。(可通过图片水印查看博客地址)


    1、基本概念


    1.1、Spring


            Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。


    1.2、SpringMVC

         

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


    1.3、MyBatis


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



    2、开发环境搭建



    如果需要,参看之前的博文:http://blog.csdn.net/zhshulin/article/details/30779873



    3、Maven Web项目创建


    如果需要,参看之前的博文:http://blog.csdn.net/zhshulin/article/details/37921705



    4、SSM整合

          

            下面主要介绍三大框架的整合,至于环境的搭建以及项目的创建,参看上面的博文。这次整合我分了2个配置文件,分别是spring-mybatis.xml,包含springmybatis的配置文件,还有个是spring-mvc的配置文件,此外有2个资源文件jdbc.propertislog4j.properties。完整目录结构如下(最后附上源码下载地址,不建议直接使用源码,因为此教程已经有了全部代码):


    使用框架都是较新的版本

           Spring 4.0.2 RELEASE

           Spring MVC 4.0.2 RELEASE

           MyBatis 3.2.6


    4.1、Maven引入需要的JAR包

             为了方便后面说的时候不需要引入JAR包,我这里直接给出所有需要的JAR包,这都是基本的JAR包,每个包的是干什么的都有注释,就不再多说了。

    pom.xml

    [html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    1. <properties>  
    2.         <!-- spring版本号 -->  
    3.         <spring.version>4.0.2.RELEASE</spring.version>  
    4.         <!-- mybatis版本号 -->  
    5.         <mybatis.version>3.2.6</mybatis.version>  
    6.         <!-- log4j日志文件管理包版本 -->  
    7.         <slf4j.version>1.7.7</slf4j.version>  
    8.         <log4j.version>1.2.17</log4j.version>  
    9.     </properties>  
    10.   
    11.     <dependencies>  
    12.         <dependency>  
    13.             <groupId>junit</groupId>  
    14.             <artifactId>junit</artifactId>  
    15.             <version>4.11</version>  
    16.             <!-- 表示开发的时候引入,发布的时候不会加载此包 -->  
    17.             <scope>test</scope>  
    18.         </dependency>  
    19.         <!-- spring核心包 -->  
    20.         <dependency>  
    21.             <groupId>org.springframework</groupId>  
    22.             <artifactId>spring-core</artifactId>  
    23.             <version>${spring.version}</version>  
    24.         </dependency>  
    25.   
    26.         <dependency>  
    27.             <groupId>org.springframework</groupId>  
    28.             <artifactId>spring-web</artifactId>  
    29.             <version>${spring.version}</version>  
    30.         </dependency>  
    31.         <dependency>  
    32.             <groupId>org.springframework</groupId>  
    33.             <artifactId>spring-oxm</artifactId>  
    34.             <version>${spring.version}</version>  
    35.         </dependency>  
    36.         <dependency>  
    37.             <groupId>org.springframework</groupId>  
    38.             <artifactId>spring-tx</artifactId>  
    39.             <version>${spring.version}</version>  
    40.         </dependency>  
    41.   
    42.         <dependency>  
    43.             <groupId>org.springframework</groupId>  
    44.             <artifactId>spring-jdbc</artifactId>  
    45.             <version>${spring.version}</version>  
    46.         </dependency>  
    47.   
    48.         <dependency>  
    49.             <groupId>org.springframework</groupId>  
    50.             <artifactId>spring-webmvc</artifactId>  
    51.             <version>${spring.version}</version>  
    52.         </dependency>  
    53.         <dependency>  
    54.             <groupId>org.springframework</groupId>  
    55.             <artifactId>spring-aop</artifactId>  
    56.             <version>${spring.version}</version>  
    57.         </dependency>  
    58.   
    59.         <dependency>  
    60.             <groupId>org.springframework</groupId>  
    61.             <artifactId>spring-context-support</artifactId>  
    62.             <version>${spring.version}</version>  
    63.         </dependency>  
    64.   
    65.         <dependency>  
    66.             <groupId>org.springframework</groupId>  
    67.             <artifactId>spring-test</artifactId>  
    68.             <version>${spring.version}</version>  
    69.         </dependency>  
    70.         <!-- mybatis核心包 -->  
    71.         <dependency>  
    72.             <groupId>org.mybatis</groupId>  
    73.             <artifactId>mybatis</artifactId>  
    74.             <version>${mybatis.version}</version>  
    75.         </dependency>  
    76.         <!-- mybatis/spring包 -->  
    77.         <dependency>  
    78.             <groupId>org.mybatis</groupId>  
    79.             <artifactId>mybatis-spring</artifactId>  
    80.             <version>1.2.2</version>  
    81.         </dependency>  
    82.         <!-- 导入java ee jar 包 -->  
    83.         <dependency>  
    84.             <groupId>javax</groupId>  
    85.             <artifactId>javaee-api</artifactId>  
    86.             <version>7.0</version>  
    87.         </dependency>  
    88.         <!-- 导入Mysql数据库链接jar包 -->  
    89.         <dependency>  
    90.             <groupId>mysql</groupId>  
    91.             <artifactId>mysql-connector-java</artifactId>  
    92.             <version>5.1.30</version>  
    93.         </dependency>  
    94.         <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->  
    95.         <dependency>  
    96.             <groupId>commons-dbcp</groupId>  
    97.             <artifactId>commons-dbcp</artifactId>  
    98.             <version>1.2.2</version>  
    99.         </dependency>  
    100.         <!-- JSTL标签类 -->  
    101.         <dependency>  
    102.             <groupId>jstl</groupId>  
    103.             <artifactId>jstl</artifactId>  
    104.             <version>1.2</version>  
    105.         </dependency>  
    106.         <!-- 日志文件管理包 -->  
    107.         <!-- log start -->  
    108.         <dependency>  
    109.             <groupId>log4j</groupId>  
    110.             <artifactId>log4j</artifactId>  
    111.             <version>${log4j.version}</version>  
    112.         </dependency>  
    113.           
    114.           
    115.         <!-- 格式化对象,方便输出日志 -->  
    116.         <dependency>  
    117.             <groupId>com.alibaba</groupId>  
    118.             <artifactId>fastjson</artifactId>  
    119.             <version>1.1.41</version>  
    120.         </dependency>  
    121.   
    122.   
    123.         <dependency>  
    124.             <groupId>org.slf4j</groupId>  
    125.             <artifactId>slf4j-api</artifactId>  
    126.             <version>${slf4j.version}</version>  
    127.         </dependency>  
    128.   
    129.         <dependency>  
    130.             <groupId>org.slf4j</groupId>  
    131.             <artifactId>slf4j-log4j12</artifactId>  
    132.             <version>${slf4j.version}</version>  
    133.         </dependency>  
    134.         <!-- log end -->  
    135.         <!-- 映入JSON -->  
    136.         <dependency>  
    137.             <groupId>org.codehaus.jackson</groupId>  
    138.             <artifactId>jackson-mapper-asl</artifactId>  
    139.             <version>1.9.13</version>  
    140.         </dependency>  
    141.         <!-- 上传组件包 -->  
    142.         <dependency>  
    143.             <groupId>commons-fileupload</groupId>  
    144.             <artifactId>commons-fileupload</artifactId>  
    145.             <version>1.3.1</version>  
    146.         </dependency>  
    147.         <dependency>  
    148.             <groupId>commons-io</groupId>  
    149.             <artifactId>commons-io</artifactId>  
    150.             <version>2.4</version>  
    151.         </dependency>  
    152.         <dependency>  
    153.             <groupId>commons-codec</groupId>  
    154.             <artifactId>commons-codec</artifactId>  
    155.             <version>1.9</version>  
    156.         </dependency>  
    157.           
    158.           
    159.     </dependencies>  

    4.2、Spring与MyBatis的整合

    所有需要的JAR包都引入以后,首先进行SpringMyBatis的整合,然后再进行JUnit测试,先看一个项目结构图:


    4.2.1、建立JDBC属性文件

    jdbc.properties(文件编码修改为utf-8

    [html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    1. driver=com.mysql.jdbc.Driver  
    2. url=jdbc:mysql://10.221.10.111:8080/db_zsl  
    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  

    4.2.2、建立spring-mybatis.xml配置文件

            这个文件就是用来完成spring和mybatis的整合的。这里面也没多少行配置,主要的就是自动扫描,自动注入,配置数据库。注释也很详细,大家看看就明白了。

    spring-mybatis.xml

    [html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    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"  
    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">  
    12.     <!-- 自动扫描 -->  
    13.     <context:component-scan base-package="com.cn.hnust" />  
    14.     <!-- 引入配置文件 -->  
    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.         <!-- 初始化连接大小 -->  
    27.         <property name="initialSize" value="${initialSize}"></property>  
    28.         <!-- 连接池最大数量 -->  
    29.         <property name="maxActive" value="${maxActive}"></property>  
    30.         <!-- 连接池最大空闲 -->  
    31.         <property name="maxIdle" value="${maxIdle}"></property>  
    32.         <!-- 连接池最小空闲 -->  
    33.         <property name="minIdle" value="${minIdle}"></property>  
    34.         <!-- 获取连接最大等待时间 -->  
    35.         <property name="maxWait" value="${maxWait}"></property>  
    36.     </bean>  
    37.   
    38.     <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->  
    39.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
    40.         <property name="dataSource" ref="dataSource" />  
    41.         <!-- 自动扫描mapping.xml文件 -->  
    42.         <property name="mapperLocations" value="classpath:com/cn/hnust/mapping/*.xml"></property>  
    43.     </bean>  
    44.   
    45.     <!-- DAO接口所在包名,Spring会自动查找其下的类 -->  
    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.     <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->  
    52.     <bean id="transactionManager"  
    53.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
    54.         <property name="dataSource" ref="dataSource" />  
    55.     </bean>  
    56.   
    57. </beans>  


    4.2.3、Log4j的配置


          为了方便调试,一般都会使用日志来输出信息,Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

          Log4j的配置很简单,而且也是通用的,下面给出一个基本的配置,换到其他项目中也无需做多大的调整,如果想做调整或者想了解Log4j的各种配置,参看我转载的一篇博文,很详细:

    http://blog.csdn.net/zhshulin/article/details/37937365

    下面给出配置文件目录:


    log4j.properties

    [html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    1. #定义LOG输出级别  
    2. log4j.rootLogger=INFO,Console,File  
    3. #定义日志输出目的地为控制台  
    4. log4j.appender.Console=org.apache.log4j.ConsoleAppender  
    5. log4j.appender.Console.Target=System.out  
    6. #可以灵活地指定日志输出格式,下面一行是指定具体的格式  
    7. log4j.appender.Console.layout = org.apache.log4j.PatternLayout  
    8. log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n  
    9.   
    10. #文件大小到达指定尺寸的时候产生一个新的文件  
    11. log4j.appender.File = org.apache.log4j.RollingFileAppender  
    12. #指定输出目录  
    13. log4j.appender.File.File = logs/ssm.log  
    14. #定义文件最大大小  
    15. log4j.appender.File.MaxFileSize = 10MB  
    16. # 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志  
    17. log4j.appender.File.Threshold = ALL  
    18. log4j.appender.File.layout = org.apache.log4j.PatternLayout  
    19. log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n  

    4.2.4、JUnit测试


          经过以上步骤(到4.2.2,log4j不配也没影响),我们已经完成了Spring和mybatis的整合,这样我们就可以编写一段测试代码来试试是否成功了。



    4.2.4.1、创建测试用表

    既然我们需要测试,那么我们就需要建立在数据库中建立一个测试表,这个表建的很简单,SQL语句为:

    [sql] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    1. DROP TABLE IF EXISTS `user_t`;  
    2.   
    3. CREATE TABLE `user_t` (  
    4.   `id` int(11) NOT NULL AUTO_INCREMENT,  
    5.   `user_name` varchar(40) NOT NULL,  
    6.   `passwordvarchar(255) NOT NULL,  
    7.   `age` int(4) NOT NULL,  
    8.   PRIMARY KEY (`id`)  
    9. ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;  
    10.   
    11. /*Data for the table `user_t` */  
    12.   
    13. insert  into `user_t`(`id`,`user_name`,`password`,`age`) values (1,'测试','sfasgfaf',24);  

    4.2.4.2、利用MyBatis Generator自动创建代码

    参考博文:http://blog.csdn.net/zhshulin/article/details/23912615


           这个可根据表自动创建实体类、MyBatis映射文件以及DAO接口,当然,我习惯将生成的接口名改为IUserDao,而不是直接用它生成的UserMapper。如果不想麻烦就可以不改。完成后将文件复制到工程中。如图:

    4.2.4.3、建立Service接口和实现类

    目录结构:


    下面给出具体的内容:

    IUserService.jave

    [java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    1. package com.cn.hnust.service;  
    2.   
    3. import com.cn.hnust.pojo.User;  
    4.   
    5. public interface IUserService {  
    6.     public User getUserById(int userId);  
    7. }  

    UserServiceImpl.java

    [java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    1. package com.cn.hnust.service.impl;  
    2.   
    3. import javax.annotation.Resource;  
    4.   
    5. import org.springframework.stereotype.Service;  
    6.   
    7. import com.cn.hnust.dao.IUserDao;  
    8. import com.cn.hnust.pojo.User;  
    9. import com.cn.hnust.service.IUserService;  
    10.   
    11. @Service("userService")  
    12. public class UserServiceImpl implements IUserService {  
    13.     @Resource  
    14.     private IUserDao userDao;  
    15.     @Override  
    16.     public User getUserById(int userId) {  
    17.         // TODO Auto-generated method stub  
    18.         return this.userDao.selectByPrimaryKey(userId);  
    19.     }  
    20.   
    21. }  

    4.2.4.4、建立测试类

           测试类在src/test/java中建立,下面测试类中注释掉的部分是不使用Spring时,一般情况下的一种测试方法;如果使用了Spring那么就可以使用注解的方式来引入配置文件和类,然后再将service接口对象注入,就可以进行测试了。

           如果测试成功,表示SpringMybatis已经整合成功了。输出信息使用的是Log4j打印到控制台。


    [java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    1. package org.zsl.testmybatis;  
    2.   
    3. import javax.annotation.Resource;  
    4.   
    5. import org.apache.log4j.Logger;  
    6. import org.junit.Before;  
    7. import org.junit.Test;  
    8. import org.junit.runner.RunWith;  
    9. import org.springframework.context.ApplicationContext;  
    10. import org.springframework.context.support.ClassPathXmlApplicationContext;  
    11. import org.springframework.test.context.ContextConfiguration;  
    12. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  
    13.   
    14. import com.alibaba.fastjson.JSON;  
    15. import com.cn.hnust.pojo.User;  
    16. import com.cn.hnust.service.IUserService;  
    17.   
    18. @RunWith(SpringJUnit4ClassRunner.class)     //表示继承了SpringJUnit4ClassRunner类  
    19. @ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})  
    20.   
    21. public class TestMyBatis {  
    22.     private static Logger logger = Logger.getLogger(TestMyBatis.class);  
    23. //  private ApplicationContext ac = null;  
    24.     @Resource  
    25.     private IUserService userService = null;  
    26.   
    27. //  @Before  
    28. //  public void before() {  
    29. //      ac = new ClassPathXmlApplicationContext("applicationContext.xml");  
    30. //      userService = (IUserService) ac.getBean("userService");  
    31. //  }  
    32.   
    33.     @Test  
    34.     public void test1() {  
    35.         User user = userService.getUserById(1);  
    36.         // System.out.println(user.getUserName());  
    37.         // logger.info("值:"+user.getUserName());  
    38.         logger.info(JSON.toJSONString(user));  
    39.     }  
    40. }  

    测试结果:



    至此,完成Spring和mybatis这两大框架的整合,下面在继续进行SpringMVC的整合。


    4.3、整合SpringMVC

             上面已经完成了2大框架的整合,SpringMVC的配置文件单独放,然后在web.xml中配置整合。

    4.3.1、配置spring-mvc.xml

    配置里面的注释也很详细,在此就不说了,主要是自动扫描控制器,视图模式,注解的启动这三个。

    [html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    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"  
    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">  
    12.     <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->  
    13.     <context:component-scan base-package="com.cn.hnust.controller" />  
    14.     <!--避免IE执行AJAX时,返回JSON出现下载文件 -->  
    15.     <bean id="mappingJacksonHttpMessageConverter"  
    16.         class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">  
    17.         <property name="supportedMediaTypes">  
    18.             <list>  
    19.                 <value>text/html;charset=UTF-8</value>  
    20.             </list>  
    21.         </property>  
    22.     </bean>  
    23.     <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->  
    24.     <bean  
    25.         class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  
    26.         <property name="messageConverters">  
    27.             <list>  
    28.                 <ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON转换器 -->  
    29.             </list>  
    30.         </property>  
    31.     </bean>  
    32.     <!-- 定义跳转的文件的前后缀 ,视图模式配置-->  
    33.     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    34.         <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->  
    35.         <property name="prefix" value="/WEB-INF/jsp/" />  
    36.         <property name="suffix" value=".jsp" />  
    37.     </bean>  
    38.       
    39.     <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->  
    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.   
    50. </beans>  

    4.3.2、配置web.xml文件

             这里面对spring-mybatis.xml的引入以及配置的spring-mvc的Servlet就是为了完成SSM整合,之前2框架整合不需要在此处进行任何配置。配置一样有详细注释,不多解释了。


    web.xml

    [html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    1. <?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.     <!-- Spring和mybatis的配置文件 -->  
    8.     <context-param>  
    9.         <param-name>contextConfigLocation</param-name>  
    10.         <param-value>classpath:spring-mybatis.xml</param-value>  
    11.     </context-param>  
    12.     <!-- 编码过滤器 -->  
    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.     <!-- Spring监听器 -->  
    27.     <listener>  
    28.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    29.     </listener>  
    30.     <!-- 防止Spring内存溢出监听器 -->  
    31.     <listener>  
    32.         <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  
    33.     </listener>  
    34.   
    35.     <!-- Spring MVC servlet -->  
    36.     <servlet>  
    37.         <servlet-name>SpringMVC</servlet-name>  
    38.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    39.         <init-param>  
    40.             <param-name>contextConfigLocation</param-name>  
    41.             <param-value>classpath:spring-mvc.xml</param-value>  
    42.         </init-param>  
    43.         <load-on-startup>1</load-on-startup>  
    44.         <async-supported>true</async-supported>  
    45.     </servlet>  
    46.     <servlet-mapping>  
    47.         <servlet-name>SpringMVC</servlet-name>  
    48.         <!-- 此处可以可以配置成*.do,对应struts的后缀习惯 -->  
    49.         <url-pattern>/</url-pattern>  
    50.     </servlet-mapping>  
    51.     <welcome-file-list>  
    52.         <welcome-file>/index.jsp</welcome-file>  
    53.     </welcome-file-list>  
    54.   
    55. </web-app>  

    4.3.3、测试

            至此已经完成了SSM三大框架的整合了,接下来测试一下,如果成功了,那么恭喜你,如果失败了,继续调试吧,作为程序员就是不停的与BUG做斗争


    4.3.3.1、新建jsp页面


    showUser.jsp   此页面仅输出一下用户名,完成一个完整的简单流程

    [html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    3. <html>  
    4.   <head>  
    5.     <title>测试</title>  
    6.   </head>  
    7.     
    8.   <body>  
    9.     ${user.userName}  
    10.   </body>  
    11. </html>  

    4.3.3.2、建立UserController类

    UserController.java  控制器

    [java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    1. package com.cn.hnust.controller;  
    2.   
    3. import javax.annotation.Resource;  
    4. import javax.servlet.http.HttpServletRequest;  
    5.   
    6. import org.springframework.stereotype.Controller;  
    7. import org.springframework.ui.Model;  
    8. import org.springframework.web.bind.annotation.RequestMapping;  
    9.   
    10. import com.cn.hnust.pojo.User;  
    11. import com.cn.hnust.service.IUserService;  
    12.   
    13. @Controller  
    14. @RequestMapping("/user")  
    15. public class UserController {  
    16.     @Resource  
    17.     private IUserService userService;  
    18.       
    19.     @RequestMapping("/showUser")  
    20.     public String toIndex(HttpServletRequest request,Model model){  
    21.         int userId = Integer.parseInt(request.getParameter("id"));  
    22.         User user = this.userService.getUserById(userId);  
    23.         model.addAttribute("user", user);  
    24.         return "showUser";  
    25.     }  
    26. }  

    4.3.3.3、部署项目

    输入地址:localhost:8080/项目名称/user/showUser?id=1

    至此,SSM三大框架的整合就完成了,在此基础上可再添加其他功能。


    源码下载地址:http://download.csdn.net/detail/u012909091/7658611


     (转载注明出处:http://blog.csdn.net/zhshulin)

    307
    18
     
     

    我的同类文章

    http://blog.csdn.net
    • 来说说SpringMVC + JSONP的跨域请求2016-11-16
    • web工程中web.xml元素加载顺序以及配置实例2016-07-08
    • springMVC的ajax请求2016-06-23
    • 《Spring实战》学习笔记-第八章:使用Spring Web Flow2016-06-21
    • 《Spring实战》学习笔记-第六章:web视图解析2016-06-21
    • 《Spring实战》学习笔记-第四章:面向切面的Spring2016-06-21
    • myeclipse+maven实现多模块项目struts+spring+mybatis2016-07-08
    • 【转】SpringMVC注解说明2016-06-23
    • SpringMVC框架2016-06-23
    • 《Spring实战》学习笔记-第七章:Spring MVC进阶2016-06-21
    • 《Spring实战》学习笔记-第五章:构建Spring web应用2016-06-21
    更多文章

    参考知识库

    img

    MySQL知识库

    img

    .NET知识库

    img

    软件测试知识库

    img

    Java SE知识库

    img

    Java EE知识库

    img

    Java 知识库

    更多资料请参考:
    猜你在找
    SpringMVC+spring+Mybatis+Maven框架搭建
    基于Maven+Springmvc+Spring+Mybatis+jQueryMobile驴友社区
    SpringMVC Spring MyBatis整合
    springmvc深入浅出(备java基础,javaee高级课程,struts同类)
    SpringMVC框架大咖详解
    SSM框架详细整合教程Spring+SpringMVC+MyBatis
    SSM框架详细整合教程Spring+SpringMVC+MyBatis不错的一片文章
    SSM框架详细整合教程Spring+SpringMVC+MyBatis
    SSM框架详细整合教程Spring+SpringMVC+MyBatis
    SSM框架详细整合教程Spring+SpringMVC+MyBatis
    关闭
    查看评论
    262楼 wq6617前天 14:36发表 [回复] [引用][举报]
    哥,你太nb了,我这个搞了半天,找你说的做终于解决了
    261楼 w202283963天前 17:47发表 [回复] [引用][举报]
    spring-mvc.xml中这个类错了,包里根本没有这个类:
    org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
    正确的应该是MappingJackson2HttpMessageConverter
    260楼 robbb3天前 16:37发表 [回复] [引用][举报]
    收缴了,O(∩_∩)O~
    259楼 qq_271758472017-04-06 17:16发表 [回复] [引用][举报]
    jdbc.properties
    一定要看每行后面是否有空格,这个很坑人!!!
    258楼 qq_333501152017-04-01 15:20发表 [回复] [引用][举报]
    写的很好,很详细,楼主用心了啊,虽然我隔了两年才看到。哈哈
    257楼 云y2017-03-30 09:47发表 [回复] [引用][举报]
    测试成功 谢谢了
    256楼 筱壞2017-03-27 17:38发表 [回复] [引用][举报]
    好详细啊,不过为什么我按照步骤配置好了之后,在pom.xml文件上添加信息之后,jar包下载速度是无比的慢啊,一天都没有下载好,一晚上之后好不容易下载好了,pom.xml文件还有错,真的是心累啊,解决了好久都没解决,求指导,或者是如何让jar包下载的快点,求大大神们指导
    255楼 gyk19942017-03-25 11:01发表 [回复] [引用][举报]
    已解决,大家定要注意jdbc.properties中的参数后面一定不要有空格
    254楼 Yatta2017-03-25 09:18发表 [回复] [引用][举报]
    我是javaee的初学者,但是相对于hibernate而言,我总觉得还是mybatis比较难以理解。请楼主指点一下
    253楼 gyk19942017-03-24 22:06发表 [回复] [引用][举报]
    楼主,我在第一步TestMybatis的时候就一直报jdbc连接错误
    网上找了很多方法都试了,一致解决不了
    Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!
    ### The error may exist in file [E:\ytxy\graduationproject\meiping\target\classes\com\meiping\mapper\UserMapper.xml]
    ### The error may involve com.meiping.dao.IUserDao.selectByPrimaryKey
    ### The error occurred while executing a query
    ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!
    有遇到相同问题的朋友吗或者有没有什么解决思路啊
    252楼 yinjiangzhu13452017-03-24 21:40发表 [回复] [引用][举报]
    代码不完全,解析一点也不透彻
    251楼 qq_362208442017-03-24 11:19发表 [回复] [引用][举报]
    好人一生平安
    250楼 KAIXINLUOYE2017-03-16 17:00发表 [回复] [引用][举报]
    感谢分享
    249楼 jj89757hhb2017-03-16 11:48发表 [回复] [引用][举报]
    用的什么数据库
    Re: qq_379891042017-03-20 19:03发表 [回复] [引用][举报]
    回复jj89757hhb:Mysql
    在maven的pom.xml配置文件代码90行提到了,在JDBC属性文件中也可以看到
    248楼 qq_217009632017-03-16 11:16发表 [回复] [引用][举报]
    学习了
    247楼 linzhuozhang2017-03-13 15:48发表 [回复] [引用][举报]
    在写jdbc.properties的时候注意空格呀,多么痛的领悟啊!找了好久
    Re: android_xxx2017-03-14 16:14发表 [回复] [引用][举报]
    回复lzz_2014:666
    246楼 gpj3312041812017-03-11 19:13发表 [回复] [引用][举报]
    java框架生成,www点javacoder点top,希望各位coder受益
    245楼 u0111213762017-03-08 08:59发表 [回复] [引用][举报]
    请教一下!spring和mybatis整合之后的单元测试没有输出数据库查询结果!也没有报错,是哪里出错了么?
    Re: u0111213762017-03-08 10:23发表 [回复] [引用][举报]
    回复u011121376:配置文件多了一个空格,--!
    Re: u0103586392017-03-11 11:34发表 [回复] [引用][举报]
    回复u011121376:多少行啊
    244楼 xyd032017-03-07 23:36发表 [回复] [引用][举报]
    请问一下各位大神,我测试spring mybatis,为什么会报--- maven-compiler-plugin:3.1:compile (default-compile) @ ssmstudy ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 5 source files to E:\JAVA\workspace\ssmstudy\target\classes
    [INFO] -------------------------------------------------------------
    [ERROR] COMPILATION ERROR :
    [INFO] -------------------------------------------------------------
    [ERROR] /E:/JAVA/workspace/ssmstudy/src/main/java/com/cn/hnust/service/impl/UserServiceImpl.java:[7,2] 找不到符号
    符号: 类 Service
    [ERROR] /E:/JAVA/workspace/ssmstudy/src/main/java/com/cn/hnust/controller/UserController.java:[3,2] 找不到符号
    符号: 类 Controller
    [ERROR] /E:/JAVA/workspace/ssmstudy/src/main/java/com/cn/hnust/controller/UserController.java:[4,2] 找不到符号
    符号: 类 RequestMapping
    243楼 qiuyu_12342017-03-03 11:08发表 [回复] [引用][举报]
    <async-supported>true</async-supported>这个报错
    242楼 qq_367813532017-03-01 20:02发表 [回复] [引用][举报]
    引用“limin_hainan”的评论:请问下,DAO接口 有什么作用?
    241楼 u0108173652017-03-01 11:20发表 [回复] [引用][举报]
    白色的字,蛋疼...
    240楼 gpj3312041812017-02-28 19:42发表 [回复] [引用][举报]
    java框架在线生成,www点javacoder点top,希望各位coder受益
    239楼 雪吖头2017-02-26 09:58发表 [回复] [引用][举报]
    非常详细!正在学习中。
    238楼 zhang_xinsin2017-02-25 10:24发表 [回复] [引用][举报]
    谢谢楼主,断断续续弄了几天,终于把环境搭建起来了,测试通过。
    总结:
    1、环境搭建期间项目名称、包名都是写自己命名的,然后又拷贝楼主的一些配置文件,就需要去认真改配置文件里的包名。
    2、maven这个东西不错,但下载JAR包很慢,需要去配置国内阿里云的下载镜像,这样下载就很快。
    3、mybatis-generator-core-1.3.2 这个自动生成实例等东西还可以,但很奇怪我电脑上这个generatorConfig.xml,添加中文注释不行,会报错。

    对于初学者一步步下来,配置东西是挺多的,慢慢来吧
    Re: 筱壞2017-03-27 17:47发表 [回复] [引用][举报]
    回复zhang_xinsin:为什么我的下载的超级慢,我也是改了镜像的,但还是一如既往的慢,你是改了哪里?求指导
    237楼 zhang_xinsin2017-02-25 10:23发表 [回复] [引用][举报]
    236楼 JIAYAFEI5212017-02-24 12:53发表 [回复] [引用][举报]
    666
    235楼 qq_350118242017-02-16 15:20发表 [回复] [引用][举报]
    今天写完了,也是报的这个错误
    234楼 qq_358725292017-02-16 12:26发表 [回复] [引用][举报]
    楼主大神,给你赞,作为菜鸟级的我,想请教你问题,可以加你qq吗,或者+Q1296574737
    233楼 csdn5225189002017-02-14 18:14发表 [回复] [引用][举报]
    我的一直报这个错:
    严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
    java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener。
    这个怎么解决,jar包都有
    232楼 Aiky2017-02-09 18:11发表 [回复] [引用][举报]
    感觉易懂,先马克一下啊:SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
    231楼 A-aZ-z2017-02-08 13:46发表 [回复] [引用][举报]
    讲的很详细,谢谢楼主
    230楼 yuehui10232017-02-07 17:46发表 [回复] [引用][举报]
    谢谢大神分享。
    229楼 不能浪费时间啊_少年2017-01-23 12:39发表 [回复] [引用][举报]
    新手遇到的问题说一下后面的遇到可以试试:
    1.jdbc数据池的url要改,所有空格要都删掉(报jdbc的错)
    2.spring-mybatis.xml的所有路径都要改(报spring-mybatis配置的错)
    3.mybatis生成的代码路径看一下,mapper的namespace要改成dao接口的路径(报mapper或者dao的错)
    springmvc还没整合,后面遇到问题再发
    228楼 qq_358580442017-01-17 17:02发表 [回复] [引用][举报]
    楼主那事物好像不能回滚呀
    227楼 sinat_373037882017-01-10 15:52发表 [回复] [引用][举报]
    你好,我看了之后,有些java文件不在文章中,所以求一份源文件,便于学习,能发一份到771696594@qq.com吗 万分感谢
    226楼 蔬果达2017-01-06 15:14发表 [回复] [引用][举报]
    请问下,DAO接口 有什么作用?
    225楼 蔬果达2017-01-06 15:06发表 [回复] [引用][举报]
    service能否自动生成?
    224楼 _blank_20152017-01-06 11:10发表 [回复] [引用][举报]
    原帖地址
    http://blog.csdn.net/zhshulin/article/details/37956105/
    楼主转载不说明 不厚道.
    223楼 is0290hs2016-12-26 12:56发表 [回复] [引用][举报]
    代码下载下来错误
    222楼 Justy_pc2016-12-22 09:37发表 [回复] [引用][举报]
    求助啊 idea集成的时候 spring mybatis 单元测试报错Failed to load ApplicationContext iuserdao注入失败
    Re: botak_2332016-12-22 11:06发表 [回复] [引用][举报]
    回复Justy_pc:试试在pom.xml的build标签下加
    <resources>
    <resource>
    <directory>src/main/java</directory>
    <includes>
    <include>**/*.xml</include>
    </includes>
    </resource>
    <resource>
    <directory>src/main/resources</directory>
    </resource>
    </resources>
    221楼 botak_2332016-12-21 14:53发表 [回复] [引用][举报]
    想练手过来的 花了几天大概搭了下环境 遇到些问题总结一下 在junit阶段报了classnotfound的错 需要先跑一边maven test生成class文件 jdbc连接失败只需删除jdbc.properties里的空格 invalid bound statement (not found) mybatis绑定错误 需要在pom.xml的build标签中加上<resources>
    <resource>
    <directory>src/main/java</directory>
    <includes>
    <include>**/*.xml</include>
    </includes>
    </resource>
    <resource>
    <directory>src/main/resources</directory>
    </resource>
    </resources>
    现在用tomcat跑的时候index页面可以出来但是/项目名/user/showUser?id=1报404 仍在解决中
    Re: qq_267463612017-01-12 16:27发表 [回复] [引用][举报]
    回复dsz506150627:哥们 这个问题解决了么? 求交流qq:348887035
    220楼 try_continue2016-12-18 15:32发表 [回复] [引用][举报]
    楼主很厉害,做了几个月就能总结的这么好,很佩服。
    219楼 pl5409701472016-12-15 11:28发表 [回复] [引用][举报]
    按照楼主的步骤,一步一步做的。虽然遇到很多坑,但是在搜索引擎的帮助下都解决了。非常感谢楼主!写的很详细,也简单易懂!非常感谢!
    218楼 xieyika2016-12-12 11:12发表 [回复] [引用][举报]
    自己试一下看看。
    217楼 kenlz9992016-12-12 10:25发表 [回复] [引用][举报]
    很不错。。。。。。。。。。
    216楼 qq_314323152016-12-11 14:48发表 [回复] [引用][举报]
    dddd
    215楼 qq_314323152016-12-11 14:48发表 [回复] [引用][举报]
    rr
    214楼 薛定谔的coder2016-12-10 15:20发表 [回复] [引用][举报]
    关注楼主,好好学习
    213楼 GUANGHUI_Z2016-12-09 14:49发表 [回复] [引用][举报]
    引用“longlovetongtong”的评论:利用MyBatis Generator自动创建代码的时候,GeneratorConfig.xml放哪...


    放与src同处一个文件夹中。
    212楼 jpfss2016-12-06 22:59发表 [回复] [引用][举报]
    “spring-mybatis.xml”文件中报错“Could not resolve placeholder 'driver' in string value "${driver}”检查了好久,不知道哪里错了,jdbc文件后面空格也去掉了,谁帮忙解答一下,感激不尽
    Re: langligelang1232016-12-27 23:21发表 [回复] [引用][举报]
    回复jpfss:我也是
    211楼 hz_hero2016-12-06 18:34发表 [回复] [引用][举报]
    我没有用maven,试着整了一下,第一步TestMyBatis就失败,userService一直不能注入,Spring 版本4.2.8,4.3.2,4.3.4都试了,还是不行,好郁闷啊,谁能帮帮忙
    210楼 qq_361117492016-12-03 00:18发表 [回复] [引用][举报]
    lz我有一个问题,就是springMVC怎么接收两个类型一样的对象。
    209楼 zlr10042016-12-01 17:24发表 [回复] [引用][举报]
    service注入一直不成功 谁能帮帮我 有红包
    Re: jpfss2016-12-06 08:53发表 [回复] [引用][举报]
    回复zlr1004:我的情况也是只有service注解不被识别,更新一下spring版本信息到4.3.2我的就这样解决了
    Re: hz_hero2016-12-07 16:53发表 [回复] [引用][举报]
    回复jpfss:今天完全照着上面弄了一遍,最初是Controller注册不上,就在spring-mybatis.xml的<context:component-scan里加了<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>,结果Controller通过了,userService注入不成功;我按要求更换了4.3.2版本,结果userService成功注入了,又报userDao注入不了(Error creating bean with name 'IUserDao'),它又没实现类,这下我真蒙圈了
    Re: pl5409701472016-12-15 11:01发表 [回复] [引用][举报]
    回复hz_hero:我之前报dao注入不了,是因为包名和spring-mybatis.xml里的‘org.mybatis.spring.mapper.MapperScannerConfigurer’配置的dao包名不一致。
    dao注解‘@Repository’。
    Re: qixiaoshen2017-01-15 16:19发表 [回复] [引用][举报]
    回复pl540970147:项目注解controller service dao 都报错,对比源码后发现MapperScannerConfigurer 中配置basePackage的value值没写全,把包名写全,项目就起来了
    Re: qixiaoshen2017-01-15 16:17发表 [回复] [引用][举报]
    回复pl540970147:项目注解controller service dao 都报错,对比源码后发现MapperScannerConfigurer 中配置basePackage的value值没写全,把包名写全,项目就起来了
    Re: 夜无痕星2017-04-01 10:44发表 [回复] [引用][举报]
    回复qixiaoshen:为什么我的写全之后也不行?依然是什么都注入不了。
    <property name="basePackage" value="com.cn.hnust.dao" />
    208楼 qq_324484692016-11-29 10:30发表 [回复] [引用][举报]
    感谢楼主
    207楼 liaoyue112016-11-28 11:41发表 [回复] [引用][举报]
    写的非常好,搭建成功!
    206楼 qq_332412482016-11-28 00:29发表 [回复] [引用][举报]
    文档很详细 花了几个小时写了一个demo 但是有个小问题卡了好久 一直报没有合适的driver 多番折腾才搞对 url应该是:jdbc:mysql://localhost:3306/{table_name} anyway 谢谢楼主
    205楼 VoidAccelerator2016-11-26 19:16发表 [回复] [引用][举报]
    太难了 一直有错误 改不了
    204楼 huiweinian91622016-11-25 11:48发表 [回复] [引用][举报]
    spring与mybatis整合后用Junit测试总是报如下这个错,请问有谁遇到过类似情况吗,搞了好久都没搞明白,泪奔了。。
    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.jdy.dao.UserMapper.selectByPrimaryKey
    Re: 岁月0_0静好2017-02-23 18:17发表 [回复] [引用][举报]
    回复huiweinian9162:我也是这样的,发现已经创建了代理类,xml中也没有问题,还用User user=session.selectOne("com.cn.store.dao.IUserDao.UserMapper.selectByPrimaryKey",1);也可以获得user对象,说明数据库sql这边也没有问题了。就是不知道代理类中sqlsession哪里调用出了问题。
    203楼 middleendt2016-11-25 10:48发表 [回复] [引用][举报]
    兄弟。你这个在web端的日志写不进日志文件。只能在application里面的日志才能写进去
    202楼 middleendt2016-11-25 10:46发表 [回复] [引用][举报]
    兄弟,你这个工程web里面的日志写不进日志文件里?
    201楼 llddyy123wq2016-11-25 07:05发表 [回复] [引用][举报]
    讲得非常细,楼主辛苦了
    200楼 超人与西瓜2016-11-24 14:03发表 [回复] [引用][举报]
    问一下各位,使用mybatis切换表名是怎么做到的
    Re: llddyy123wq2016-11-25 07:07发表 [回复] [引用][举报]
    回复u010909533:sql语句中表名随便写,和数据库里一致就行。不需要和mapper名字一样。
    199楼 旅途onMyWay2016-11-22 11:26发表 [回复] [引用][举报]
    很不错的新手教学,一步一步的跟着来,遇到问题再百度,找错,最后解决错误,感觉受益匪浅!!感谢楼主的分享。
    198楼 c841702122016-11-21 14:21发表 [回复] [引用][举报]
    404搞了半天,test可以,可能web包名,先解决方法
    右键点击你的项目,然后选择properities---->然后点击myeclipse-->web选项,修改web context-root名称为你要修改的项目名称,楼主的博客真的很不错,学习了!
    Re: 小李广2016-11-24 09:53发表 [回复] [引用][举报]
    回复c84170212:非常感觉,修改Context root后就正常了
    Re: 司空傲2016-11-23 11:36发表 [回复] [引用][举报]
    回复c84170212:我的也404,但是按照你做的方法 改root那个地方报错不给我改,你能把你那发给我下吗?qq707415069 谢谢了
    197楼 lucker19912016-11-16 12:31发表 [回复] [引用][举报]
    我的maven目录格式不对,我一开始新建的maven跟楼主的是一样的,后来我导入过其他框架的工程,然后我的maven目录格式就变了,都删除新建也不行了,求大神指教
    196楼 方正丶2016-11-14 20:17发表 [回复] [引用][举报]
    框架小白,工作之余,整了一周,终于整出了来了,不过差点被那个被mapper namespace卡死了,一直以为是xml的地址,谁知道是接口的地址。还是挺开心的
    Re: dandan_182016-11-20 13:41发表 [回复] [引用][举报]
    回复qq_36356218:namespace是这么写的吗
    <mapper namespace="com.java.monica.dao.IUserDao" >
    Re: 方正丶2016-12-01 14:46发表 [回复] [引用][举报]
    回复dandan_18:是的,指向dao接口就行了,这不就是个接口的实现吗
    查看更多评论
    发表评论
    • 用 户 名:
    • m0_37416586
    • 评论内容:
    • 插入代码
      HTML/XMLobjective-cDelphiRubyPHPC#C++JavaScriptVisual BasicPythonJavaCSSSQL其它
        
    * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    快速回复 TOP
    .tag_list { background: none repeat scroll 0 0 #FFFFFF; border: 1px solid #D7CBC1; color: #000000; font-size: 12px; line-height: 20px; list-style: none outside none; margin: 10px 2% 0 1%; padding: 1px; } .tag_list h5 { background: none repeat scroll 0 0 #E0DBD3; color: #47381C; font-size: 12px; height: 24px; line-height: 24px; padding: 0 5px; margin: 0; } .tag_list h5 a { color: #47381C; } .classify { margin: 10px 0; padding: 4px 12px 8px; } .classify a { margin-right: 20px; white-space: nowrap; }
    核心技术类目
    全部主题HadoopAWS移动游戏JavaAndroidiOSSwift智能硬件DockerOpenStackVPNSparkERPIE10EclipseCRMJavaScript数据库UbuntuNFCWAPjQueryBIHTML5SpringApache.NETAPIHTMLSDKIISFedoraXMLLBSUnitySplashtopUMLcomponentsWindows MobileRailsQEMUKDECassandraCloudStackFTCcoremailOPhone CouchBase云计算iOS6Rackspace Web AppSpringSideMaemoCompuware大数据aptechPerlTornadoRubyHibernateThinkPHPHBasePureSolrAngularCloud FoundryRedisScalaDjangoBootstrap
    #popup_mask { position: absolute; width: 100%; height: 100%; background: #000; z-index: 9999; left: 0px; top: 0px; opacity: 0.3; filter: alpha(opacity=30); display: none; }
      个人资料

      AndyLizh
      1
      • 访问:2585961次
      • 积分:16994
      • 等级:
      • 排名:第483名
      • 原创:21篇
      • 转载:714篇
      • 译文:0篇
      • 评论:785条
      文章分类
    • App接口设计与开发(33)
    • Android UI设计与开发(41)
    • Android开发工具(17)
    • Android开发常识(91)
    • IT技术基础(33)
    • NodeJS(3)
    • 机顶盒&TV开发(3)
    • Mac开发基础(2)
    • J2EE开发基础(16)
    • Appwidget(8)
    • 项目管理(8)
    • 百度地图开发(4)
    • 天气预报(3)
    • Android MAtrix(5)
    • AQuery(3)
    • Android动画(5)
    • Android JSON解析(3)
    • 架构设计(7)
    • NoSql(5)
    • Linux系统(33)
    • 网络问题(8)
    • NoSQL数据库之Redis数据库管理(7)
    • DLNA(4)
    • 码农天气(9)
    • 开源学习(8)
    • Android完整应用(10)
    • Android自定义控件(32)
    • 数据库知识(7)
    • AIDL(5)
    • 微信公众平台(27)
    • PHP(5)
    • PHP学习(6)
    • Android进阶(7)
    • 网站设计(13)
    • IT杂谈(9)
    • 程序员英语(2)
    • Android 实现书籍翻页效果(6)
    • ngrok(7)
    • 命名规范(4)
    • 创业(2)
    • Spring MVC(29)
    • Maven(14)
    • Android布局(1)
    • nginx(4)
    • ActiveMQ(7)
    • restful(12)
    • centos(25)
    • MongoDB(19)
    • node.js(28)
    • GeoIP2(1)
    • 智能电视适配(1)
    • 极光推送(2)
    • Mysql(10)
    • Redis(9)
    • MyBatis(4)
    • idea(6)
    • Swagger框架学习分享(5)
    • lucene(6)
    • 微信企业号(1)
    • shiro(5)
    • Retrofit(2)
    • Jersey(3)
    • WEB大前端开发(1)
    • Centos7(20)
    • ELK(1)
    • Spring Boot(119)
    • html5_音视频(4)
    • Sublime Text(6)
    • vue2.0(40)
    • python(1)
      文章存档
    • 2017年04月(28)
    • 2017年03月(30)
    • 2017年02月(126)
    • 2017年01月(18)
    • 2016年12月(3)
    • 2016年11月(1)
    • 2016年09月(3)
    • 2016年08月(7)
    • 2016年07月(16)
    • 2016年06月(43)
    • 2016年05月(1)
    • 2016年04月(5)
    • 2016年02月(2)
    • 2016年01月(2)
    • 2015年12月(1)
    • 2015年09月(18)
    • 2015年08月(6)
    • 2015年07月(3)
    • 2015年06月(27)
    • 2015年05月(10)
    • 2015年04月(7)
    • 2015年03月(6)
    • 2015年02月(2)
    • 2015年01月(7)
    • 2014年12月(8)
    • 2014年11月(1)
    • 2014年10月(6)
    • 2014年09月(27)
    • 2014年08月(22)
    • 2014年07月(9)
    • 2014年06月(29)
    • 2014年05月(30)
    • 2014年04月(42)
    • 2014年03月(19)
    • 2014年02月(34)
    • 2014年01月(10)
    • 2013年12月(27)
    • 2013年11月(83)
    • 2013年10月(17)
    • 2013年09月(17)
    • 展开
      阅读排行
    • SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)(655203)
    • 【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目(三)(87914)
    • APP接口设计安全问题(47788)
    • 微信公众平台申请测试接口URL和TOKEN的配置,怎么在本地让微信能通过80端口访问(43092)
    • 极光推送 使用实例 (一)服务端(40436)
    • Android ActionBar应用实战,高仿微信主界面的设计(39265)
    • @OneToMany或@ManyToOne的用法-annotation关系映射篇(上)(37648)
    • 免费接口API(36784)
    • Nodejs学习笔记(四)与MySQL交互(felixge/node-mysql)(32193)
    • ngrok 本机代码部署外网访问神器(29078)
      评论排行
    • SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)(408)
    • 一个国内的 ngrok 服务器(29)
    • 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果(20)
    • Android ActionBar应用实战,高仿微信主界面的设计(17)
    • 极光推送 使用实例 (一)服务端(16)
    • 【Android UI设计与开发】第07期:底部菜单栏(二)Fragment的详细介绍和使用方法(11)
    • 移动应用与API 服务器之间的安全通信解决方法(10)
    • SlidingMenu与ViewPager双向滑动的解决方案(8)
    • 【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目(三)(7)
    • APP接口设计安全问题(7)
      推荐文章
      • * 【《Real-Time Rendering 3rd》 提炼总结】(一) 全书知识点总览
      • * CSDN日报20170409 ——《扯蛋的密码规则》
      • * Shader2D: 一些2D效果的Shader实现
      • * 一个屌丝程序猿的人生(六十一)
      • * 自定义控件三部曲视图篇(三)——瀑布流容器WaterFallLayout实现
      • * 面向服务的体系架构(SOA)—架构篇
      最新评论
    • SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

      wq6617:哥,你太nb了,我这个搞了半天,找你说的做终于解决了

    • SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

      w20228396:spring-mvc.xml中这个类错了,包里根本没有这个类:org.springframework...

    • SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

      robbb:收缴了,O(∩_∩)O~

    • (28)SpringBoot启动时的Banner设置【从零开始学Spring Boot】

      gniqeux:在eclipse的控制台实现不了改变颜色

    • SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

      qq_27175847:jdbc.properties一定要看每行后面是否有空格,这个很坑人!!!

    • 极光推送 使用实例 (一)服务端

      xuezhixai:找了好久,用了楼主的,没一点问题,感谢

    • SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

      qq_33350115:写的很好,很详细,楼主用心了啊,虽然我隔了两年才看到。哈哈

    • SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

      夜无痕星:@qixiaoshen:为什么我的写全之后也不行?依然是什么都注入不了。

    • @OneToMany或@ManyToOne的用法-annotation关系映射篇(上)

      xun0928:楼主你好,我想问一下这样的代码最终数据库结构是什么样的?

    • SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

      云y:测试成功 谢谢了

    您有206条新通知

    提问

    您的问题将会被发布在“技术问答”频道×
    该问题已存在,请勿重复提问
    插入图片
    ||||||
      
    000:0
    推荐标签:
    我要悬赏
    取消发布
    可能存在类似的问题:
    我想提一个新问题

    保存代码片

    整理和分享保存的代码片,请访问代码笔记
    • *标题
    • *描述
  •  标签
  • 取消确定
    0 0
    原创粉丝点击
    热门IT博客
    热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 卡通大头娃娃 十年大头版别 小头爸爸 儿子小头爸爸 小头 2018年一枚圆大头多少钱 人家有伞我有大头 大奇 喜大普奔 大奔 大奔图片 大着肚子奔小康 大奔车价格 大奔越野车 大奔g 嫦娥奔月故事 嫦娥奔 奔组词 苏州裸奔 大奔汽车 大奔400图片及价格 大奔车上苏霞 开着大奔来接你 大奔房车价格 都市之幕后大boss 赵奔三 浦发喜大普奔app下载 大奔s600 大奔450价格 大奔汽车图片及价格 开着大奔来接你是什么歌 大奔e300多少钱 喜大普奔app下载 大奔商务车 大奔多少钱 大奔和小奔的区别 大奔多少钱一辆 大奔350 大奔s350 大奔图片及价格 daben