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

MyBatis XML 配置完整示例(含所有核心配置项)


MyBatis XML 配置完整示例(含所有核心配置项)

在这里插入图片描述


1. 完整 mybatis-config.xml 配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!-- 全局配置 --><settings><!-- 启用二级缓存 --><setting name="cacheEnabled" value="true"/><!-- 启用延迟加载 --><setting name="lazyLoadingEnabled" value="true"/><!-- 启用自动映射 --><setting name="autoMappingBehavior" value="PARTIAL"/><!-- 启用驼峰命名自动映射(数据库字段名 snake_case → 对象属性 camelCase) --><setting name="mapUnderscoreToCamelCase" value="true"/><!-- 日志实现(如 Log4j、SLF4J) --><setting name="logImpl" value="SLF4J"/><!-- 默认执行器(SimpleExecutor/JdbcBatchExecutor/ReuseExecutor) --><setting name="defaultExecutorType" value="SIMPLE"/></settings><!-- 环境配置(多环境支持) --><environments default="development"><!-- 开发环境 --><environment id="development"><!-- 事务管理器类型(JDBC/JTA) --><transactionManager type="JDBC"/><!-- 数据源类型(UNPOOLED/POOLED/JNDI) --><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mydb"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment><!-- 生产环境 --><environment id="production"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://prod-db:3306/mydb"/><property name="username" value="prod_user"/><property name="password" value="prod_password"/></dataSource></environment></environments><!-- 类型别名(简化实体类引用) --><typeAliases><typeAlias type="com.example.entity.User" alias="User"/><package name="com.example.entity"/> <!-- 扫描包下的所有实体类,类名作为别名 --></typeAliases><!-- 类型处理器(自定义类型转换) --><typeHandlers><typeHandler handler="com.example.handler.DateTypeHandler"/><package name="com.example.handler"/> <!-- 扫描包下的所有类型处理器 --></typeHandlers><!-- 插件配置(如分页插件) --><plugins><plugin interceptor="com.example.plugin.PageInterceptor"><property name="param1" value="value1"/></plugin></plugins><!-- 二级缓存全局配置 --><cacheConfiguration><flushInterval hours="24"/> <!-- 每24小时刷新 --><size>1024</size> <!-- 缓存容量 --><readWrite/> <!-- 可读写缓存 --><blockWhenQuoted value="true"/> <!-- 阻塞式缓存 --></cacheConfiguration><!-- 映射器配置 --><mappers><!-- 通过资源路径加载XML --><mapper resource="com/example/mapper/UserMapper.xml"/><!-- 通过类路径加载 --><mapper class="com.example.mapper.UserMapper"/><!-- 扫描包下的所有Mapper接口 --><package name="com.example.mapper"/></mappers>
</configuration>

2. 补充配置:Mapper XML 文件示例
<!-- UserMapper.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper"><!-- 启用命名空间级缓存 --><cache/><!-- SQL 语句 --><select id="selectUserById" resultType="User">SELECT * FROM user WHERE id = #{id}</select><!-- 动态 SQL --><select id="selectUsersByName" resultType="User">SELECT * FROM user <where><if test="name != null">AND name LIKE CONCAT('%', #{name}, '%')</if></where></select><!-- 结果映射 --><resultMap id="userResultMap" type="User"><id column="id" property="id"/><result column="name" property="name"/><result column="age" property="age"/></resultMap><!-- 使用 resultMap --><select id="selectUserWithResultMap" resultMap="userResultMap">SELECT id, name, age FROM user WHERE id = #{id}</select>
</mapper>

3. 实体类示例(User.java)
package com.example.entity;public class User {private Long id;private String name;private Integer age;// Getters and Setters
}

4. 核心配置项详解表格
配置项描述示例作用
<settings>全局行为配置。<setting name="cacheEnabled" value="true"/>启用/禁用缓存、延迟加载、日志等全局行为。
<environments>定义多环境配置(如开发/生产)。<environment id="development">...</environment>切换不同环境的数据源和事务管理器。
<dataSource>配置数据库连接信息。<dataSource type="POOLED">...</dataSource>定义数据库驱动、URL、用户名和密码。
<typeAliases>定义类型别名,简化实体类引用。<typeAlias type="com.example.entity.User" alias="User"/>避免在 XML 中重复写全限定类名。
<typeHandlers>注册自定义类型处理器,处理复杂数据类型(如日期、枚举)。<typeHandler handler="com.example.handler.DateTypeHandler"/>将数据库类型与 Java 类型双向转换。
<plugins>配置拦截器(如分页插件、日志插件)。<plugin interceptor="com.example.plugin.PageInterceptor">...</plugin>在 SQL 执行前/后插入自定义逻辑。
<cacheConfiguration>全局二级缓存配置。<cacheConfiguration>...</cacheConfiguration>设置缓存刷新间隔、容量、读写模式等。
<mappers>注册 Mapper 接口或 XML 文件。<mapper resource="com/example/mapper/UserMapper.xml"/>告知 MyBatis 需要加载的 SQL 映射文件或接口。
<cache>在 Mapper XML 中启用二级缓存。<cache/>将当前 Mapper 的查询结果缓存到内存中。
<resultMap>定义结果集到对象的映射关系。<resultMap id="userResultMap" type="User">...</resultMap>处理复杂字段映射(如关联查询、嵌套对象)。
<select>, <update>, <insert>, <delete>定义 SQL 语句。<select id="selectUserById" resultType="User">...</select>定义增删改查的 SQL 逻辑,支持动态 SQL 和参数绑定。
<if>, <choose>, <where>, <set>动态 SQL 标签,生成条件语句。<where> <if test="name != null">AND name = #{name}</if> </where>根据参数动态拼接 SQL 条件。

5. 配置项分类说明

5.1 全局配置(<settings>
属性说明示例值
cacheEnabled启用/禁用二级缓存。true
lazyLoadingEnabled启用延迟加载(关联对象按需加载)。true
autoMappingBehavior自动映射行为(NONE, PARTIAL, FULL)。PARTIAL
mapUnderscoreToCamelCase自动将数据库字段名(snake_case)转换为对象属性名(camelCase)。true
logImpl日志实现(如 SLF4J, LOG4J)。SLF4J
defaultExecutorType默认执行器类型(SIMPLE, REUSE, BATCH)。SIMPLE

5.2 数据源配置(<dataSource>
属性说明示例值
driverJDBC 驱动类名。com.mysql.cj.jdbc.Driver
url数据库连接 URL。jdbc:mysql://localhost:3306/mydb
username数据库用户名。root
password数据库密码。root

5.3 映射器配置(<mappers>
标签说明示例
<mapper>单个 Mapper 文件或接口。<mapper resource="com/example/mapper/UserMapper.xml"/>
<package>扫描包下的所有 Mapper 接口或 XML 文件。<package name="com.example.mapper"/>

5.4 动态 SQL 示例
<!-- 条件查询 -->
<select id="selectUsersByCondition" resultType="User">SELECT * FROM user <where><if test="name != null">AND name = #{name}</if><if test="age != null">AND age &gt; #{age}</if></where>
</select>

5.5 缓存配置
<!-- Mapper 级缓存 -->
<cache/> <!-- 默认使用 HashMap 缓存 --><!-- 自定义缓存配置 -->
<cachetype="org.mybatis.caches.ehcache.EhcacheCache"eviction="LRU"flushInterval="60000"size="1024"readOnly="false"/><!-- 全局缓存配置 -->
<cacheConfiguration><flushInterval hours="24"/><size>1024</size><readWrite/><blockWhenQuoted value="true"/>
</cacheConfiguration>

6. 完整配置流程

  1. 配置数据源:在 <environments> 中定义开发和生产环境的数据源。
  2. 启用缓存:在 <cache><cacheConfiguration> 中配置二级缓存。
  3. 定义类型别名:通过 <typeAliases> 简化实体类引用。
  4. 注册 Mapper:通过 <mappers> 指定 SQL 映射文件或接口。
  5. 动态 SQL:在 Mapper XML 中使用 <if>, <where>, <foreach> 等标签。

7. 核心配置项总结表格

配置项描述示例作用
<configuration>根节点,包含所有配置。...整个 MyBatis 配置的容器。
<settings>全局行为配置。cacheEnabled, mapUnderscoreToCamelCase控制 MyBatis 的运行时行为(如缓存、日志、自动映射)。
<environments>环境配置(开发/生产)。<environment id="development">...</environment>切换不同环境的数据源和事务管理器。
<dataSource>数据库连接配置。<dataSource type="POOLED">...</dataSource>定义数据库连接参数。
<typeAliases>类型别名定义。<typeAlias type="User" alias="User"/>简化实体类引用,避免全限定类名。
<typeHandlers>自定义类型处理器注册。<typeHandler handler="DateTypeHandler"/>处理复杂数据类型的转换(如日期、枚举)。
<plugins>拦截器配置。<plugin interceptor="PageInterceptor">...</plugin>在 SQL 执行前/后插入自定义逻辑(如分页、日志)。
<cacheConfiguration>全局二级缓存配置。<cacheConfiguration>...</cacheConfiguration>设置缓存刷新间隔、容量、读写模式等。
<mappers>Mapper 注册。<mapper resource="UserMapper.xml"/>告知 MyBatis 需要加载的 SQL 映射文件或接口。

8. 关键配置说明

8.1 环境切换
<!-- 切换环境 -->
<environments default="development"><environment id="development">...</environment><environment id="production">...</environment>
</environments>
8.2 动态 SQL 标签
标签作用
<if>条件判断。
<choose>相当于 Java 的 switch
<where>自动处理 SQL 的 WHERE 子句前缀。
<set>自动处理 UPDATE 语句的 SET 子句。
<foreach>遍历集合参数(如 IN 子句)。

9. 配置文件验证
# 验证 XML 文件语法
mvn validate

10. 总结

  • XML 配置是 MyBatis 的核心配置方式,适合复杂场景。
  • 关键配置项settings, environments, mappers 是必须配置的。
  • 最佳实践
    • 使用 <typeAliases> 简化实体类引用。
    • 通过 <plugins> 集成分页、日志等插件。
    • 在 Mapper XML 中使用 <cache> 启用二级缓存。

通过 XML 配置,可以完全控制 MyBatis 的行为,适用于需要精细配置的项目。

相关文章:

MyBatis XML 配置完整示例(含所有核心配置项)

MyBatis XML 配置完整示例&#xff08;含所有核心配置项&#xff09; 1. 完整 mybatis-config.xml 配置文件 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""htt…...

【数据结构入门训练DAY-24】美国大选

文章目录 前言一、题目二、解题思路结语 前言 本次训练内容 训练STL中sort的操作方法。训练解题思维。 一、题目 美国大选是按各州的投票结果来确定最终的结果的&#xff0c;如果得到超过一半的州的支 持就可以当选&#xff0c;而每个州的投票结果又是由该州选民投票产生…...

stm32L4R5ZI Nucleo-144 GPIO点灯及按键中断

文章目录 前言一、CubeMx环境配置二、GPIO点灯操作三、按键中断点灯总结 前言 STM32L4R5ZI Nucleo-144是STMicroelectronics推出的一款基于ARM Cortex-M4内核的微控制器芯片。它是STM32L4系列中的一员&#xff0c;针对低功耗和高性能的应用而设计。以下是一些关键特点和技术规格…...

访问Redis时遇到 unknown command ‘FT.INFO‘, with args beginning with 错误的解决方案

在B站学习 图灵程序员-诸葛 的LangChain入门课程《基于Redis保存历史聊天信息》。在实践代码时遇到了一些问题&#xff0c;在这里记录一下&#xff0c;希望能帮助到也在学习的同学。话不多说&#xff0c;上代码&#xff0c;这段代码使用langchain_redis来持久化大模型对话的聊天…...

Swift与iOS内存管理机制深度剖析

前言 内存管理是每一位 iOS 开发者都绕不开的话题。虽然 Swift 的 ARC&#xff08;自动引用计数&#xff09;极大简化了开发者的工作&#xff0c;但只有深入理解其底层实现&#xff0c;才能写出高效、健壮的代码&#xff0c;避免各种隐蔽的内存问题。本文将从底层原理出发&…...

数据库系统概论(五)关系模型的数据结构及形式化

数据库系统概论&#xff08;五&#xff09;关系模型的数据结构及形式化 前言一、关系&#xff1a;从“表格”说起1.1 关系数据模型中的“关系”是什么&#xff1f;1.2 域&#xff08;Domain&#xff09;&#xff1a;数据的“类型限定”1.3 笛卡尔积&#xff08;Cartesian Produ…...

Python类和对象四(十三)

魔法方法&#xff1a; 按位运算 按位于运算 只要相同才是1 或运算&#xff1a; 只要某个位是1结果就是1 、 按位非 将结果取反 按位异或&#xff1a; 左移和右移运算符&#xff1a; 右移两位 右移动n位&#xff0c;就是除以2的n次方 左移两位&#xff1a; 左移n位就是乘…...

Go 1.24 中的弱指针包 weak 使用介绍

在 Go 语言中&#xff0c;“弱指针”指的是不会阻止垃圾回收器&#xff08;GC&#xff09;回收目标对象的引用。 当一个对象只剩弱指针指向它&#xff0c;而没有任何强引用时&#xff0c;GC 仍会把该对象当作不可达对象并回收&#xff1b;随后&#xff0c;所有指向它的弱指针会…...

毕业项目-基于深度学习的入侵检测系统

选题背景与意义 随着互联网技术的飞速发展&#xff0c;网络在各个领域中的作用日益重要。然而&#xff0c;伴随着技术的进步&#xff0c;网络安全问题也愈加严峻&#xff0c;网络攻击事件频繁发生&#xff0c;给个人、企业乃至国家带来了巨大的经济损失与安全威胁。入侵检测系…...

Github 2025-04-26 Rust开源项目日报Top10

根据Github Trendings的统计,今日(2025-04-26统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Dart项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust, Dart协议类型:GNU Affero General Public Li…...

【Hive入门】Hive分桶表深度解析:从哈希分桶到Join优化的完整指南

目录 引言 1 分桶表基础概念 1.1 什么是分桶表 1.2 分桶与分区的区别 2 分桶表设计与创建 2.1 创建分桶表语法 2.2 分桶键选择原则 2.3 桶数确定策略 3 分桶表数据加载 3.1 标准数据加载流程 3.2 分桶表数据验证 4 分桶Join优化原理 4.1 Map端Join优化 4.2 Sort-…...

django之优化分页功能(利用参数共存及封装来实现)

优化分页功能 目录 1.封装分页代码 2.解决分页时覆盖搜索参数的bug 3.优化分页功能 上一篇文章我们讲到了搜索功能和分页展示数据功能。那这篇文章, 在上篇文章的基础上, 会去优化这些功能并解决搜索功能和分页功能不能一起使用的bug。 一、封装分页代码 原本我们的asse…...

linux blueZ 第四篇:BLE GATT 编程与自动化——Python 与 C/C++ 实战

本篇聚焦 BLE(Bluetooth Low Energy)GATT 协议层的编程与自动化实践,涵盖 GATT 基础、DBus API 原理、Python(dbus-next/bleak)示例、C/C++ (BlueZ GATT API)示例,以及自动发现、读写特征、订阅通知、安全配对与脚本化测试。 目录 BLE GATT 基础概念 BlueZ DBus GATT 模…...

前端面试每日三题 - Day 16

这是我为准备前端/全栈开发工程师面试整理的第16天每日三题练习&#xff0c;涵盖事件循环深入解析 、Vue3 响应式系统原理 &#xff0c;以及 多租户系统设计实践。每道题附带 详细解析、示例代码与脑图建议&#xff0c;助你全面掌握底层原理与架构设计思维。 ✅ 题目 1&#xf…...

使用PyTorch实现简单图像识别(基于MNIST手写数字数据集)的完整代码示例,包含数据加载、模型定义、训练和预测全流程

以下是一个使用PyTorch实现简单图像识别&#xff08;基于MNIST手写数字数据集&#xff09;的完整代码示例&#xff0c;包含数据加载、模型定义、训练和预测全流程&#xff1a; import torch import torch.nn as nn import torch.optim as optim import torchvision import torc…...

【Android】四大组件之Activity

目录 一、什么是Activity 二、如何创建和配置Activity 三、Activity 跳转与数据传递 四、数据保存与恢复 五、Activity 启动模式 六、自定义返回行为 七、复杂界面布局 你可以把Activity想象成手机屏幕上的一个“页面”。比如&#xff0c;当你打开一个App时&#xff0c;…...

数据库原理(1)

第一章 概论 一、基本概念 数据&#xff08;Data&#xff09;是数据库中存储的基本对象&#xff0c;描述事物的符号记录。例如学生的学号、姓名等信息都是数据。 数据库&#xff08;Database&#xff0c;DB&#xff09;长期存储在计算机内、有组织的、可共享的大量数据的集合。…...

SQL盲注问题深度解析与防范策略

引言 在当今互联网时代,Web应用程序的安全性是重中之重。SQL注入作为一种常见且极具威胁性的攻击手段,而其中的SQL盲注更是因其隐蔽性强、难以察觉而备受关注。攻击者借助SQL盲注,在无法直接获取数据库返回结果的情况下,通过精心构造特殊的SQL语句,利用页面的不同响应来逐…...

Android JIT( ART即时编译器),Just In Time Compiler,即时编译技术

Android JIT&#xff08; ART即时编译器&#xff09;,Just In Time Compiler&#xff0c;即时编译技术 Android Runtime (ART) 包含一个具备代码分析功能的即时 (JIT) 编译器&#xff0c;该编译器可以在 Android 应用运行时持续提高其性能。JIT是Just In Time Compiler&#xf…...

当自动驾驶遇上“安全驾校”:NVIDIA如何用技术给无人驾驶赋能?

自动驾驶技术的商业化落地&#xff0c;核心在于能否通过严苛的安全验证。国内的汽车企业其实也在做自动驾驶&#xff0c;但是吧&#xff0c;基本都在L2级别。换句话说就是在应急时刻内&#xff0c;还是需要人来辅助驾驶&#xff0c;AI驾驶只是决策层&#xff0c;并不能完全掌握…...

Unity中数据储存

在Unity项目开发中,会有很多数据,有需要保存到本地的数据,也有直接保存在缓存中的临时数据,一般为了方便整个项目框架中各个地方能调用需要的数据,因此都会实现一个数据工具或者叫数据管理类,用来管理项目中所有的数据。 首先保存在缓存中的数据,比如用户信息,我们只需…...

【C++11】可变参数模板

前言&#xff1a; 上文我们学到右值引用及其移动语义&#xff0c;学习到了C11中对性能提升对重要的更新之一。C11进阶之路&#xff1a;右值引用和移动语义&#xff0c;让代码跑得更快&#xff01;-CSDN博客 本文我们来讲讲&#xff0c;C11的下一个新语法&#xff1a;可变参数模…...

c语言知识整理

一 数据的存储 对于整形的存储 无论是正负在存储中都是使用补码进行存储的 那个一个数字的补码在转换正负时不同的 对于存储中 首位一定是符号位 如果是0 那么是正数 如果是1 那么是负数 &#xff08;32位 除符号位 缺少的位数使用0补齐&#xff09; 如果是正数 …...

算法习题-力扣446周赛题解

算法可以调度思维&#xff0c;让程序员的思维发散&#xff0c;找到更好的解决方案。 第一题&#xff1a;执行指令后的得分 题目&#xff1a; 给你两个数组&#xff1a;instructions 和 values&#xff0c;数组的长度均为 n。你需要根据以下规则模拟一个过程&#xff1a; 从下标…...

基于共享上下文和自主协作的 RD Agent 生态系统

在llmangentmcp这个框架中&#xff1a; LLM&#xff1a; 依然是智能体的“大脑”&#xff0c;赋予它们理解、推理、生成和规划的能力&#xff0c;并且也用于处理和利用共享上下文。Agent&#xff1a; 具备特定 R&D 职能的自主单元&#xff0c;它们感知共享上下文&#xff0…...

Operating System 实验五 进程管理编程实验

实验目标: 写个多线程的程序,重现竞争条件,并通过信号量或者互斥量,解决临界区问题某工厂有两个生产车间和一个装配车间,两个生产车间分别生产A、B两种零件,装配车间的任务是把A、B两种零件组装成产品。两个生产车间每生产一个零件后,都要分别把它们送到装配车间的货架F…...

Deep Reinforcement learning for real autonomous mobile robot navigation

​​​​​​​https://www.youtube.com/watch?vKyA2uTIQfxw AI Learns to Park - Deep Reinforcement Learning https://www.youtube.com/watch?vVMp6pq6_QjI Q Learning simply explained | SARSA and Q-Learning Explanation https://www.youtube.com/watch?vMI8ByADM…...

计算机网络 | 应用层(4)--DNS:因特网的目录服务

&#x1f493;个人主页&#xff1a;mooridy-CSDN博客 &#x1f493;文章专栏&#xff1a;《计算机网络&#xff1a;自定向下方法》 大纲式阅读笔记_mooridy的博客-CSDN博客 &#x1f339;关注我&#xff0c;和我一起学习更多计算机网络的知识 &#x1f51d;&#x1f51d; 目录 …...

WPF核心技术解析与使用示例

WPF核心技术解析与使用示例 一、依赖属性(Dependency Property)详解 1. 依赖属性基础 ​​核心概念​​: 依赖属性是WPF实现数据绑定、样式、动画等特性的基础通过属性系统实现高效的内存管理和值继承​​标准定义模式​​: public class MyControl : Control {// 1. 定义…...

JVM运行机制全景图:从源码到执行的全过程

JVM运行机制全景图:从源码到执行的全过程 引言:你真的了解 Java 是怎么跑起来的吗? 许多开发者写完 Java 代码之后,就交给编译器和运行时去“神奇”地执行了。但你有没有想过,一段 .java 文件是如何一步步变成可运行的程序?今天,我们就从 源码 ➝ 字节码 ➝ 类加载 ➝…...

使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第二部分

在上一部分中,我们研究了如何使用 AFL++ 对简单的物联网二进制文件进行模糊测试。这些程序接受来自文件的输入,并且易于模糊测试。 在本文中,我们将研究套接字二进制文件。使用套接字进行网络通信的模糊测试二进制文件与使用基于文件 I/O 的模糊测试二进制文件不同。Vanill…...

在华为云平台上使用 MQTT 协议:构建高效可靠的物联网通信

&#x1f310; 在华为云平台上使用 MQTT 协议&#xff1a;构建高效可靠的物联网通信 随着物联网&#xff08;IoT&#xff09;技术的发展&#xff0c;设备间的高效通信变得尤为重要。MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;作为一种轻量级的消息传输…...

基于STM32的物流搬运机器人

功能&#xff1a;智能循迹、定距夹取、颜色切换、自动跟随、自动避障、声音夹取、蓝牙遥控、手柄遥控、颜色识别夹取、循迹避障、循迹定距…… 包含内容&#xff1a;完整源码、使用手册、原理图、视频演示、PPT、论文参考、其余资料 资料只私聊...

H.264/AVC标准主流开源编解码器编译说明

An artisan must first sharpen his tools if he is to do his work well. 工欲善其事,必先利其器. 前言 想研究和学习H.264/AVC视频编解码标准的入门的伙伴们,不论是学术研究还是工程应用都离不开对源码的分析,因此首要工作是对各类编解码器进行编译,本文针对主流的一些符…...

Xilinx FPGA支持的FLASH型号汇总

以博主这些年的FPGA开发使用经验来看&#xff0c;FPGA开发的主流还是以Xilinx FPGA为主&#xff0c;贸易战关税战打了这么多年&#xff0c;我们做研发的也不可避免的要涉及一些国产替代的工作&#xff1b;这里把Xilinx FPGA官方支持的各类&#xff08;国产和非国产&#xff09;…...

【C++ 类和数据抽象】消息处理示例(1):从设计模式到实战应用

目录 一、数据抽象概述 二、消息处理的核心概念 2.1 什么是消息处理&#xff1f; 2.2 消息处理的核心目标 三、基于设计模式的消息处理实现 3.1 观察者模式&#xff08;Observer Pattern&#xff09; 3.2 命令模式&#xff08;Command Pattern&#xff09; 四、实战场景…...

LiveCharts.WPF图表模块封装

WPF LiveCharts.WPF 封装实现 下面是一个完整的 WPF LiveCharts.WPF 封装实现,提供了常用图表的简单使用方式,并支持数据绑定和更新。 一、LiveCharts.WPF 封装类 1. 图表基类 (ChartBase.cs) using LiveCharts; using LiveCharts.Wpf; using System.Collections.Generic;…...

微信小程序,基于uni-app的轮播图制作,轮播图本地文件图片预览

完整代码 <template><swiper class"banner" indicator-dots circular :autoplay"false"><swiper-item v-for "item in picture" :key"item.id"><view><image tap"onPreviewImage(item.img)" :…...

【QQmusic】复习笔记第四章分点讲解

4.1 音乐加载 功能概述 该部分实现了从本地磁盘加载音乐文件到程序中&#xff0c;并在界面上显示的功能。通过QFileDialog类创建文件选择对话框&#xff0c;用户可选择多个音乐文件&#xff0c;程序筛选出有效音频文件后&#xff0c;交由MusicList类管理&#xff0c;并更新到…...

设置右键打开VSCode

在日常的开发工作中&#xff0c;VSCode 是一款非常受欢迎的代码编辑器。为了更加便捷地使用它&#xff0c;我们可以将 VSCode 添加到右键菜单中&#xff0c;这样只需右键点击文件或文件夹&#xff0c;就能快速用 VSCode 打开&#xff0c;极大地提高工作效率。下面我就来介绍一下…...

数据结构和算法(八)--2-3查找树

目录 一、平衡树 1、2-3查找树 1.1、定义 1.2、查找 1.3、插入 1.3.1、向2-结点中插入新键 1.3.2、向一棵只含有一个3-结点的树中插入新键 1.3.3、向一个父结点为2-结点的3-结点中插入新键 1.3.4、向一个父结点为3-结点的3-结点中插入新键 1.3.5、分解根结点 1.4、2…...

JSAPI2.4——正则表达式

一、语法 const str 一二三四五六七八九十 //判断内容 const reg /二/ //判断条件 console.log(reg.test(str)); //检查 二、test与exec方法的区别 test方法&#xff1a;用于判断是否符合规则的字符串&#xff0c;返回值是布尔值 exec方法&…...

FPGA 100G UDP纯逻辑协议栈

随着器件等级的升高&#xff0c;高速serdes的线速率也随之提高&#xff0c;RFSOC 4x最大可支持100G&#xff0c;主流方案为RDMA方案&#xff0c;该方案相对比较复杂&#xff0c;除了需要负责逻辑端的开发&#xff0c;还需操作系统中开发RDMA的驱动&#xff0c;对于对丢包不那么…...

分享一个可以批量巡检GET和POST接口的Shell脚本

一、场景痛点与需求分析 在分布式系统架构中&#xff0c;服务接口的可用性和稳定性直接影响业务连续性。当面临以下场景时&#xff0c;需批量巡检GET和POST接口&#xff1a; 上线验证&#xff1a;新版本发布后批量验证核心接口 故障恢复&#xff1a;异常数据修复后的批量重试…...

机器学习之一:机械式学习

正如人们有各种各样的学习方法一样&#xff0c;机器学习也有多种学习方法。若按学习时所用的方法进行分类&#xff0c;则机器学习可分为机械式学习、指导式学习、示例学习、类比学习、解释学习等。这是温斯顿在1977年提出的一种分类方法。 有关机器学习的基本概念&#xff0c;…...

区分PROJECT_SOURCE_DIR, CMAKE_SOURCE_DIR,CMAKE_CURRENT_SOURCE_DIR

目录 示例工程 PROJECT_SOURCE_DIR的行为 CMAKE_SOURCE_DIR的行为 CMAKE_CURRENT_SOURCE_DIR 示例工程 根目录 |-----CMakeLists.txt |-----sub1 |--------CMakeLists.txt |-----sub2 |--------CMakeLists.txt 根目录下的CMakeList.txt: project(main)message("main …...

Python循环结构深度解析与高效应用实践

引言&#xff1a;循环结构在编程中的核心地位 循环结构作为程序设计的三大基本结构之一&#xff0c;在Python中通过while和for-in两种循环机制实现迭代操作。本文将从底层原理到高级应用&#xff0c;全面剖析Python循环机制的使用技巧与优化策略&#xff0c;助您掌握高效迭代的…...

25【干货】在Arcgis中根据字段属性重新排序并自动编号的方法(二)

上一篇关于属性表自动编号的文章因为涉及到代码&#xff08;【干货】在Arcgis中根据字段属性重新排序并自动编号的方法&#xff08;一&#xff09;&#xff09;&#xff0c;担心大家有些东西确实不熟悉&#xff0c;今天就更新一篇不需要代码也能达到这个目的的方法。主要的思路…...

SinSR模型剪枝实验报告

SinSR模型剪枝实验报告 实验概述 我成功地对SinSR模型进行了L1范式剪枝&#xff0c;剪枝比例为50%。通过分析剪枝前后的模型参数和性能&#xff0c;我们得出了以下结论。 剪枝实现方法 创建专用的main_prune.py脚本&#xff0c;用于剪枝训练。创建quick_prune.py脚本&#…...

IT社团分析预测项目(pandas、numpy、sklearn)

IT社团人数的增长陷入迟滞&#xff0c;同时不同目标任务和不同经营模式的社团更是层出不穷。在面临内忧外患的情况下&#xff0c;本社团希望结合社团行业现状&#xff0c;分析同学和出勤的数据&#xff0c;挖据数据中的信息&#xff0c;通过对人数流失进行预测寻找到相应的对策…...