SSM整合使用

文章目录

  • 1. 项目创建
  • 2. spring
    • (1) 导包
    • (2) 配置类
  • 3. mybatis
    • (1) maven导包
    • (2) mybatis配置文件
    • (3) 连接配置文件
    • (4) mapper映射文件
    • (5) 在spring配置类中注册sqlsession的bean
  • springMVC
    • (1) maven导包
    • (2) springMVC配置类
    • (3) 初始化类
  • 5. 测试
    • (1) 创建3层架构
    • (2) 编写Controller层
    • service层
    • mapper(dao)层
    • tomcat部署启动

1. 项目创建

创建一个空maven项目:
在这里插入图片描述

2. spring

(1) 导包

 <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.22</version></dependency>

(2) 配置类

@Configuration
public class SpringConfig {}

3. mybatis

(1) maven导包

    <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.13</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version></dependency>

(2) mybatis配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><properties resource="jdbc.properties"></properties><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments><mappers><!--指定mapper映射文件在哪--><mapper resource=""/></mappers>
</configuration>

(3) 连接配置文件

driver = com.mysql.cj.jdbc.Driver
url = jdbc:mysql://localhost:3306/stu
username = root
password = xjy1234

(4) mapper映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xjy.Mapper"></mapper>

在这里插入图片描述

(5) 在spring配置类中注册sqlsession的bean

    @Beanpublic SqlSession getSqlSession() throws IOException {return new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("MybatisConfig.xml")).openSession();}

springMVC

(1) maven导包

	<!--需要注释掉上面引入的spring-context,不然可能会引起版本冲突(spring-webmvc已经含有spring-context)--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>6.0.11</version></dependency><dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>5.0.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.3</version></dependency>

(2) springMVC配置类

@Configuration
@EnableWebMvc
public class MvcConfig{
}

(3) 初始化类

public class servletInit extends AbstractAnnotationConfigDispatcherServletInitializer {@Overrideprotected Class<?>[] getRootConfigClasses() {return new Class[]{SpringConfig.class};}@Overrideprotected Class<?>[] getServletConfigClasses() {return new Class[]{MvcConfig.class};}@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}
}

5. 测试

(1) 创建3层架构

在这里插入图片描述
分别在spring配置类和mvc配置类中添加包扫描:

@ComponentScan({"com.xjy.service"}) // spring包扫描
@ComponentScan("com.xjy.controller")//mvc包扫描

(2) 编写Controller层

@RestController
@RequestMapping("/user")
public class userController {@Autowiredprivate UserService userService;@GetMapping("/{id}")@ResponseBodypublic String getUserName(@PathVariable int id) throws IOException {System.out.println("接受到请求");String name = userService.getUserName(id);System.out.println("controller接受到返回结果"+name);return name;}
}

service层

接口:

package com.xjy.service;public interface UserService {String getUserName(int id);
}

实现类:

@Service
public class UserServiceImpl implements UserService {@Autowiredprivate SqlSession session;@Overridepublic String getUserName(int id) throws IOException {UserMapper mapper = session.getMapper(UserMapper.class);String name = mapper.getUserName(id);return name;}
}

mapper(dao)层

接口:

public interface UserMapper {String getUserName(int id);
}

sql映射文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xjy.mapper.UserMapper"><select id="getUserName" resultType="java.lang.String">select name from user where id = #{id}</select>
</mapper>

tomcat部署启动

打包方式修改为war:
在这里插入图片描述
访问路劲修改为/:
在这里插入图片描述
启动tomcat服务,用postman进行访问:
在这里插入图片描述
成功接收:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/28450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从局部到全局:产品开发视角的转变与系统优化策略

一、研发背景 在科技产品开发领域&#xff0c;每一种产品都存在着多元化的开发方案可供选择&#xff0c;这要求开发者不断拓展视野&#xff0c;进行横向对比学习&#xff0c;以期找到最贴合市场需求、最具竞争优势的解决方案。以往&#xff0c;我们的研发团队一直立足于稳固而…

第三十章 使用 MTOM 进行附件 - 控制 MTOM 打包

文章目录 第三十章 使用 MTOM 进行附件 - 控制 MTOM 打包控制 MTOM 打包示例Web ServiceWeb Client 第三十章 使用 MTOM 进行附件 - 控制 MTOM 打包 控制 MTOM 打包 默认情况下&#xff0c;创建 MTOM 包时&#xff0c;它使用以下规则&#xff1a; 它以内联方式输出二进制字符…

分布式之日志系统平台ELK

ELK解决了什么问题 我们开发完成后发布到线上的项目出现问题时(中小型公司),我们可能需要获取服务器中的日志文件进行定位分析问题。但在规模较大或者更加复杂的分布式场景下就显得力不从心。因此急需通过集中化的日志管理,将所有服务器上的日志进行收集汇总。所以ELK应运而生…

HTML静态网页成品作业(HTML+CSS)——中华传统美德介绍网页(2个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;表格布局&#xff0c;未使用Javacsript代码&#xff0c;共有2个页面。…

学习java第一百零二天

Spring 面向切面编程&#xff08;Spring AOP&#xff09; 通过配置管理特性&#xff0c;Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以&#xff0c;可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对…

YOLOv10涨点改进创新MSAM注意力,通道注意力升级,魔改CBAM

目录 1,YOLO v10介绍 1.1 C2fUIB介绍 1.2 PSA介绍 1.3 SCDown 2.自研MSAM 2.1 自研MSAM注意力介绍 3.MSAM如何加入到YOLOv8 3.1 MSAM加入ultralytics/nn/attention/MsAM.py 3.2 修改tasks.py1)首先进行引用定义 3.3 yolov10n-MSAM.yaml 3.4 yolov10n-PSMSAM.yaml 改…

Chain-of-Thought真能提高大模型的推理能力吗?

用于提高大语言模型&#xff08;LLM&#xff09;的推理、规划、算术等能力的思维链&#xff08;Chain-of-Thought、CoT&#xff09;技术&#xff0c;真的能帮助LLM一步步地回答问题吗&#xff1f;美国亚利桑那州立大学的研究人员近期发表了一篇论文[1]&#xff0c;论文根据实验…

net start mysql服务名无效

问题背景 起因是我的电脑因为停电烧坏了系统固态硬盘&#xff0c;再新装系统后&#xff0c;之前的MySQL服务无法通过下面的命令启动。 net start mysql # 报错&#xff1a;服务名无效 报错&#xff1a;服务名无效 报错信息 未找到&#xff1a;在Windows服务中找不到MySQL 找…

关于HTTP劫持,该如何理解、防范和应对

一、引言 HTTP劫持&#xff08;HTTP Hijacking&#xff09;是一种网络安全威胁&#xff0c;它发生在HTTP通信过程中&#xff0c;攻击者试图通过拦截、篡改或监控用户与服务器之间的数据流量&#xff0c;以达到窃取敏感信息或执行恶意操作的目的。今天我们就来详细了解HTTP劫持…

Google Earth Engine(GEE)——计算闪闪红星的ndvi的值和直方图(时序分析)

函数: ui.Chart.image.histogram(image, region, scale, maxBuckets, minBucketWidth, maxRaw, maxPixels)

数据库 | 事务

事务&#xff1a;要么做要么不做 开始语句&#xff1a;BEGIN TRANSACTION 结束语句&#xff1a;COMMIT&#xff08;正确&#xff09; ROLLBACK&#xff08;错误&#xff09; 4个性质&#xff1a;ACID A&#xff08;atomicity&#xff09; 原子性&#xff1a;一个事务要么不做…

AWS无服务器 应用程序开发—第十三章 小结2

电子邮件发送(Amazon SES、Amazon SNS、AWS Lambda) 注意点和易错点 SES 配置:确保域名验证和 DKIM 签名配置正确,避免邮件被标记为垃圾邮件。 SNS 配置:订阅和发布权限需要配置正确。 Lambda 权限:确保 Lambda 函数有正确的执行权限。 移除沙盒:需要大量发送邮件的时…

Ant Design Vue 动态表头和数据填充

创作动态表头和数据填充的前端应用&#xff1a;使用 Ant Design Vue 在现代前端开发中&#xff0c;动态表格是一个常见而且非常有用的功能。Ant Design Vue作为一个优秀的UI组件库&#xff0c;为开发者提供了丰富的组件和API来实现复杂的前端需求&#xff0c;包括动态表头和数…

深入探究:Java SE中的数组高级用法

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

Rewrite the Stars

文章目录 摘要1、引言2、相关工作3、重写星操作3.1、单层中的星操作3.2、扩展到多层3.3、特殊情况3.4、实证研究3.4.1、星操作的实证优越性3.4.2、决策边界对比3.4.3、扩展到无激活函数的网络 3.5、开放讨论与更广泛的影响 4、概念验证&#xff1a;StarNet4.1、StarNet架构4.2、…

《Windows API每日一练》4.4 绘制填充区域

本节讲述如何填充由线条构建的封闭区域。当我们初始化一个窗口类时&#xff0c;往往已经指定了窗口的背景色画刷&#xff08;WHITE_BRUSH&#xff09;&#xff0c;即默认的填充封闭区域背景的画刷。如果我们想更换背景颜色&#xff0c;需要选入其他系统预定义的画刷&#xff08…

Serializable 序列化详解

文章目录 一、什么是序列化二、Serializable 简介三、Serializable 序列化测试四、serialVersionUID 的作用五、serialVersionUID 默认 1L 和 64 位的哈希字段有什么区别&#xff1f;六、static 和 transient 字段 一、什么是序列化 序列化就是将对象属性转变为二进制数据。用…

LLVM 中 的 pass 及其管理机制

概述 LLVM 编译器框架的核心概念是任务调用和执行 编译器开发者将IR分解为不同的处理对象&#xff0c;并将其处理过程实现为单独的pass类型。在编译器初始化&#xff0c;pass被实例化&#xff0c;并被添加到pass管理中 pass 管理器(pass manager) 以流水线的方式将各个独立的…

DOM 总结

DOM 总结 1. 引言 文档对象模型(DOM,Document Object Model)是一种跨平台和语言独立的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。DOM 是万维网联盟(W3C)的标准,被广泛应用于网页设计和开发中。本文将总结 DOM 的基本概念、核心功能和实际应用。 …

【安装笔记-20240616-Linux-为 OpenWrt 自动挂载 Windows 主机共享目录】

安装笔记-系列文章目录 安装笔记-20240616-Linux-为 OpenWrt 自动挂载 Windows 主机共享目录 文章目录 安装笔记-系列文章目录安装笔记-20240616-Linux-为 OpenWrt 自动挂载 Windows 主机共享目录 前言一、软件介绍名称&#xff1a;cifsutils主页官方介绍特点 二、安装步骤测试…