当前位置: 首页 > news >正文

SpringMVC:整合 SSM 上篇

文章目录

  • SpringMVC - 03
  • 整合 SSM 上篇
  • 一、准备工作
  • 二、MyBatis 层
    • 1. dao 层
    • 2. service 层
  • 三、Spring 层
  • 四、SpringMVC 层
  • 五、执行
  • 六、说明

SpringMVC - 03

整合 SSM 上篇

用到的环境

  • IDEA 2019(JDK 1.8)
  • MySQL 8.0.31
  • Tomcat 8.5.85
  • Maven 3.6.1

一、准备工作

  • 分析需求,准备一个数据库
CREATE DATABASE IF NOT EXISTS `ssmbuild`;use `ssmbuild`;CREATE TABLE IF NOT EXISTS `books`(`bookID` INT(10) NOT NULL AUTO_INCREMENT COMMENT '书ID', `bookName` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '书名', `bookCounts` INT(50) NOT NULL DEFAULT 0 COMMENT '书的数量', `detail` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '描述', PRIMARY KEY(`bookID`)
)ENGINE=INNODB DEFAULT charset=utf8mb4;INSERT INTO `books`(`bookID`, `bookName`, `bookCounts`, `detail`) VALUES 
(1, '高等数学', 2, '第一排第一个'), 
(2, '计算机网络', 5, '第二排第二个'), 
(3, '通信原理', 3, '第一排第三个');
  • 新建一个项目,导入依赖
<dependencies><!-- junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!-- mysql 数据库驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency><!-- 数据库连接池 c3p0 --><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.5</version></dependency><!-- Servlet 依赖 --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><!-- JSP 依赖 --><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version></dependency><!-- JSTL 表达式依赖 --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- MyBatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version></dependency><!-- mybatis-spring --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.6</version></dependency><!-- spring-webmvc --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.18</version></dependency><!-- aspectjweaver --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.6</version></dependency><!-- spring-jdbc --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.23</version></dependency><!-- jackson-databind --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.14.1</version></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</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>
  • 用 IDEA 连接数据库


二、MyBatis 层

外部配置文件

MyBatis 核心配置文件

实体类

1. dao 层

接口

实现类

2. service 层

业务接口:业务一般是和数据库对应的

业务实现类:service 层调 dao 层


三、Spring 层

Spring 整合 dao 层配置文件:spring-dao.xml

  • DriverManagerDataSource:Spring 原生的数据库连接池;
  • ComboPooledDataSource:c3p0 数据库连接池。

Spring 整合 service 层配置文件:spring-service.xml


四、SpringMVC 层

把普通 Maven 项目转为 Web 项目,打开项目结构,添加 lib 目录,添加依赖

配置 web.xml

Spring 整合 controller 层配置文件:spring-mvc.xml

整合 Spring 配置文件,得到 Spring 的最终配置文件:applicationContext.xml

编写控制类

编写页面


五、执行

配置 Tomcat,发布项目,运行


六、说明

整合 SSM 中篇:点此进入
整合 SSM 下篇:点此进入

相关文章:

SpringMVC:整合 SSM 上篇

文章目录 SpringMVC - 03整合 SSM 上篇一、准备工作二、MyBatis 层1. dao 层2. service 层 三、Spring 层四、SpringMVC 层五、执行六、说明 SpringMVC - 03 整合 SSM 上篇 用到的环境&#xff1a; IDEA 2019&#xff08;JDK 1.8&#xff09;MySQL 8.0.31Tomcat 8.5.85Maven…...

BFS解决多源最短路相关leetcode算法题

文章目录 1.01矩阵2.飞地的数量3.地图中的最高点4.地图分析 1.01矩阵 01矩阵 class Solution {int dx[4] {0,0,1,-1};int dy[4] {1,-1,0,0}; public:vector<vector<int>> updateMatrix(vector<vector<int>>& mat) {//正难则反&#xff0c;找0…...

ARM GIC(四) gicv3架构基础

GICv3架构是GICv2架构的升级版&#xff0c;增加了很多东西。变化在于以下&#xff1a; 使用属性层次&#xff08;affinity hierarchies&#xff09;&#xff0c;来对core进行标识&#xff0c;使gic支持更多的core 将cpu interface独立出来&#xff0c;用户可以将其设计在core…...

Kafka日志

位置 server.properties配置文件中通过log.dir指定日志存储目录 log.dir/{topic}-{partition} 核心文件 .log 存储消息的日志文件&#xff0c;固定大小为1G&#xff0c;写满后会新增一个文件&#xff0c;文件名表示当前日志文件记录的第一条消息的偏移量。 .index 以偏移…...

gitattributes配置文件的作用

0 Preface/Foreword 0.1 基本概念 Git版本管控工具功能强大&#xff0c;在使用过程中&#xff0c;在多人合作的项目开发过程中&#xff0c;经常会遇到提交代码时出现的warning提醒&#xff0c;尤其是换行符。 Linux/Unix/Mac OS操作系统的换行符使用LF符号&#xff08;\n&am…...

【华为鸿蒙系统学习】- 如何利用鸿蒙系统进行App项目开发|自学篇

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 创建鸿蒙第一个App项目 项目创建 工程目录区 预览区 运行Hello World 基本工程目录 ws:工程…...

基于SpringBoot的足球社区管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的足球社区管理系统,java…...

ubuntu22.04上安装charles-proxy

在 Ubuntu 22.04 上安装 .tar.gz 格式的 Charles Proxy (charles-proxy-4.6.5_amd64.tar.gz) 需要解压缩文件并运行其中的安装脚本或可执行文件。以下是具体步骤&#xff1a; 1. 下载文件 假设你已经从 Charles Proxy 官网下载了 charles-proxy-4.6.5_amd64.tar.gz 文件。 2…...

(2021|CVPR,XMC-GAN,对比学习,注意力自调制)用于文本到图像生成的跨模态对比学习

Cross-Modal Contrastive Learning for Text-to-Image Generation 公众&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 1. 简介 2. 相关工作 3. 基础 4. 方法 4.1 用于文本到图像…...

【Linux基本命令】

文章目录 一. Linux基本命令第三回二. 结束语 一. Linux基本命令第三回 cal指令&#xff0c;命令格式&#xff1a;cal 【参数】【月份】【年份】 功能&#xff0c;用于查看日历等时间信息&#xff0c;如只有一个参数&#xff0c;则表示年份&#xff0c;有两个参数则表示月份和…...

Wi-Fi、蓝牙、ZigBee等多类型无线连接方式的安全物联网网关设计

随着物联网和云计算技术的飞速发展.物联网终端的数量越来越多&#xff0c;终端的连接方式也更趋多样化&#xff0c;比如 Wi-Fi蓝牙和 ZigBee 等。现有的物联网网关大多仅支持一种或者几种终端的接人方式。无法满足终端异构性的需求。同时&#xff0c;现有的物联网网关与终端设备…...

华清远见嵌入式学习——ARM——作业4

作业要求&#xff1a; 代码运行效果图&#xff1a; 代码&#xff1a; do_irq.c: #include "key_it.h" extern void printf(const char *fmt, ...); unsigned int i 0;//延时函数 void delay(int ms) {int i,j;for(i0;i<ms;i){for(j0;j<2000;j);} }void do_i…...

25. K 个一组翻转链表

题解参考&#xff1a;https://leetcode.cn/problems/reverse-nodes-in-k-group/solutions/10416/tu-jie-kge-yi-zu-fan-zhuan-lian-biao-by-user7208t/ 设置dummy虚拟头节点&#xff0c;pre为待翻转部分的前驱&#xff08;用于连接&#xff09;&#xff0c;end为待翻转部分中的…...

jQuery的事件-动画-AJAX和插件

一、jQuery事件处理 1.认识事件&#xff08;Event&#xff09; Web页面经常需要和用户之间进行交互&#xff0c;而交互的过程中我们可能想要捕捉这个交互的过程&#xff1a; 比如用户点击了某个按钮、用户在输入框里面输入了某个文本、用户鼠标经过了某个位置&#xff1b;浏…...

【开源】基于JAVA语言的企业项目合同信息系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 合同审批模块2.3 合同签订模块2.4 合同预警模块2.5 数据可视化模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 合同审批表3.2.2 合同签订表3.2.3 合同预警表 四、系统展示五、核心代码5.1 查询合同…...

遗传算法的应用——求解一元函数的极值

遗传算法的应用——求解一元函数的极值 1 基本概念2 预备知识3.1 模拟二进制转化为十进制的方法3.2 轮盘赌选择算法 3 问题4 Matlab代码5 运行效果6 总结 1 基本概念 遗传算法(Genetic Algorithm,GA)是模拟生物在自然环境中遗传和进化过程从而形成的随机全局搜索和优化方法&am…...

Power BI 学习

数据获取 数据清洗 对导入的数据进行数据整理的过程一般称为「数据清洗」&#xff0c;之所以称之为清洗&#xff0c;是因为在数据分析师眼中&#xff0c;杂乱的数据就是脏数据&#xff0c;只有被清洗成干净的数据后才可以进行分析使用。 数据丰富 操作 1.复制列 点击列名选…...

PPT中加入页码

PPT中加入页码 文章目录 简单版本样式更改 简单版本 PPT中插入页码&#xff0c;基础的就是在“插入”选项卡中单机“幻灯片编号”即可 样式更改 然而&#xff0c;就像我们做幻灯片不满足于白底黑字一样&#xff0c;页码也总不能是默认的样式。 比如&#xff0c;在页码下面…...

xxl-job使用笔记

文章目录 xxl-job配置文件新增XxlJobConfig类JobHandler例子xxl-job机制xxl-job-admin配置XxlJob 和 JobHandler(过时了) 其他报错 msg&#xff1a;job handler [demoJobHandler] not found.xxl-job报错 xxl-job registry fail, registryParam:RegistryParam{registryGroup‘EX…...

微短剧,会成为长视频的“救命稻草”吗?

职场社畜秒变霸道总裁&#xff0c;普通女孩穿越成为艳丽皇妃.......这样“狗血”的微短剧&#xff0c;最近不仅在国内各大视频平台上异常火爆&#xff0c;而且还直接火出了国外。 所谓微短剧&#xff0c;就是单集时长从几十秒到十几分钟的剧集&#xff0c;有着相对明确的主题和…...

uView 2.0自定义主题开发:颜色配置与样式覆盖的详细步骤

uView 2.0自定义主题开发&#xff1a;颜色配置与样式覆盖的详细步骤 【免费下载链接】uView2.0 uView UI&#xff0c;是全面兼容nvue的uni-app生态框架&#xff0c;全面的组件和便捷的工具会让您信手拈来&#xff0c;如鱼得水 项目地址: https://gitcode.com/gh_mirrors/uv/u…...

《Sysinternals实战指南》进程和诊断工具学习笔记(8.25):Handle进阶——批量巡检、自动审计与高危操作SOP

&#x1f525;个人主页&#xff1a;杨利杰YJlio❄️个人专栏&#xff1a;《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》&#x1f31f; 让复杂的事情更…...

中文编程语言的开创性语法,言律:一门以汉语为思维内核的原生中文编程语言

在对母语作为思维原生载体的深层结构、语言相对论与神经认知机制的探讨基础上&#xff0c;我们不再满足于“把英文关键字翻译成中文”的表层汉化&#xff0c;而是要开创一种真正根植于汉语思维逻辑的编程语法体系—— &#x1f33f;「言律」&#xff08;Yn Lǜ&#xff09;&…...

ARMv8通用定时器架构与CNTHP_CTL_EL2寄存器详解

1. AArch64通用定时器架构概述在ARMv8架构中&#xff0c;通用定时器系统为操作系统和应用程序提供了精确的时间基准。这套计时系统由一组相互关联的组件构成&#xff0c;包括物理计数器、虚拟计数器以及多个比较器。作为系统程序员&#xff0c;理解这套机制对开发底层系统软件至…...

【FlinkSQL笔记】(三)Flink SQL 核心重难点(窗口函数、水印)

一、窗口函数 流式数据无限无边界&#xff0c;例如想要统计每5分钟、每1小时的数据&#xff0c;必须用窗口函数&#xff0c;这是Flink SQL和普通SQL最大的区别之一。 1、 滚动窗口 TUMBLE&#xff08;最常用&#xff09; 特点&#xff1a;无重叠、无间隔、固定时长&#xff0c;…...

Superpowers 总览与原理(通俗版)

一句话结论 Superpowers 不是一个“新模型”&#xff0c;而是一套“技能&#xff08;skills&#xff09; 启动引导&#xff08;bootstrap&#xff09;”的工作流层&#xff0c;用明确的流程和纪律约束智能体如何思考、如何拆解任务、如何实现与复核。 它是怎么用的&#xff08;…...

零基础掌握GVAS解析与游戏存档编辑:解锁Unreal Engine数据处理新姿势

零基础掌握GVAS解析与游戏存档编辑&#xff1a;解锁Unreal Engine数据处理新姿势 【免费下载链接】uesave Rust library and CLI to read and write Unreal Engine save files 项目地址: https://gitcode.com/gh_mirrors/ue/uesave Unreal Engine游戏存档修改不再困难&a…...

2026年数字孪生升级版:三维重构透明建筑实时重构跟踪定位

2026数字孪生升级&#xff1a;三维重构透明建筑实时重构跟踪定位结合2026年数字孪生技术前沿迭代趋势&#xff0c;围绕实景三维重构、建筑透明可视化、场景实时重构、全域跟踪定位四大核心能力&#xff0c;完成新一代数字孪生体系技术升级。彻底解决传统数字孪生静态滞后、建筑…...

GE 图执行引擎:CANN 推理的计算图编排中心

在 CANN 的五层架构里&#xff0c;GE 处在 AscendCL 和 Runtime 之间的枢纽位置。它不直接参与算子计算&#xff0c;不管理 NPU 资源&#xff0c;但它决定了"这张计算图怎么跑"——算子的执行顺序、哪些可以并发的、哪些可以融合的、中间 Tensor 放哪。 GE&#xff…...

阅读APP书源导入与使用完全指南:26个高质量书源一键获取

阅读APP书源导入与使用完全指南&#xff1a;26个高质量书源一键获取 【免费下载链接】Yuedu &#x1f4da;「阅读」自用书源分享 项目地址: https://gitcode.com/gh_mirrors/yu/Yuedu 还在为「阅读」APP找不到稳定的小说书源而烦恼吗&#xff1f;这款开源阅读工具需要自…...