SSM框架原理以及流程
SSM框架原理以及流程
- 一:原理
- 二:开发流程
- 1.新建maven项目
- 2.配置整合文件
- 2.1 配置pom.xml文件---引入依赖
- 2.2 配置web.xml文件
- 2.3 配置springmvc
- 2.4 配置mybatis
- 3.java代码---测试
一:原理
1.springmvc:
1).客户端发送请求到DispacherServlet(分发器)
2).由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller
3).Controller调用业务逻辑处理后,返回ModelAndView
4).DispacherSerclet查询视图解析器,找到ModelAndView指定的视图
5).视图负责将结果显示到客户端
2.spring
平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们Java中的类,当然也包括service dao里面的),有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字new。另外spring的aop,事务管理等等都是我们经常用到的。
3.Mybatis
mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
4.各项作用:
SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层
使用spring MVC负责请求的转发和视图管理
spring实现业务对象管理,mybatis作为数据对象的持久化引擎
二:开发流程
1.新建maven项目
2.配置整合文件
2.1 配置pom.xml文件—引入依赖
<properties><project.spring.version>5.3.9</project.spring.version></properties><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${project.spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${project.spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${project.spring.version}</version><scope>test</scope></dependency><!-- mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.25</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.6</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.32</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.32</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.6</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.20</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.4</version></dependency></dependencies>
2.2 配置web.xml文件
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/mybatis/spring-*.xml</param-value></context-param><!-- 启动业务loc容器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 启动mvc容器 --><servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><!-- springmvc文件位置 --><param-value>classpath:spring/mvc/springmvc-*.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springDispatcherServlet</servlet-name><url-pattern>/*</url-pattern></servlet-mapping>
2.3 配置springmvc
<!-- 扫描位置 --><context:component-scan base-package="com.dyit.ssm.entity"/><!-- 静态资源放行 --><mvc:resources location="static/" mapping="static/**"/><!-- 驱动注解 --><mvc:annotation-driven/>
2.4 配置mybatis
1).配置spring-mybatis.xml
<!-- 管理范围 --><context:component-scan base-package="com.dyit.ssm"><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan><context:property-placeholder location="classpath:spring/mybatis/druid/druid.properties"/><!-- 数据源 --><bean id="dataSource"class="com.alibaba.druid.pool.DruidDataSource"><property name="url" value="${druid.url}" /><property name="username" value="${druid.username}" /><property name="password" value="${druid.password}" /><property name="driverClassName" value="${druid.driver}" /></bean><!-- 容器创建SqlSessionFactory --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="typeAliasesPackage" value="com.dyit.ssm.entity"/><property name="mapperLocations" value="classpath:spring/mybatis/mapper/*.mapper.xml"/></bean><!-- 配置接口 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.dyit.ssm.mapper"/><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/></bean><!-- 事务 --><bean id="txManger" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!-- 让spring管理起来 --><tx:annotation-driven transaction-manager="txManger"/>
2).配置druid.properties 数据源(数据库相关配置)
druid.url=jdbc:mysql://192.168.1.8:3306/book_db?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
druid.username=root
druid.password=12345
druid.driver=com.mysql.cj.jdbc.Driver
3.配置Book.mapper.xml(数据库的映射类)
在此我以数据库的 增删改查 为例
<mapper namespace="com.dyit.ssm.mapper.IBookMapper"><sql id="findAllBook">SELECT * FROM book_tab</sql><resultMap type="Book" id="BookMap"><id property="id" column="book_id" /><result property="title" column="book_title" /><result property="price" column="book_price" /><result property="author" column="book_author" /></resultMap><insert id="save">INSERT INTO book_tab(book_title,book_author,book_price)VALUES(#{title},#{author},#{price})</insert><delete id="deleteById">DELETE FROM book_tab WHERE book_id=#{id}</delete><insert id="update">UPDATE book_tab SET book_title=#{title},book_author=#{author},book_price=#{price}WHERE book_id=#{id}</insert><select id="findAll" resultMap="BookMap"><include refid="findAllBook" /></select></mapper>
3.java代码—测试
1)写实体类
@Alias("Book") //别名
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Book {private Integer id; //idprivate String title; //书名private double price; //价格private String author; //作者}
2)写mapper类–对数据库的操作接口
@Mapper
public interface IBookMapper {void save(Book book); //添加void deleteById(int id); //根据id删除void update(Book book); //修改List<Book> findAll(); //全查询
}
3)写service接口
public interface IBookService {void save(Book book); //添加void deleteById(int id); //根据id删除void update(Book book); //修改List<Book> findAll();}
4)写service接口的实现类
@Service
public class BookServiceImpl implements IBookService{@Autowiredprivate IBookMapper mapper; //注入mapper@Overridepublic void save(Book book) { mapper.save(book);}@Overridepublic void deleteById(int id) {mapper.deleteById(id);}@Overridepublic void update(Book book) {mapper.update(book);}@Overridepublic List<Book> findAll() {return mapper.findAll();}}
5)写service测试类
@RunWith(SpringJUnit4ClassRunner.class) //测试注解
@ContextConfiguration(locations = "classpath:spring/mybatis/spring-mybatis.xml") //控制文件路径
public class ssmTest {@Autowiredprivate IBookService ibs; //注入service@Testpublic void testSave() { //添加ibs.save(new Book(4, "西游外传", 66.66, "孙悟空"));}@Testpublic void testDeleteById() { //删除ibs.deleteById(2);;}@Testpublic void testUpdate() { //修改ibs.save(new Book(4, "西游前传", 88.66, "唐三藏"));}@Testpublic void testFindAll() { //全查询System.out.println(ibs.findAll());}}
6.以添加图书为例查看测试结果展示
注:因没有写日志配置类,故报红
成功添加进数据库
SSM框架原理以及流程相关推荐
- ssm企业任务流程管理毕业设计-附源码221533
摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理.由于现在网络的发达,企业 ...
- SSM框架原理【超级详细】
一.什么是SSM框架? SS框架是Sprng.Spring MVC .和Mybatis框架的整合,是标准的MVC模式.标准的SSM框架有四层,分别是dao层(mapper),service层,cont ...
- SSM 框架原理简介及解析
简介 ssm框架就是标准的MVC模式,标准的SSM框架有四层,分别是dao层.service层.controller层和View层. 使用spring实现业务对象管理, 使用spring MVC负责请 ...
- ssm框架搭建流程及原理分析
这几天自己想搭建个ssm框架玩一下,有些东西长时间不玩都给忘了,所以自己把整个流程整理了一下,只要跟着步骤,就能顺利完成ssm框架的搭建. 一.搭建步骤: 1.整理jar包 2.对于一个we ...
- SSM框架的流程及优点
SSM框架 SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容).在这个快速发展的互联经济 ...
- 【转】SSM框架搭建流程与解析
SpringMVC部分 1 引入Jar spring-context spring-webmvc 2 web.xml中 配置 核心拦截器 DispatchServlet <servlet& ...
- 微信前台WEUI前台实例+EXCEL导出,SSM框架完整流程
此博客引用css和js下载地址: https://download.csdn.net/download/linsa_pursuer/10479055 1.EXCEL工具类(导入jar包poi) pac ...
- 最完整的SSM框架搭建流程
1.新建一个Maven项目 这里以Idea工具为例,打开IDEA,然后File->New->Project ->Maven->Create from archetype. 2. ...
- Ssm框架实现的学生信息管理系统
此篇为大家推荐的是一款基于SSM框架实现的学生信息管理系统 算是我们带大家入门SSM框架的实战项目,项目涉及到的知识点都是SSM框架最基本的知识,我们的思路是从简单到困难,难度不断升级,所以后面关于S ...
- SSM+基于java的企业任务流程管理系统开发 毕业设计-附源码221533
ssm企业任务流程管理 摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理. ...
最新文章
- 逻辑回归模型(Logistic Regression, LR)基础
- Python正则表达式尽可能小的匹配(遇到第一个结束字符串就停止匹配)
- 对窗口过程函数WndProc()的一点理解
- 还在为xmind发愁,赶紧试试xmind移动版、绿色版
- 【Python数据分析】数据预处理3——数据规约(含主成分分析详解、Python主要预处理函数)
- Ubuntu 20.4 安装 Notepad++
- PCBA加工组装需要的设备有哪些呢?
- 浙大计算机海归教授,科学网—人才引进的“拿来主义”——我看浙江大学海外招聘 - 周波的博文...
- matlabrobert锐化_matlab梯度法中5种图像锐化方法分别对一幅图像实现锐化。
- 增加PRODUCT_BOOT_JARS及类 提供jar包给应用
- Web安全(任意文件下载)
- 使用计算机进入什么状态,装机过程中什么情况要进bios设置?
- 生物老师(搞笑)鼻子和手
- 机器学习:回归分析——基于线性回归的股票预测
- linux 安装Mysql步骤
- 2008北京九华山庄itpub年会有感
- 谷歌浏览器扩展工具---eye dropper取色器使用
- 树莓派超级水冷主机!!!
- CSS控制文字,超出部分显示省略号
- Mercurial修改历史changeset