精华内容
下载资源
问答
  • 整合ssm框架常见的问题
    千次阅读
    2019-11-21 16:58:08

    在整合ssm框架的时候出现了一些问题,在此进行保存及分享:
    1.c3p0 报错A ResourcePool could not acquire a resource
    解决:放弃c3p0,使用durid,哈哈哈,durid是真好用

    2.类路径下找不到applicationContext.xml
    解决:这是maven没有自动吧resources下的文件给你部署到target下去,可以自己粘贴过去

    3.注意durid连接池使用阿里仓库的话,驱动类会与org的不一样

    4.各种找不到类的问题
    解决:intelij 20181.1的版本可能会出现这样的问题,之后使用的2019版本没有出现此问题

    5.maven不导入包到项目的问题
    解决:在module setting里,artificial里找到web—inf下的lib,再把右边的maven包导入进去就可以了,在pom下改动了坐标记得reimport一下

    更多相关内容
  • 整合ssm框架时所遇到的问题 note.md
  • SSM框架整合报错和原因1.maven编译 Process terminated2.maven导入了依赖找不到包3.Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.44 IDEA install项目时报错Please refer to…for ...

    虽然学完了SSM开始整合了但是一整合就各种报错,所以大家一定要小心小心再小心,千万不要用idea的2020.1的版本全是bug趁早卸了换其他更稳定的版本

    报错和原因

    1.maven编译 Process terminated

    首先第一个坑就是创建maven的项目名称时一定不要起中文名字
    造成这个的原因可能有很多,然后我的问题就是项目的中文名字,时导致

    <groupId>org.example</groupId>
    <artifactId>ssm1</artifactId>
    <version>1.0-SNAPSHOT</version>
    

    artifactId里面有中文名字引起的

    2.maven导入了依赖找不到包

    在这里插入图片描述
    这个是idea2020.1的锅

    3.Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4

    <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.4.2</version>
                    <configuration>
                        <skipTests>true</skipTests>
                    </configuration>
                </plugin>
            </plugins>
    </build>        
    

    4 IDEA install项目时报错Please refer to…for the individual test results.

    两种解决方案

    在maven 工程的pom.xml文件中加入

    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
    <testFailureIgnore>true</testFailureIgnore> 
     
    </configuration>
    </plugin>
    </plugins>
    </build>
    

    关闭maven的运行检查

    在这里插入图片描述

    5.idea中无法自动装配Could not autowire. No beans of ‘UserMapper’ type found. more…

    还有其他的解决方法:大佬博客的解决方法链接
    在自动转配的注解后面添加(required=false)

    @Autowired(required=false)
    public UserMapper userMapper;
    

    6.无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]解决方法

    这是idea的问题,有时候导入了报错最好检查一下这个lib里面可能jar不存在
    在这里插入图片描述

    最后就是千万不要用idea的2020.1的版本全是bug趁早卸了换其他更稳定的版本

    还有一些其他的错误这里就不一一列举了还是要仔细小心

    环境搭建

    整体结构

    在这里插入图片描述

    首先创建一个空的maven项目

    在这里插入图片描述

    添加web

    在这里插入图片描述
    在这里插入图片描述

    在pom.xml导入ssm的依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <packaging>war</packaging>
    
        <groupId>org.example</groupId>
        <artifactId>dykssm1</artifactId>
        <version>1.0-SNAPSHOT</version>
        <properties>
            <java.version>13</java.version>
            <maven.compiler.source>${java.version}</maven.compiler.source>
            <maven.compiler.target>${java.version}</maven.compiler.target>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>5.2.7.RELEASE</version>
            </dependency>
    
            <!--添加Servlet和JSP依赖-->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
                <scope>provided</scope>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>2.2</version>
                <scope>provided</scope>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
                <scope>provided</scope>
            </dependency>
    
    
            <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.75</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>5.2.7.RELEASE</version>
            </dependency>
    
            <!--spring AOP的包-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
                <version>5.2.7.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>5.2.7.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>1.3.3</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.20</version>
            </dependency>
    
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.5.5</version>
            </dependency>
    
            <dependency>
    
                <groupId>com.alibaba</groupId>
    
                <artifactId>druid</artifactId>
    
                <version>1.1.16</version>
            </dependency>
    
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.30</version>
            </dependency>
    
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.2.3</version>
            </dependency>
    
            <!--注解依赖 https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>1.3.2</version>
            </dependency>
    
    
    
        </dependencies>
    
        <!--在build中配置resources,来防止我们资源导出失败的问题-->
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>
    </project>
    

    配置web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
    
    <!--     springMVC前端控制器-->
    <!--        1.前端,接收所有的请求-->
    <!--        2.启动springMVC工厂 mvc.xml-->
    <!--        3.springMVC流程调度-->
    
        <servlet>
            <servlet-name>mvc_my</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--       局部参数 声明配置文件位置-->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:mvc.xml</param-value>
            </init-param>
        </servlet>
        <servlet-mapping>
            <servlet-name>mvc_my</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    
    
    
    <!--配置springMVC的乱码过滤器-->
        <filter>
            <filter-name>encoding</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>
        </filter>
        <filter-mapping>
            <filter-name>encoding</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
    <!--启动spring工厂-->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </context-param>
    
    </web-app>
    

    配置mvc.xml

    <?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:mvc="http://www.springframework.org/schema/mvc"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/mvc
           https://www.springframework.org/schema/mvc/spring-mvc.xsd ">
    
    
        <!--    注解扫描-->
        <context:component-scan base-package="com.blb.web" use-default-filters="false">
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        </context:component-scan>
    
        <!--    注解驱动-->
        <mvc:annotation-driven>
    
            <!--          安装Fastjson转换器-->
            <mvc:message-converters register-defaults="false">
    
                <bean id="fastJsonHttpMessageConverter"
                      class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                    <!-- 加入支持的媒体类型:返回contentType -->
                    <property name="supportedMediaTypes">
                        <list>
                            <!-- 这里顺序不能反,一定先写text/html,不然ie下会出现下载提示 -->
                            <value>text/html;charset=UTF-8</value>
                            <value>application/json;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
            </mvc:message-converters>
    
        </mvc:annotation-driven>
    
        <!--    视图解析器
              作用 :1.捕获后端控制器的返回值 如果返回的是hello
                    2.解析:在返回值前后拼接 "/hello.jsp"
        -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    
            <!--        前缀-->
            <property name="prefix" value="/"></property>
            <!--        后缀-->
            <property name="suffix" value=".jsp"></property>
        </bean>
    
        <mvc:default-servlet-handler></mvc:default-servlet-handler>
    
    
    </beans>
    

    各个层的代码编写

    这里我主要是整合的笔记还不是项目,所有都没有什么具体的功能就是打印了

    entity

    public class User {
        private Integer id;
        private String username;
        private String password;
        private String sex;
        private Date registTime;
    
    	get/set
     }   
    

    dao层

    UserMapper

    package com.blb.dao;
    
    import com.blb.entity.User;
    
    
    import java.util.List;
    
    public interface UserMapper {
        public List<User> queryUsers();
    }
    
    

    UserMapper.xml

    <?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.blb.dao.UserMapper">
     <select id="queryUsers" resultType="User">
         select id,name,password,sex,regist_time registerTime
         from t_users
     </select>
    </mapper>
    

    service层

    package com.blb.service;
    
    import com.blb.entity.User;
    
    import java.util.List;
    
    public interface UserService {
        public List<User> queryUsers();
    }
    

    controller层

    package com.blb.web;
    
    import com.blb.entity.User;
    import com.blb.service.UserService;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.*;
    
    
    import java.util.List;
    
    @Controller
    public class UserController {
    
     private UserService userService;
        @GetMapping("/users")
        public String queryUsers(Model model){
            System.out.println("queryUsers");
             List<User> users = userService.queryUsers();
             model.addAttribute("users",users);
            return "index";
    
        }
        @GetMapping("/users/{id}")
        public String queryOne(@PathVariable Integer id){
            System.out.println("query users with get :"+id);
            return "index";
    
        }
    
        @PutMapping("/users")
        public String updateUser(@RequestBody User user){
            System.out.println("update user with put: "+user);
            return "index";
        }
        @DeleteMapping("/users/{id}")
        public String deleteOne(@PathVariable Integer id){
            System.out.println("delete one user with delete:"+id);
            return "index";
        }
        @PostMapping("/users")
        public String saveUser(@RequestBody User user){
            System.out.println("save user with post: "+user);
            return "index";
        }
    }
    
    

    jdbc.properties

    jdbc.driver=com.mysql.cj.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/db3?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
    jdbc.username=root
    jdbc.password=123456
    jdbc.init=1
    jdbc.minIdle=1
    jdbc.maxActive=10
    

    配置applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xmlns:util="http://www.springframework.org/schema/util"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop.xsd
           http://www.springframework.org/schema/util
           https://www.springframework.org/schema/util/spring-util.xsd
           http://www.springframework.org/schema/context
           https://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
    
        <!--读取jdbc.properties  配置文件参数化(参数占位符)-->
        <context:property-placeholder location="classpath:jdbc.properties" />
    <!--    集成Druid连接池-->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <!--        基本配置-->
            <property name="driverClassName" value="${jdbc.driver}"></property>
            <property name="url" value="${jdbc.url}"></property>
            <property name="username" value="${jdbc.username}"></property>
            <property name="password" value="${jdbc.password}"></property>
    
    <!--        配置初始化大小,最大,最小-->
            <property name="initialSize" value="${jdbc.init}"></property>
            <property name="minIdle" value="${jdbc.minIdle}"></property>
            <property name="maxActive" value="${jdbc.maxActive}"></property>
    
    <!--         配置获取连接等待超时时间-->
            <property name="maxWait" value="60000"></property>
    
    <!--        配置间隔多久时间才能进行一次检测,检测需要关闭的空闲连接,单位是毫秒-->
            <property name="timeBetweenEvictionRunsMillis" value="60000"></property>
    
    <!--        配置一个连接池中最小生存时间,单位是毫秒-->
            <property name="minEvictableIdleTimeMillis" value="300000"></property>
        </bean>
    
        <!--        生产sqlsessionFactory-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <!--        注入连接池-->
            <property name="dataSource" ref="dataSource"></property>
            <!--        注入Mapper文件信息,如果映射文件和Mapper接口,同包且同名,则此配置可以省略-->
            <property name="mapperLocations">
                <list>
                    <value>classpath:com/blb/dao/*.xml</value>
                </list>
            </property>
            <!--         定义别名-->
            <property name="typeAliasesPackage" value="com.blb.entity"></property>
        </bean>
    
        <bean id="MapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <!--        dao接口所在的包,如果有多个包逗号或分号分隔-->
            <!--        <property name="basePackage" value="com.a.dao,com.b.dao"></property>-->
            <property name="basePackage" value="com.blb.dao"></property>
            <!--        如果工厂只有一个sqlsessionfactory的bean此配置可以省略-->
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
        </bean>
    
        <context:component-scan base-package="com.blb" use-default-filters="true">
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        </context:component-scan>
    
        <!--    引入一个事务管理器,其中依赖DataSource,借以获取连接,进而控制事务逻辑-->
        <bean id="tx" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
    
        <!--告知spirng@transactional在制定事务时基于tx= DataSourceTransactionManager   -->
        <tx:annotation-driven transaction-manager="tx"></tx:annotation-driven>
    
    </beans>
    

    logback配置文件

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <!-- 添加输出器(追加器) 作用:日志在什么地方进行输出
         ch.qos.logback.core.ConsoleAppender:向控制台进行打印输出
         -->
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <!-- encoder:编码-->
            <encoder>
                <!-- pattern:规定日志输出的格式
                    %d{HH:mm:ss.SSS}:开头的时间
                    [%thread]:输出线程的名称
                    %-5level:日志的级别 -5表示按5个字符右对齐
                    %logger{36}:表示那个类进行日志输出 36:这段字符串最多允许36个字符串,超过则会用简写的方式输出
                    -%msg:具体日志输出的内容
                    %n:换行
                -->
                <pattern>[%thread] %d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
    
        <!-- 日志打印的根标签 level:日志输出级别-->
        <root level="debug">
            <!-- 引用appender name="console" 在日志输出的过程中会,只要是等于debug级别或以上都会按照 appender name="console"的格式进行打印-->
            <appender-ref ref="console"/>
        </root>
    </configuration>
    

    有时候如果没配置好代码格式在xml里面写中文注释,即使注释了也可能报错,XML文件存在中文注释报错问题( 3 字节的 UTF-8 序列的字节 3 无效),如果出现类似的问题直接把注释都删了试一下

    展开全文
  • ssm框架是spring,spring mvc,mybatis三大框架的整合,是现在主流的框架。使用maven构建工具整合这三个框架非常容易,如果大家下载后有什么问题或错误欢迎留言评论,谢谢
  • Maven整合SSM框架开发流程

    千次阅读 2021-11-11 18:19:40
    一、SSM各部分负责的功能 SpringMVC:负责MVC设计模式的实现。也就是客户端与Java程序...二、Maven整合SSM过程 1、创建maven工程 2、在pom,xml中添加相关的依赖 <dependencies> <!-- Spring.

    一、SSM各部分负责的功能

    SpringMVC:负责MVC设计模式的实现。也就是客户端与Java程序之间的交互

    Mybatis:负责数据持久层的实现。也就是Java程序与数据库的交互

    Spring:负责管理SpringMVC和Mybatis相关对象的创建和依赖注入,同时将我们写的类交给Spring来管理

    二、Maven整合SSM过程

    1、创建maven工程

    2、在pom,xml中添加相关的依赖

    <dependencies>
      <!-- SpringMVC依賴  -->
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.0.11.RELEASE</version>
      </dependency>
    ​
      <!--   Spring JDBC -->
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.0.11.RELEASE</version>
      </dependency>
    ​
      <!-- Spring AOP -->
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>5.0.11.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>5.0.11.RELEASE</version>
      </dependency>
    ​
      <!-- Mybatis -->
      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.5</version>
      </dependency>
    ​
      <!--Mybatis整合Spring-->
      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>1.3.1</version>
      </dependency>
    ​
      <!--   Mysql驱动 -->
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.11</version>
      </dependency>
    ​
      <!--    C3P0连接池  -->
      <dependency>
        <groupId>c3p0</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.1.2</version>
      </dependency>
    ​
      <!--  JSTL  -->
      <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
      </dependency>
    ​
      <!--    ServletAPI-->
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
      </dependency>
      <!-- 单元测试-->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
      </dependency>
    </dependencies>

    3、web.xml中配置SpringMVC、Spring、字符编码过滤器、加载静态资源。

    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    ​
    <web-app>
      <display-name>Archetype Created Web Application</display-name>
      <!-- 启动Spring -->
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring.xml</param-value>
      </context-param>
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      
      <!-- 配置SpringMVC -->
      <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springmvc.xml</param-value>
        </init-param>
      </servlet>
      <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
      
      <!--  配置字符编码过滤器-->
      <filter>
        <filter-name>characterEncodingFilter</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>
      </filter>
      <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      
      <!-- 加载静态资源-->
      <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.js</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.css</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.jpg</url-pattern>
      </servlet-mapping>
    </web-app>

    4、在spring.xml中配置Mybatis和Spring的整合

    <?xml version="1.0" encoding="UTF-8" ?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
                    http://www.springframework.org/schema/spring-beans.xsd"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:p="http://www.springframework.org/schema/p">
    ​
        <!--  整合Mybatis -->
        <!-- 配置数据库连接池信息-->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <!--数据库用户名-->
            <property name="user" value="root"/>
            <!--数据库连接密码-->
            <property name="password" value="123456"/>
            <!--数据库连接url地址-->
            <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/develop"/>
            <!--数据库驱动-->
            <property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>
            <!--MySQL驱动版本6.0以下使用-->
            <!--<property name="driverClass" value="com.mysql.jdbc.Driver"/>-->
            <!--初始化连接数-->
            <property name="initialPoolSize" value="5"/>
            <!--最大连接数-->
            <property name="maxPoolSize" value="10"/>
        </bean>
    ​
        <!-- 配置Mybatis  SqlSessionFactory  -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <!-- 指定数据源-->
            <property name="dataSource" ref="dataSource"/>
            <!-- 指定mapper文件的路径 -->
            <property name="mapperLocations" value="classpath:com/chen/repository/*.xml"></property>
            <!-- 指定mybatis的全局配置文件位置 -->
            <property name="configLocation" value="classpath:mybatisConfig.xml"/>
        </bean>
    ​
        <!--配置扫描路径:扫描自定义的mapper接口-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.chen.repository"/>
        </bean>
    </beans>

    5、在mybatisConfig.xml中配置一些Mybatis的辅助信息,比如打印SQL等。

    <?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>
        <settings>
            <!--打印SQL-->
            <setting name="logImpl" value="STDOUT_LOGGING"/>
        </settings>
        <typeAliases>
            <!--指定一个报名,Mybatis会在包名下搜索需要的JavaBean-->
            <package name="com.chen.entity"/>
        </typeAliases>
    </configuration>

    6、配置springmvc.xml

    <?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:mvc="http://www.springframework.org/schema/mvc"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:p="http://www.springframework.org/schema/p"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
                    http://www.springframework.org/schema/spring-beans.xsd
                    http://www.springframework.org/schema/mvc
                    http://www.springframework.org/schema/spring-mvc-4.0.xsd
                    http://www.springframework.org/schema/context
                    http://www.springframework.org/schema/spring-context.xsd">
    ​
        <!--  启动注解驱动  -->
        <mvc:annotation-driven/>
    ​
        <!--  扫描业务代码  -->
        <context:component-scan base-package="com.chen"/>
    ​
        <!-- 配置视图解析器   -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!--前缀-->
            <property name="prefix" value="/"/>
            <!--后缀-->
            <property name="suffix" value=".jsp"/>
        </bean>
    ​
    </beans>

    7、创建数据库表并输入测试数据

    8、编写实体类dao与数据表做ORM映射

    public class Customer {
        private Integer id;
        private String name;
        private Integer age;
    ​
        @Override
        public String toString() {
            return "Customer{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    ​
        public void setId(Integer id) {
            this.id = id;
        }
    ​
        public void setName(String name) {
            this.name = name;
        }
    ​
        public void setAge(Integer age) {
            this.age = age;
        }
    ​
        public Integer getId() {
            return id;
        }
    ​
        public String getName() {
            return name;
        }
    ​
        public Integer getAge() {
            return age;
        }
    }

    9、编写mapping.xml文件

    <?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.chen.repository.CustomerRepository">
        <select id="findAll" resultType="Customer">
            select * from customer;
        </select>
    </mapper>

    10、编写mapper文件与mapping做映射

    public interface CustomerRepository {
        public List<Customer> findAll();
    }

    11、编写服务类接口,方便管理

    public interface CustomerService {
        public List<Customer> findAll();
    }

    12、编写服务类接口实现类

    @Service
    public class CustomerServiceImpl implements CustomerService {
        @Autowired
        private CustomerRepository customerRepository;
    ​
        @Override
        public List<Customer> findAll() {
            return customerRepository.findAll();
        }
    }

    13、编写Controller,映射请求

    @Controller
    @RequestMapping("/customer")
    public class CustomerHandler {
        @Autowired
        private CustomerService customerService;
    ​
        @RequestMapping("/findAll")
        public ModelAndView  findAll(){
            ModelAndView modelAndView = new ModelAndView();
            modelAndView.setViewName("showMessage");
            modelAndView.addObject("list",customerService.findAll());
            System.out.println(customerService.findAll());
            return modelAndView;
        }
    }

    14、编写结果展示页面showMessage.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@page isELIgnored="false" %>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
       <c:forEach items="${list}" var="customer">
           ${customer.id}-----${customer.name}--------${customer.age}<br>
       </c:forEach>
    </body>
    </html>

    15、将项目部署到tomcat上去

     

     

     

    16、启动Tomcat,访问http://localhost:8080/SSMProject_war/customer/findAll

    也可以在部署项目的时候修改项目的根路径

     

    重启Tomcat服务器,访问地址http://localhost:8080/SSMProject_war/customer/findAll改为http://localhost:8080/customer/findAll

    三、启动服务器运行时可能出现的问题

    1、mapper接口与mapping.xml配置文件无效绑定问题。

    使用maven或Jenkins打包部署到远程服务器上时出现的绑定错误,异常信息为: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

    首先,给定的异常提示信息并不精准,有多个错误原因都会抛出该异常。mybatis出现这个问题,通常是由Mapper interface和对应的xml文件的定义对应不上引起的,这时就需要仔细检查对比包名、xml中的namespace、接口中的方法名称等是否对应。

    我之前就因为称忘记在xml标签的id属性中添加方法名或写错方法名而出现这个错误。

    出现这个错误时,按以下步骤检查一般就会解决问题: 1:检查xml文件所在package名称是否和Mapper interface所在的包名一一对应; 2:检查xml的namespace是否和xml文件的package名称一一对应; 3:检查方法名称是否对应; 通过使用maven构建项目,并将项目war包部署到Tomcat时里面缺少Mapper对应的xml文件,也就是没有把xml文件打包进去。解决办法是,在pom.xml文件中的build标签中添加如下代码,显示的强制将xml文件打到war包中:

    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
    </resources>

    2、解决无法获取数据库连接 java.sql.SQLException: Connections could not be acquired from the underlying database

    由于使用的mysql是5.6.24版本,而在pom.xml中配置的是版本是8.0.11,导致驱动版本与mysql版本不一致出现无法获取sql的底层连接

    修改驱动版本为当前MySQL版本以下即可解决

    <!-- Mysql驱动 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <!-- <version>8.0.11</version>-->
      <!--注意要与当前mysql版本对应:当前使用mysql版本为5.6.24,使用8.0.11版本驱动导致报错(无法从底层数据库获取连接)
      修改为5.1.49版本或以下版本即可解决问题-->
      <version>5.1.49</version>
    </dependency>

    但是此时要注意修改spring.xml中的数据库驱动信息

    <!--数据库驱动-->
    <property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>
    <!--MySQL驱动版本6.0以下使用-->
    <!--<property name="driverClass" value="com.mysql.jdbc.Driver"/>-->

    MySQL6之后的版本都是要指定时区serverTimezone的

    spring: datasource: driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://192.168.0.100:3306/easyexcel?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false username: root password: 123456

    3、控制台输出的SQL语句出现中文乱码

    首先修改IDEA的编码格式为UTF-8

    其次修改Tomcat的参数编码格式为UTF-8:-Dfile.encoding=UTF-8

    然后重启Tomcat即可

    展开全文
  • 基于osgi整合ssm框架开发web项目,使用ssm注解的方式开发,缺少两个jsp文件,能运行
  • SSM框架整合(maven项目)

    2018-08-27 17:26:57
    今天给大家整合了maven项目的项目整合,开发工具使用的是myeclipse2017版本,还没测试能否在eclipse中运行,不过顶多是环境的小问题,配置一下pom.xml就可以了,在该项目中,使用ssm框架,在里面写了一个测试类,...
  • 问题复现 这是我的项目目录 试了各种路由 在网上百度, 确定我的xml文件配置没有任何问题, 那问题就玄学了,直到 直到在一次启动tomcat 成功他自己跳出访问页面 终于发现为什么访问不到路径了!!! 那么问题...

    问题复现

    这是我的项目目录
    在这里插入图片描述
    试了各种路由
    在这里插入图片描述
    在这里插入图片描述

    在网上百度,
    确定我的xml文件配置没有任何问题,
    那问题就玄学了,直到
    直到在一次启动tomcat 成功他自己跳出访问页面
    终于发现为什么访问不到路径了!!!

    在这里插入图片描述

    那么问题来了,既然不是玄学问题,那这个路径是什么来的呢?

    查看运行编译后的文件
    在这里插入图片描述
    咦 artifacts 好像在配置tomcatServer的时候见过

    所以问题的解决方案就是

    在这里插入图片描述
    1、将上图 Application context的默认配置 改成 /
    2、删除编译产生的out文件夹和target文件夹
    3、重启tomcat

    默默哭泣T。T

    展开全文
  • 整合ssm框架

    2022-03-25 22:05:28
    整合ssm框架 首先查看我们的环境: IDEA MySQL 8.0.28 tomcat 9 Maven 3.6.1 这里我们整合的是一个书籍的增删改查通过ssm框架 数据库环境 一、创建一个存放书籍数据的数据库表:ssmbuild
  • 在学习SSM框架的途中遇到的一些常见问题和解决办法
  • SSM框架整合-404

    2022-05-29 20:36:30
    整合SSM框架时,需要在web.xml文件中配置分发器。如果不配置分发器,就会导致请求无法找到对应的action,最终报404错误。 需要在web.xml文件中做如下配置: <?xml version="1.0" encoding="UTF-8"?> <web...
  • SSM框架的一些常见问题

    千次阅读 2019-01-04 16:47:03
    Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。 SpringMVC SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是...
  • 最近开始学习Shiro,记录一下Shiro整合SSM的步骤,期间也碰到许多小问题,和大家分享一下。 开发工具:IDEA Demo框架:Spring+SpringMVC+Mybatis+Maven 1.添加Shiro相关jar包,Demo是使用Maven管理,在pom.xml添加...
  • IDEA+Maven 整合SSM框架实现简单的增删改查的详细安装流程可参考下面的博客 添加链接描述 这里整合可能会出现的一些问题。 1,按照上面教程,一步步的创建文件,然后把代码复制进去,建议所有文件名都跟教程一样...
  • ssm框架整合

    2018-11-09 14:46:37
    做开发的同学们,对于ssm框架整合,面对于目前的3大框架遇到的问题
  • 因此整合了基础的ssm框架,方便大家学习或者快速上手开发 BaseSSM解决了返回数据中文乱码的问题项目文末下载 (二)项目结构 接下来让我们开一下这个项目的整体结构 (三)创建项目 eclipse新建普通web项目 现在...
  • ssm框架的完美整合,结合mysql数据库和restful风格的增删改查,其中restful是什么自行百度,这是我解决了许多问题,自行创建的第一个工程,其中的艰辛不足为外人道也。
  • 404页面报错一般是路径问题,在web.xml里面看下路径是否正确 web-inf下面的web文件都是受保护的,所以在登录页面前我们要记得加上上一级目录。 这是jsp的前缀登录路径,具体下面哪个后缀在配置文件里面spring-mvc....
  • 今天学习了SpringBoot,用SpringBoot的方式整合SSM框架,真的是非常的简化,XML文件基本都不用配置了.就在yml文件中配置了端口和datasource和mybatis,logging. 具体看自己的需要,着实是将开发简化了不少.xml文件报错...
  • 进行SSM框架整合时,3个框架的分工如下所示。 1.MyBatis负责与数据库进行交互。 2.Spring负责事务管理,Spring可以管理持久层的Mapper对象及业务层的Service对象。由于Mapper对象和Service对象都在Spring容器中,...
  • ssm整合
  • 错误1:dependency org.springframwork:spring-core RELEASE NOT found 解决方案:光标放在报错的...错误2: 错误3 ... 错误4 pom.xml文件报错 在新建maven文件时,没添加这句,这句话可以更加快速的下载maven文件包 ......
  • SSM框架整合思路

    2021-03-13 15:29:52
    文章目录一、新建数据库表二、新建Maven项目三、配置`pom.xml`添加依赖配置静态资源导出问题编码问题四、整合Mybatis1、为数据库表创建实体类编写实体类`Books`2、编写dao层编写接口`BooksMapper`编写映射文件`...
  • 1字节的UTF-8序列的字节1无效 解决方法,在pom.xml添加下列代码 此外,有一些常见的错误问题,大多是版本不一致导致,需要降低jdk版本,在maven中降低spring包的版本。
  • ssm框架整合(使用eclipse开发工具)

    千次阅读 2022-04-27 15:33:18
    ssm整合案例 一、新建maven工程 如果有如下报错 处理方式 右键项目名,如图 报错消失,新建完成 插入一个其他可能会遇到的问题,web.xml文件的web-app那里报错 如图:(没报错的话可以直接跳到下一步添加...
  • dispatcherServlet / 字符编码过滤器中要多加一个星号 characterEncodingFilter /* 3)SSM整合其实只要整合Spring和Mybatis就行,因为SpringMVC是Spring的一个组件 4)Spring中需要配置数据源和会话工厂,写包名...
  • 零、事实上我是写完第七步后才想起没有配置数据库的,我使用SQLyog工具...八、最后附整合文档在根目录,内有更详细的教程,本人将pom文件里面的jar版本都更到最新了,所以如标题所写2018年5月最新maven项目SSM框架整合
  • 一个整合SSM框架的高并发和商品秒杀项目,学习目前较流行的Java框架组合实现高并发秒杀API 项目环境的搭建 操作系统 : Ubuntu 16.04 IDE :IntelliJ IDEA 2019.2.5 x64 用Eclipse也一样的,工具时靠人用的 JDK : JDK...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,824
精华内容 6,329
热门标签
关键字:

整合ssm框架常见的问题