完整个人网站html电子商务网站建设 故宫官网

张小明 2026/1/8 20:34:47
完整个人网站html,电子商务网站建设 故宫官网,大良外贸网站设计,百度怎样做网站一、回顾JDBC 操作的问题与流程 问题#xff1a;JDBC 是操作 MySQL 的传统方式#xff0c;但步骤繁琐。核心流程#xff08;共 9 步#xff09;#xff1a; 创建数据库连接池#xff08;DataSource#xff09;获取数据库连接#xff08;Connection#xff09;编写带占…一、回顾JDBC 操作的问题与流程问题JDBC 是操作 MySQL 的传统方式但步骤繁琐。核心流程共 9 步创建数据库连接池DataSource获取数据库连接Connection编写带占位符的 SQL创建操作命令对象Statement替换 SQL 占位符执行 SQL处理执行结果查询返回 ResultSet更新返回数量处理结果集释放资源二、MyBatis 的定义与背景定位优秀的持久层框架用于简化 JDBC 开发专注于程序与数据库的交互。持久层的含义对应 Web 分层中的 Dao 层负责数据库操作。MyBatis 作为框架仅简化操作逻辑实际数据存储仍依赖 MySQL因此必须引入MySQL 驱动三、MyBatis⼊⻔MyBatis 结合 Spring Boot 的使用流程分为 4 步准备工作创建 Spring Boot 工程、准备数据库表、定义实体类配置依赖引入 MyBatis 框架、MySQL 驱动等依赖并配置数据库连接信息编写 SQL通过注解或 XML 文件编写 SQL 语句测试验证数据库操作效果。3.1准备⼯作3.1.1创建⼯程创建springboot⼯程并导⼊mybatis的起步依赖、mysql的驱动包项目创建后 pom.xml 会自动导入 MyBatis、MySQL 驱动依赖版本随 SpringBoot 适配SpringBoot 3.X → MyBatis 3.X参考https://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/3.1.2数据准备创建⽤户表,并创建对应的实体类User创建对应的实体类UserInfo实体类的属性名与表中的字段名⼀ 一对应3.1.3配置数据库连接字符串3.1.4写持久层代码在项⽬中,创建持久层接⼝UserInfoMapperMybatis的持久层接规范⼀般都叫XxxMapperMapper 接口的本质MyBatis 的 “数据访问接口”用于告诉 MyBatis “要执行什么 SQL” 的入口MyBatis 会在运行时自动为这个接口生成实现类代理对象无需你手动写实现类Mapper 注解的作用告诉 Spring Boot “这是 MyBatis 的 Mapper 接口”Spring 会把这个接口的代理对象纳入容器管理后续可以通过Autowired注入使用Select 注解的作用把 SQL 语句 “绑定” 到接口方法上当你调用queryAllUser()方法时MyBatis 会执行注解里的 SQL并且自动把查询结果ResultSet转换成ListUserInfo实体类集合。问题讲解MyBatis 的Mapper和 Spring 的Service在 “交给 Spring 管理” 的逻辑上有本质区别1.Mapper不是 “直接交给 Spring 管理”Mapper是MyBatis 的注解不是 Spring 的注解它的作用是告诉 MyBatis“这是一个 Mapper 接口需要为它生成代理实现类”而非直接让 Spring 接管。而Service是Spring 的注解作用是标记普通类为 Spring BeanSpring 会直接实例化这个类并放入容器。两者的 “交给 Spring 管理” 路径完全不同注解归属框架核心作用Spring 管理的对象来源ServiceSpring标记普通类为业务 BeanSpring 直接实例化Service标注的类本身MapperMyBatis标记接口为 MyBatis 映射接口MyBatis 生成接口的代理类再交给 Spring 管理2.为什么Mapper不需要 “手动定义实现类 / 变量名”你看到的UserInfoMapper userInfoMapper是接口不是普通类 —— 接口本身不能实例化但 MyBatis 做了 “兜底”步骤 1Mapper触发 MyBatis 生成代理类当你在接口上加Mapper后MyBatis-Spring 会通过动态代理为UserInfoMapper生成一个 “隐形的实现类”比如叫UserInfoMapperProxy这个代理类会实现UserInfoMapper接口重写queryAllUser()方法执行Select里的 SQL处理数据库连接、SQL 执行、结果映射等逻辑。步骤 2MyBatis 把代理类交给 SpringMyBatis-Spring 会将生成的代理类注册为 Spring BeanBean 的类型是UserInfoMapper接口类型放入 Spring 容器。步骤 3Autowired直接注入代理对象你在测试类中写spring 会从容器中找到 “UserInfoMapper类型的代理 Bean”直接赋值给这个变量 ——你不需要手动写实现类也不需要手动 new 对象MyBatisSpring 帮你全做了。3.对比Service为什么觉得 “需要写成员变量”比如你写一个UserService你觉得 “需要写成员变量”是因为Service标注的是普通类Spring 会实例化这个类但类内部要用到其他 Bean比如UserInfoMapper必须手动注入写成员变量 Autowired而Mapper标注的是接口你不会在接口里写成员变量而是在 “使用这个接口的地方”比如UserService、测试类注入接口对象。举个更直观的对比场景Service普通类MapperMyBatis 接口定义方式写完整的类包含方法实现只写接口方法上标注 SQL无实现Spring 管理的对象类的实例对象MyBatis 生成的接口代理对象使用时的注入方式定义XXXService变量 Autowired定义XXXMapper变量 Autowired要不要写实现必须自己写方法实现不用写MyBatis 根据 SQL 自动生成实现关键总结Mapper≠Service前者是 MyBatis 的 “接口代理生成器”后者是 Spring 的 “普通类 Bean 标记器”不用写实现类MyBatis 动态生成UserInfoMapper的代理实现类Spring 管理这个代理对象变量名不是 “省了”你在使用UserInfoMapper的地方测试类 / Service依然需要定义UserInfoMapper类型的成员变量再通过Autowired注入 —— 只是不用自己写实现类而已。对比熟悉的Service更易理解特性Mapper MyBatisService谁生成类MyBatis 运行时动态生成代理类你自己手写类谁注册为 Spring BeanMyBatis-Spring 帮你注册Spring 自动扫描Service注册谁创建对象Spring 实例化代理类Spring 实例化你手写的类你需要写的代码只写接口 SQL 注解写完整类 方法实现四、单元测试在创建出来的SpringBoot⼯程中在src下的test⽬录下已经⾃动帮我们创建好了测试类我们可以直接使⽤这个测试类来进⾏测试.单元测试的核心作用单元测试是在开发阶段验证 “某一个组件这里是UserInfoMapper是否能正常工作”避免把问题带到线上 —— 这里的测试目标是验证queryAllUser()方法能否成功从数据库查询到用户数据。运行结果如下使⽤Idea⾃动⽣成测试类在需要测试的Mapper接⼝中,右键-Generate-Test记得加SpringBootTest 注解,加载Spring运⾏环境(别忘记哟关于测试的问题问题答案Test 目录下能否自定义测试方法可以新增方法加Test即可执行方法需要点类的箭头吗不用点单个方法的箭头只跑当前方法效率更高启动测试后后续更改测试里的代码需要clean吗不需要仅改代码 / 依赖后出问题时才需要要手动启动 SpringBoot 启动类吗不需要SpringBootTest会自动启动 Spring 容器额外小技巧如果测试方法执行慢因为SpringBootTest会启动完整容器可以针对 Mapper 测试用MyBatisTest轻量化只启动 MyBatis 相关环境适合纯 Mapper 层的测试。验证数据库查询功能是否正常把数据库中UserInfo表的所有数据查询出来并打印到控制台
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

深圳宝安区网站建设公司wordpress如何仿站

你是否曾经为了整理一篇中文论文的参考文献而焦头烂额?当Zotero遇上知网文献,就像两个说着不同语言的人相遇,沟通总是困难重重。Jasminum的出现,彻底改变了这一尴尬局面——它让Zotero真正"听懂"了中文,成为…

张小明 2026/1/7 22:51:36 网站建设

手机架设网站根据域名查询网站名称

MTKClient实战:解锁Nokia设备BROM模式的技术经验分享 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient MTKClient作为一款功能强大的联发科芯片设备处理工具,在Androi…

张小明 2026/1/7 22:51:35 网站建设

绵阳网络公司网站建设wordpress wpenqueuescripts

一、引言 命令行终端是开发者的核心工作区,也是许多开发者完成工作的首选工具。当前,大语言模型正在重塑命令行终端的能力,使终端不仅能完成命令执行,还能让开发者与智能体共同完成命令的协作、创造。 近期,Google 开…

张小明 2026/1/7 22:51:36 网站建设

公司网站建设个人总结集团网站建设运营公司

Visual Studio 2017安装、使用及新特性全解析 1. 在线安装Visual Studio 2017 首先,你可以访问 https://www.visualstudio.com/downloads/ ,选择最适合你需求的Visual Studio 2017版本并下载。目前有三个版本可供选择: - Visual Studio Community 2017:这是一个免费的…

张小明 2026/1/7 22:51:38 网站建设

网站建设win2012网上卡片制作

第一章:Windows环境下Open-AutoGLM部署概述 在Windows系统中部署Open-AutoGLM模型,需综合考虑环境依赖、硬件适配与服务配置。该模型基于Transformer架构,适用于自动化文本生成任务,其本地化部署可有效保障数据隐私并提升响应效率…

张小明 2026/1/7 22:51:39 网站建设

医院 网站建设 新闻seo网站代码

信捷PLC XD5 STC四轴机械手标准程序,冲床上下料四轴标准程序。 量产设备程序包,两种冲压控制方式,使用绝对式伺服吊机,MODBUS通讯。 程序功能非常完善,有伺服状态监控,故障,连线检测&#xff0…

张小明 2026/1/7 22:51:39 网站建设