SSM整合总结

article/2025/10/28 2:05:21

这几天学完spring,springMVC,mybatis后,这两天试着去整合ssm,整合过程并不顺利,一是基础知识有的忘了,细节不能把握住,造成各种报错.看了各种视频,翻阅各种文章,多多少少总算成功了。

一.首先项目搭建工作

 

创建好后 在pom.xml设置打包方式为 war(记得刷新maven)

 

然后下面我们要做的就是搭建起我们的web项目目录和一些配置了

然后进去后按箭头找到

 

 

 

 

 

 这样我们的项目结构就搭建完成了

二.导入项目所依赖的包

    <dependencies><!--    servlet包   --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!--    spring相关包   --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.16</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.19</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.18</version></dependency><!--    连接接数据库的包   --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.20</version></dependency><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency><!--        mybatis与spring整合相关的包--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.6</version></dependency></dependencies>

三.整合SSM

1.这里我先创建所需要的包,然后填充接口和实现类。

1.1 我们先创建实体类Book.class

(实体类与数据库相对应,这里我就不细说数据库了)

package com.localhost.pojo;public class Book {int bookId;String bookName;float bookPrice;String bookDetail;public Book() {}public Book(int bookId, String bookName, float bookPrice, String bookDetail) {this.bookId = bookId;this.bookName = bookName;this.bookPrice = bookPrice;this.bookDetail = bookDetail;}public int getBookId() {return bookId;}public void setBookId(int bookId) {this.bookId = bookId;}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}public float getBookPrice() {return bookPrice;}public void setBookPrice(float bookPrice) {this.bookPrice = bookPrice;}public String getBookDetail() {return bookDetail;}public void setBookDetail(String bookDetail) {this.bookDetail = bookDetail;}@Overridepublic String toString() {return "Book{" +"bookId=" + bookId +", bookName='" + bookName + '\'' +", bookPrice=" + bookPrice +", bookDetail='" + bookDetail + '\'' +'}';}
}

 1.2 然后创建mapper接口(这里只创建了一个方法)

BookMapper

package com.localhost.mapper;import com.localhost.pojo.Book;
import java.util.List;public interface BookMapper {//     查询所有书籍public List<Book> queryAllBook();}

 1.3 创建service层的接口与实现类

  BookService

package com.localhost.service;import com.localhost.pojo.Book;
import java.util.List;public interface BookService {//     查询所有书籍public List<Book> queryAllBook();
}

BookServiceImp

package com.localhost.service;import com.localhost.mapper.BookMapper;
import com.localhost.pojo.Book;import java.util.List;public class BookServiceImp implements BookService {BookMapper bookMapper;@Overridepublic List<Book> queryAllBook() {return bookMapper.queryAllBook();}
}

至此,我们的接口与类先创建到此处 

 

2.搭建mybatis框架

2.1创建Mybatis的配置文件

 2.2创建bookMapper接口对应的bookMapper.xml

注:我的bookMapper.xml的路径在resources -> com -> localhost -> mapper目录下(如图创建目录)

 

 

2.3配置mybatis-config.xml(设置连接数据库的信息和配置mappers)

 2.4 进行测试

正常输出

3.我们再搭建spring框架

3.1创建spring-config.xml 并开启扫描 

3.2 注解创建对象并进行测试

 图中注释掉bookMapper是因为spring和mybatis还没有整合,bookMapper对象还没有正常创建

3.3编写测试类

 

测试正常

4.spring和mybatis进行整合

整合过程中,配置数据源的部分交给spring去做,mybatis-config.xml仅仅保留如图所示内容

1.1 spring-config.xml文件中

<?xml version="1.0" encoding="UTF8"?>
<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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="com.localhost"/><!--    设置数据源头--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="com.mysql.jdbc.Driver"/><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/bookStore"/><property name="user" value="root"/><property name="password" value="pass123"/></bean><!--    声明事物--><bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!--    以下部分用来整合spring和mybatis,这样service才能注入dao对象--><!--   声明mybatis的扫描器,创建dao对象--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><property name="basePackage" value="com.localhost.mapper"/></bean><!--声明SqlSessionFactoryBean 创建sqlSessionFactory--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/>
<!--
这里注释掉的 configLocation 不知道为什么没有起到作用,加载不了mybatis-config.xml,
我用了mapperLocations来代替mybatis-config.xml的<mappers> 发现可以了,
希望大家在这点能在评论区指导指导我
-->
<!--        <property name="configLocation" value="classpath:mybatis-config.xml"/>--><property name="mapperLocations" value="classpath:com/localhost/mapper/*.xml" /></bean></beans>

 此时service可以注入mapper对象

1.2 测试

 解开前面的注释掉的内容,导入dao层对象

正常运行,至此spring与mybatis整合完成  (或许大家留意到,这个整合方式,完全可以不用mybatis-config.xml文件) 

4.搭建springMVC框架

1.1 编写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.xml文件,而我们的controller层需要调用service,service需要调用dao层对象
如果没有加载spring的配置文件,即spring-config.xml,则这些完成不了,
因此我们要使用监听器,当服务器启动时,让监听器去加载spring-config.xml
--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--设置配置文件路径--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-config.xml</param-value></context-param><!--    注册前端控制器DispatcherServlet--><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><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--    注册处理字符的过滤器--><filter><filter-name>encodingFilter</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>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>

1.2 编写springMVC.xml

<?xml version="1.0" encoding="UTF8"?><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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"><!-- 仅仅扫描Controller的类 其他类对象由spring容器进行管理--><context:component-scan base-package="com.localhost"><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><!--    配置试图解析器--><bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/myView/"/><property name="suffix" value=".jsp"/></bean><!--开放对静态资源的访问--><mvc:default-servlet-handler/><!--开启mvc注解驱动--><mvc:annotation-driven/></beans>

 注意controller注解类的对象交给pringMVC容器进行管理,spring容器就不需要对controller注解类的对象进行管理了,所以我们把spring-config.xml的注解扫描改成如下

    <context:component-scan base-package="com.localhost"><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan>>

5.至此,ssm整合完毕,下面编写controller进行测试

index.html没写东西,我们直接在地址栏输入http://localhost:8080/SSM_demo/allBook

 运行结果如图

这些是我分享的关于ssm整合的过程,希望能够帮助到大家,欢迎大家在评论区多多指导。

主要参考文章:(91条消息) 手把手教你 SSM 整合(非常非常非常非常非常详细)_风吹走了我脑壳后面的秀发的博客-CSDN博客_ssm整合

 


http://chatgpt.dhexx.cn/article/0ZlvoufW.shtml

相关文章

SSM整合shiro

1.完成ssm整合shiro 企业中老项目还在使用ssm框架。 准备数据库 数据结构 张三 -user:query user:add user:update user:delete 李四 ---》user:query user:add user:update 王五-----》user:query user:export 搭建ssm的环境 &#xff08;1&#xff09;创建一个maven的web工…

SSM整合

1、ssm整合原理 SSM框架是spring MVC &#xff0c;spring和mybatis框架的整合&#xff0c;是标准的MVC模式&#xff0c;将整个系统划分为表现层&#xff0c;controller层&#xff0c;service层&#xff0c;DAO层四层。 使用spring MVC负责请求的转发和视图管理 spring实现业…

SSM整合,手把手教程,详解思路讲解

前言 一&#xff0c;工程创建 1.新建Maven项目&#xff0c;项目架构增加web支持 2.Maven本地仓库配置 3.集成Tomcat&#xff0c;搭建web环境 二&#xff0c;导入依赖 三&#xff0c;配置文件编写 1.web环境配置文件 2.spring整合环境配置文件 2.1 controller层(spring…

SSM整合完整流程讲解

目录 一、SSM整合说明 1、各个框架担任的角色 2、两个Ioc容器的创建顺序 1&#xff09;SpringMVC中IOC容器的创建时间 2&#xff09;Spring中IOC容器的创建时间 3&#xff09;Spring提供的监听器ContextLoaderListener 二、SSM整合步骤 1、准备工作 1&#xff09;导入…

Unresolved Dependencies

在Android Studio的开发中&#xff0c;在软件中集成了ButterKnife插件&#xff0c;另外需要集成ButterKnife的jar包。因为本地没有现成的&#xff0c;所以在module的build.gradle文件中添加了如下代码&#xff1a; compile com.jakewharton:butterknife:7.0.1 结果报了如下错误…

Pycharm 出现Unresolved reference ‘‘ 错误的解决方法 --- 亲测有效

在用Pycharm写项目的时候的时候碰到一个很无语的问题 路径明明没有问题&#xff0c;运行也没有出错&#xff0c;但就是爆红&#xff0c;逼死强迫症啊。。。 多方查找最后解决了。步骤如下&#xff1a; File–>Settings–>Project Structure–>找到问题目录–>Sou…

PyCharm错误提示- Unresolved reference 的解决

使用PyCharm加载工程时,发生解析错误 原本这个工程是可以通过 python manange.py runserver 方式运行的,说明文件是正常的。关键在于PyCharm环境的问题。 查找了半天,安装一些网上的解决方式,尝试了以下几种方式: 1,修改忽略文件 File –>Settings –>Editor –…

Goland 提示 Unresolved reference 错误解决

之前一直正常的项目&#xff0c;莫名其妙的 database/sql 包下的方法、结构体等等IDE都无法识别&#xff0c;出现一堆Unresolved reference错误提示&#xff0c;但包导入路径可以正确定位&#xff0c;而且项目运行也正常&#xff0c;其他包都正常&#xff0c;另一个项目下同样使…

error LNK2019: unresolved external symbol

error LNK2019: unresolved external symbol&#xff1a;链接器找不到所需要的东西 此时ctrlF7进行编译&#xff0c;没有报错&#xff0c;在这个程序中调用的是Log函数&#xff0c;我们实际上并没有这个函数&#xff0c; 我们有的函数是Logr函数&#xff0c;在编译过程中编译器…

Unresolved reference ‘matplotlib‘解决方法

首先打开最左边的file-settings 然后点这个添加 找想添加的 最后点最下面的install Package 就可以啦

快速解决Pycharm中unresolved reference

在用Pycharm时老是报红&#xff0c;虽然不影响运行&#xff0c;但是真的很不好看。 如下&#xff1a; 根据网上大部分教程设置source root&#xff0c;设置之后还是没有变化。 然后我发现了这个东西&#xff0c;真的是立即生效&#xff0c;就是不知道改了之后有没有什么后遗症…

解决unresolved symbol _RamfuncsLoadEnd

问题描述 移植大佬的文件之后&#xff0c;发现报错 问题解决 添加F28335.cmd到工程中

Redisson cannot use an unresolved DNS server address问题解决

概述 本文记录Mac IDEA开发&#xff0c;公司 远程办公时遇到的两个问题&#xff0c;记录一下。 问题 cannot use an unresolved DNS server address: [fe80::1%en0]:53 在家里&#xff0c;连上公司的VPN后&#xff0c;即可打开公司内网&#xff0c;远程办公。一切正常。某…

解决模块Unresolved Link问题

修改内容为下面的&#xff0c;请复制以下内容&#xff08;图中大小写有误&#xff09;&#xff01;&#xff01; Solver_SF/CarSim S-Function 此时就可以修改Simfile name了

c语言1 unresolved externals,出现了 unresolved external symbol _main和1 unresolved externals这是什么问题?...

满意答案 nyjspj 2014.01.18 采纳率&#xff1a;53% 等级&#xff1a;12 已帮助&#xff1a;5918人 {} 数量不匹配 #include #include "process.h" #include "stdio.h" #include "sqstack.h" template void convert(T n,T m) { T e; char c; …

AndroidStudio Unresolved reference

在学习Kotlin过程中&#xff0c;出现了两次在activity_main.xml中已注册id&#xff0c;但是在MainActivity.kt中无法找到该Button的情况。 后面发现是没有在build.gradle中导入 kotin-android-extensions’的包&#xff0c;导致无法 import kotlinx.android.synthetic.main.a…

Unresolved reference ‘SQLAlchemy‘

引用不到包的问题&#xff1b;setting已经添加了&#xff0c;外面是是报错 最后直接用pip下载包 pip install flask_sqlalchemy 就ok了

PyCharm报错Unresolved Reference

两台不同的电脑&#xff0c;开发相同的软件时&#xff0c;一台电脑总是报错Unresolved Reference&#xff0c;解决办法如下&#xff1a;

Goland Unresolved dependency问题解决

Goland Unresolved dependency 每次新建项目都会遇到这个提示&#xff0c;明明安装依赖包了&#xff0c; 能用&#xff0c;就是爆红。 解决办法是在 Goland 设置里将 Go Modules 开启即可。

Unresolved reference: BR

我遇到的问题是JDK版本过新导致的找不到资源 在Android studio Fox版本里默认是jdk11改为1.8即可成功编译