三极管开关电路设计:NPN低边与PNP高边驱动原理及选型指南
1. 从一个实际需求说起为什么开关电路值得单独拿出来讲搞电子设计的人都有一个共识三极管开关电路是所有数字控制与功率驱动之间的第一道桥梁。你手上有单片机、有传感器、有各种逻辑电平信号但它们输出的电流通常只有几毫安到十几毫安驱动能力非常有限。而现实世界里的负载——继电器、LED灯带、小型直流电机、蜂鸣器——动不动就要几十毫安甚至几百毫安。这中间的落差就得靠三极管开关电路来填。我见过太多初学者在这个环节翻车。有人拿单片机IO口直接怼继电器结果IO口烧了有人用NPN三极管做高边开关发现怎么都关不断还有人分不清NPN和PNP的用法把电路搭出来之后波形完全不对。这些问题看起来简单但背后涉及的是对三极管导通条件、电流路径、电平逻辑的系统性理解。这篇文章要解决的核心问题就一个如何根据负载的位置和控制的逻辑正确选择NPN或PNP三极管搭建一个稳定可靠的开关电路。我会从最基础的导通截止条件讲起把NPN低边开关和PNP高边开关两种经典拓扑拆开揉碎给出完整的电路图、参数计算过程、实操步骤以及我在实际项目中踩过的坑和总结的排查技巧。适合谁看如果你正在学单片机、做嵌入式开发、搞电子DIY或者工作中需要设计简单的驱动电路这篇内容可以直接拿来当参考模板。不需要高深的模电基础但基本的欧姆定律和串并联概念要有。2. 先把底层逻辑搞清楚NPN和PNP到底差在哪2.1 三极管作为开关的本质控制电流路径三极管在开关应用中的核心思想是用一个小的基极电流去控制一个大的集电极-发射极电流。你可以把它想象成一个电流控制的水龙头基极是手柄集电极和发射极之间的通道是水管。手柄稍微一拧基极有电流水管就打开集电极-发射极导通手柄松掉基极没电流水管就关上。但NPN和PNP这两个水龙头的结构不一样导致它们的控制逻辑和电流方向完全相反。NPN三极管的符号里箭头从基极指向发射极表示常规电流从集电极流向发射极。它的导通条件是基极电位比发射极电位高出一个PN结压降约0.7V。也就是说当Vbe 0.7V时三极管进入饱和导通状态集电极和发射极之间相当于一个闭合的开关。PNP三极管的箭头从发射极指向基极电流从发射极流向集电极。它的导通条件是基极电位比发射极电位低出一个PN结压降约0.7V。即Veb 0.7V时导通注意这里的参考方向是发射极相对于基极。这个差异直接决定了两种管子在电路中的位置NPN通常放在负载的下方低边开关PNP通常放在负载的上方高边开关。为什么往下看。2.2 低边开关与高边开关负载接在哪一端低边开关的意思是负载一端接电源正极另一端接三极管的集电极三极管的发射极接地。三极管控制的是负载与地之间的通路。NPN天生适合这个位置因为它的发射极接地基极只需要一个相对于地的正电压就能导通控制起来非常方便。高边开关的意思是负载一端接地另一端接三极管的集电极三极管的发射极接电源正极。三极管控制的是电源与负载之间的通路。PNP适合这个位置因为它的发射极接电源正极基极只需要被拉低到比电源低0.7V以下就能导通。这里有一个非常关键的实操要点NPN做高边开关会非常别扭。因为NPN的集电极要接电源发射极接负载导通时发射极电压会跟随基极电压减去0.7V导致负载上的电压永远比控制电压低一个PN结压降而且基极驱动电压必须高于电源电压才能完全导通。这就是为什么高边开关通常用PNP而不是NPN。反过来PNP做低边开关同样别扭。PNP的发射极要接负载集电极接地导通时发射极电压会被拉到比基极低0.7V而基极又需要被拉到更低才能维持导通逻辑上很绕。所以记住一个简单的对应关系NPN对应低边开关PNP对应高边开关。这是最自然、最稳定的搭配。2.3 导通与截止的定量条件光知道定性还不够实际设计时要算清楚电压和电流。以NPN为例假设发射极接地基极通过一个限流电阻接控制信号截止条件Vbe 0.5V实际低于0.7V就开始关断但为了可靠截止通常要求Vbe 0.3V甚至更低。此时集电极-发射极之间几乎没有电流相当于开关断开。导通条件Vbe 0.7V且基极电流Ib足够大使三极管进入饱和区而不是放大区。饱和区的标志是Vce降到0.1V~0.3V左右集电极-发射极之间相当于一个很小的电阻。这里有一个新手最容易犯的错误只给基极加电压不给足够的基极电流。三极管是电流控制器件不是电压控制器件。Vbe达到0.7V只是打开了门但要让集电极流过足够的电流基极必须注入足够的电流。通常取Ib Ic / 10也就是说如果负载需要100mA基极至少要给10mA。这个10倍的比值叫强制β值比三极管手册上的hFE小很多目的是确保深度饱和降低Vce减少发热。PNP的逻辑完全对称发射极接电源正极基极通过限流电阻接地或接控制信号。截止时Veb 0.5V导通时Veb 0.7V且Ib足够大。3. NPN低边开关电路从原理图到参数计算3.1 完整电路图与元件清单先看NPN低边开关的经典电路。假设我们要用单片机的一个IO口输出3.3V或5V控制一个5V继电器继电器线圈电阻约70Ω吸合电流约70mA。电路连接如下继电器线圈一端接5V另一端接NPN三极管的集电极。NPN三极管的发射极接地。基极通过一个限流电阻Rb接单片机IO口。在基极和地之间可以加一个下拉电阻Rbe可选但强烈建议防止IO口悬空时三极管误导通。在继电器线圈两端反向并联一个续流二极管如1N4148或1N4007阴极接5V阳极接集电极。元件清单元件型号/参数作用NPN三极管2N3904 / S8050 / BC547开关管基极电阻Rb1kΩ限制基极电流下拉电阻Rbe10kΩ确保可靠截止续流二极管1N4148吸收线圈反向电动势继电器5V线圈负载3.2 基极电阻的计算过程基极电阻Rb的选型是NPN开关电路设计的核心。计算步骤如下第一步确定负载电流Ic。继电器线圈电阻70Ω供电5VIc 5V / 70Ω ≈ 71mA。取整为70mA。第二步确定强制β值。为了让三极管深度饱和取β_forced 10。那么需要的基极电流Ib Ic / β_forced 70mA / 10 7mA。第三步计算Rb。单片机IO口输出高电平为3.3V如果是5V单片机则用5V。三极管Vbe取0.7V。Rb (Vio - Vbe) / Ib (3.3V - 0.7V) / 7mA 2.6V / 7mA ≈ 371Ω。实际选型时取标准值330Ω或470Ω都可以。如果取330ΩIb 2.6V / 330Ω ≈ 7.9mA比计算值稍大饱和更深更安全。如果取470ΩIb 2.6V / 470Ω ≈ 5.5mAβ_forced 70/5.5 ≈ 12.7仍然可以接受但余量小一些。注意如果你用的是5V单片机Rb可以取1kΩ左右。Ib (5V - 0.7V) / 1kΩ 4.3mAβ_forced 70/4.3 ≈ 16.3。对于2N3904这种hFE在100以上的管子16倍的强制β值仍然能保证饱和但Vce会略高约0.2V~0.3V。如果负载电流更大建议把Rb减小到470Ω甚至330Ω。第四步验证功耗。三极管导通时Vce ≈ 0.2VIc 70mA功耗P Vce × Ic 0.2V × 70mA 14mW。2N3904的额定功耗是625mW完全没问题。截止时Vce 5VIc ≈ 0功耗几乎为零。3.3 下拉电阻的作用与选型下拉电阻Rbe接在基极和地之间作用是当单片机IO口处于高阻态比如复位期间、未初始化时时把基极电压拉到地确保三极管可靠截止。如果没有这个电阻IO口悬空时基极可能感应到环境噪声而误导通继电器就会乱动。Rbe的选型原则是不能太小否则会分走太多基极电流不能太大否则起不到下拉作用。通常取10kΩ。计算一下当IO口输出3.3V时Rbe上的电压是0.7V电流是0.7V / 10kΩ 0.07mA相对于7mA的基极电流来说只占1%完全可以忽略。当IO口悬空时Rbe把基极拉到0V三极管可靠截止。3.4 续流二极管为什么必须加继电器、电机、蜂鸣器这类感性负载在断电瞬间会产生反向电动势。以继电器为例线圈电感在电流突变时会产生V -L × di/dt的电压尖峰幅度可能达到几十伏甚至上百伏。这个尖峰加在三极管的集电极上很容易超过Vceo额定值2N3904是40V导致三极管击穿。续流二极管的作用是给这个反向电流提供一个回路。当三极管关断时线圈中的电流通过二极管流回电源正极把尖峰电压钳位在电源电压加一个二极管压降约0.7V的水平。二极管的方向不能接反阴极接电源正极阳极接集电极。接反了不仅起不到保护作用还会在导通时把电源短路。实操心得续流二极管要选反向恢复时间短的型号比如1N4148硅开关二极管或1N5819肖特基二极管。1N4007虽然电流大但反向恢复时间较长在高频开关场合不太合适。对于继电器这种低频负载1N4007也能用但1N4148更稳妥。4. PNP高边开关电路负载接地的场景怎么搞4.1 什么时候必须用PNP有些场景下负载的一端必须接地不能接电源。比如某些传感器、某些LED灯串的负极共地设计或者你需要在电源正极和负载之间加一个开关。这时候NPN低边开关就不适用了必须用PNP做高边开关。PNP高边开关的电路结构PNP三极管的发射极接电源正极比如12V集电极接负载的一端负载的另一端接地。基极通过限流电阻接控制信号。控制信号通常是NPN三极管或者N沟道MOS管提供的低电平信号。这里有一个关键点PNP的基极不能直接接单片机IO口因为单片机IO口的高电平通常只有3.3V或5V而PNP的发射极接的是12V。如果基极接3.3VVeb 12V - 3.3V 8.7V远大于0.7VPNP会一直导通关不断。所以必须用一个NPN三极管做电平转换把控制信号变成拉低到地或悬空两种状态。4.2 两级驱动电路的设计完整的PNP高边开关电路通常包含两级第一级NPN三极管做电平转换。单片机IO口接NPN的基极通过限流电阻NPN的发射极接地集电极通过一个上拉电阻接12V同时接PNP的基极。当单片机输出高电平时NPN导通把PNP的基极拉到地PNP导通负载得电。当单片机输出低电平时NPN截止PNP的基极被上拉电阻拉到12VVeb 0VPNP截止负载断电。第二级PNP三极管做高边开关。PNP的发射极接12V集电极接负载基极接第一级NPN的集电极。这个电路的本质是用低电平控制高边开关。单片机输出高电平负载通电输出低电平负载断电。逻辑是正逻辑符合直觉。4.3 参数计算与选型要点假设负载是一个12V、100mA的电磁阀。PNP选型集电极电流100mAVceo要大于12V选2N5401Vceo -150VIc -600mA或BC557Vceo -45VIc -100mA。注意PNP的电流和电压参数通常用负值表示这是约定俗成的。PNP基极电阻强制β值取10Ib 100mA / 10 10mA。Veb 0.7V基极电阻接在12V和基极之间当第一级NPN导通时基极被拉到地电阻上的电压是12V - 0.7V 11.3V。Rb 11.3V / 10mA 1.13kΩ取1kΩ。第一级NPN选型集电极电流就是PNP的基极电流10mA选2N3904即可。基极电阻单片机输出3.3VIb 10mA / 10 1mA这里NPN的负载是PNP的基极电流不大强制β值可以取大一些比如20。Rb (3.3V - 0.7V) / 1mA 2.6kΩ取2.2kΩ或3.3kΩ。上拉电阻接在12V和PNP基极之间作用是当第一级NPN截止时把PNP基极拉到12V。阻值不能太小否则第一级NPN导通时会有大电流流过也不能太大否则PNP关断速度慢。通常取10kΩ。当第一级NPN导通时上拉电阻上的电流是12V / 10kΩ 1.2mA加上PNP基极电流10mA总共11.2mA2N3904完全能承受。注意PNP高边开关的关断速度受上拉电阻和PNP输入电容的影响。如果开关频率较高上拉电阻要减小到4.7kΩ甚至2.2kΩ但要注意第一级NPN的电流承受能力。对于继电器、电磁阀这种低频负载10kΩ足够了。4.4 NPN和PNP的对照速查表特性NPN低边开关PNP高边开关负载位置电源正极与集电极之间集电极与地之间发射极接地电源正极导通条件Vbe 0.7VVeb 0.7V控制逻辑高电平导通低电平导通经电平转换后高电平导通基极驱动直接接IO口加限流电阻需NPN或NMOS做电平转换适用场景负载共地负载共电源5. 实操过程从面包板到PCB的完整记录5.1 面包板验证阶段我建议所有开关电路在正式画PCB之前先在面包板上搭一遍。这一步花不了多少时间但能帮你发现很多纸面上看不出来的问题。NPN低边开关的搭建步骤把2N3904插在面包板上注意引脚顺序面对平面从左到右依次是发射极、基极、集电极2N3904的TO-92封装。发射极接面包板的负极轨地集电极接继电器线圈的一端。继电器线圈的另一端接正极轨5V。基极接330Ω电阻的一端电阻的另一端接单片机IO口或者用杜邦线接开发板。基极和地之间接10kΩ下拉电阻。继电器线圈两端反向并联1N4148阴极接5V阳极接集电极。用万用表测集电极对地电压IO口输出高电平时Vce应低于0.3V输出低电平时Vce应接近5V。PNP高边开关的搭建步骤把2N5401插在面包板上发射极接12V集电极接电磁阀的一端电磁阀另一端接地。2N3904的集电极接2N5401的基极同时通过10kΩ上拉电阻接12V。2N3904的发射极接地基极通过2.2kΩ电阻接单片机IO口。2N3904基极和地之间接10kΩ下拉电阻。电磁阀两端反向并联1N4007阴极接12V阳极接2N5401集电极。测2N5401集电极对地电压IO口高电平时应接近12V低电平时应接近0V。5.2 常见波形与实测数据我用示波器抓过NPN低边开关的波形。单片机IO口输出3.3V方波频率1kHz占空比50%。基极电压波形是一个干净的方波高电平3.3V低电平0V。集电极电压波形与基极反相基极高时集电极低约0.15V基极低时集电极高约5V。上升沿和下降沿都有轻微的延迟大约几百纳秒这是三极管的开关时间造成的。2N3904的开启时间约35ns关闭时间约250ns对于1kHz的信号来说完全可以忽略。但如果你的开关频率到了几十kHz就要考虑开关损耗了。PNP高边开关的波形稍微复杂一点。第一级NPN的集电极电压在0V和12V之间切换第二级PNP的集电极电压也在0V和12V之间切换但相位相反。实测下来PNP的关断时间比NPN长一些因为PNP的载流子存储效应更明显。2N5401的关闭时间约300ns仍然够用。5.3 从面包板到PCB的注意事项面包板验证通过后画PCB时要注意几点走线宽度负载电流100mA以下走线宽度0.3mm约12mil就够了。如果负载电流500mA以上走线要加宽到0.5mm以上或者铺铜。大电流路径尽量短而粗减少压降和发热。散热如果三极管的功耗超过100mW要考虑加散热片或者换更大的封装。比如SOT-23封装的2N3904额定功耗只有350mW而TO-92封装有625mW。如果负载电流500mAVce 0.3V功耗150mWSOT-23封装勉强可以但夏天高温环境下建议换SOT-223封装的管子。续流二极管的位置续流二极管要尽量靠近负载不要放在PCB的另一端。因为反向电动势是负载产生的二极管离负载越近保护效果越好。如果负载在板外二极管要放在板上的连接器附近。地线处理大电流的地线和小信号的地线要分开走最后在电源入口处单点接地。否则负载电流在地线上的压降会串到控制信号里导致误触发。6. 常见问题与排查技巧实录6.1 三极管发热严重甚至烧毁这是最常见的问题。原因通常有三个原因一基极电流不足三极管没有进入饱和区。如果三极管工作在放大区Vce可能高达几伏功耗P Vce × Ic会非常大。比如Vce 3VIc 100mA功耗就是300mW2N3904会烫得摸不得。排查方法用万用表测Vce如果大于0.5V说明没有饱和需要减小基极电阻。原因二负载电流超过三极管额定值。2N3904的最大集电极电流是200mA如果你用它驱动500mA的负载不烧才怪。排查方法查手册确认Ic额定值留至少50%的余量。原因三感性负载没有加续流二极管。反向电动势击穿三极管表现为三极管短路或开路。排查方法检查续流二极管是否接反或漏接。6.2 三极管关不断原因一基极悬空。没有下拉电阻IO口高阻态时基极电压不确定三极管可能误导通。解决方法加10kΩ下拉电阻。原因二PNP高边开关的基极电压不够低。如果第一级NPN没有完全导通PNP的基极电压可能只降到几伏Veb仍然大于0.7VPNP继续导通。排查方法测第一级NPN的Vce应低于0.3V。原因三漏电流。三极管在高温下漏电流增大可能导致轻微导通。解决方法换漏电流更小的管子或者在基极加一个反向偏置电阻。6.3 开关速度慢波形边沿不陡原因一基极电阻太大。基极电阻大基极电流小三极管从截止到饱和的过渡时间长。解决方法减小基极电阻但要注意不要超过IO口的驱动能力。原因二上拉电阻太大PNP高边开关。上拉电阻大PNP基极的充电时间长关断慢。解决方法减小上拉电阻到4.7kΩ或2.2kΩ。原因三三极管本身的开关时间。普通三极管的开关时间在几百纳秒量级如果要求更快的开关速度需要选开关三极管如2N2369或者用MOS管。6.4 常见问题速查表现象可能原因排查方法解决方法三极管发热未饱和、过流、无续流测Vce、查Ic、查二极管减小Rb、换大管子、加二极管关不断基极悬空、驱动不足、漏电测Vbe、测Vce、加热测试加下拉、换驱动、换管子开关慢Rb大、上拉大、管子慢看波形边沿减小电阻、换开关管负载不工作三极管接反、电源不足测各点电压检查引脚、查电源误触发地线干扰、噪声耦合看波形毛刺分开地线、加滤波电容实操心得排查三极管电路时万用表是最有用的工具。先测Vbe判断三极管是否导通再测Vce判断是否饱和最后测负载电压判断负载是否得电。三步下来90%的问题都能定位。7. 进阶话题从三极管开关到MOS管开关三极管开关电路虽然经典但在大电流、高频率场合MOS管正在取代三极管。原因很简单MOS管是电压控制器件栅极几乎不消耗电流驱动功率极低导通电阻Rds(on)可以做到几毫欧导通损耗远小于三极管的Vce饱和压降。比如你要驱动一个5A的负载用三极管的话Vce 0.3V功耗1.5W需要加散热片。用MOS管的话Rds(on) 10mΩ功耗只有0.25W几乎不发热。而且MOS管的开关速度可以做到几十纳秒适合高频PWM应用。但三极管也有它的优势便宜、皮实、驱动简单。对于100mA以下的负载三极管开关电路仍然是最经济的选择。而且理解了三极管开关的原理再学MOS管开关会容易很多因为两者的拓扑结构是相通的NPN对应N沟道MOS低边开关PNP对应P沟道MOS高边开关。如果你要把这篇文章的电路升级成MOS管版本只需要把NPN换成2N7000或AO3400把PNP换成AO3401或IRF9540基极电阻换成栅极电阻通常10Ω~100Ω下拉电阻保留。其他部分基本不变。8. 我个人的几点经验体会第一个体会是不要迷信仿真但仿真确实能省时间。Multisim和LTspice都能很好地仿真三极管开关电路你可以在软件里快速验证参数是否合理波形是否正确。但仿真模型和实际元件有差异尤其是三极管的饱和压降和开关时间仿真结果只能参考。最终还是要搭实物验证。第二个体会是基极电阻宁小勿大。很多初学者怕烧三极管把基极电阻取得很大结果三极管工作在放大区发热更严重。实际上只要基极电流不超过IO口的驱动能力通常20mA基极电阻小一点反而更安全因为三极管深度饱和后Vce很低功耗很小。第三个体会是续流二极管不是可选项是必选项。我见过太多因为省掉一个二极管而烧掉三极管的案例。一个1N4148才几分钱烧一个三极管或者换一个继电器就是几块钱这笔账怎么算都划算。第四个体会是PNP高边开关的电平转换级不能省。有些人想直接用单片机IO口驱动PNP结果要么关不断要么烧IO口。老老实实用一个NPN做电平转换多花一个三极管和一个电阻换来的是稳定可靠。最后分享一个小技巧如果你手头没有合适的基极电阻可以用两个电阻串联或并联来凑。比如需要330Ω手头只有220Ω和100Ω串联就是320Ω误差在可接受范围内。电子设计不是精密仪器5%的误差完全没问题。

相关新闻

GLES2渲染优化:减少状态切换提升移动端帧率

GLES2渲染优化:减少状态切换提升移动端帧率

1. 这不是简单的“加速”,而是对《植物大战僵尸》移植版渲染逻辑的外科手术式重构你搜“PvZ-Portable安卓版”时,刷到的大多是“秒装”“免root”“高清重制”这类关键词;点开评论区,高频出现的却是“卡顿”“掉帧”“发热严重”“…

2026/10/8 23:08:43 阅读更多 →
superpowers 技能框架:AI 编程代理的工程化实践指南

superpowers 技能框架:AI 编程代理的工程化实践指南

1. 拆解 superpowers:它到底想解决什么问题第一次看到 “superpowers” 这个词,很多人会以为是某个超级英雄题材的游戏或者娱乐项目。但如果你最近在关注 AI 辅助编程这个圈子,就会发现它其实是一个面向agentic skills framework的软件工程方…

2026/10/8 23:08:43 阅读更多 →
AI Agent Skills 从安装到开发:npx 实操与避坑指南

AI Agent Skills 从安装到开发:npx 实操与避坑指南

1. 从"skills"这个热词说起:它到底指什么最近一段时间,不管是在技术社区还是各类开发者群组里,"skills"这个词出现的频率高得离谱。很多人第一次看到"skills"这个词,脑子里浮现的是"技能"…

2026/10/8 23:07:22 阅读更多 →

最新新闻

Linux:搜索命令which、whereis、loacte和find详解

Linux:搜索命令which、whereis、loacte和find详解

相关文章 Linux专栏https://blog.csdn.net/weixin_45791458/category_12234591.html 目录 1、which 2、whereis 3、locate 4、find 1、which which命令通常被用来搜索拥有可执行状态的文件(命令),因为它在环境变量$PATH指定的目录中搜索命令…

2026/10/9 1:16:53 阅读更多 →
SQLDelight 类型系统实战指南:SQLite 类型映射、自定义列类型(ColumnAdapter)与 Value 类型

SQLDelight 类型系统实战指南:SQLite 类型映射、自定义列类型(ColumnAdapter)与 Value 类型

后端ORM 【免费下载链接】sqldelight SQLDelight - Generates typesafe Kotlin APIs from SQL 项目地址: https://gitcode.com/gh_mirrors/sq/sqldelight 点击查看 免费下载 导读 本文以 SQLDelight 官方文档中的 SQLite 类型章节为核心,系统讲解 SQLD…

2026/10/9 1:16:53 阅读更多 →
将FME拓展到ArcMap中

将FME拓展到ArcMap中

我们付出一些成本,时间的或者其他,最终总能收获一些什么。 主要参考的使用FME拓展ArcGIS和将FME集成到ArcGIS中 本人电脑上安装的为Arcmap10.8和FME2020 首先,将安装的FME中的FME integration Console 以管理员身份打开 点击下面的位置是一…

2026/10/9 1:16:53 阅读更多 →
游戏设计梦工厂 C1(完结) 游戏的核心是体验

游戏设计梦工厂 C1(完结) 游戏的核心是体验

书里的干货实在是太多了,第一章奔着5000字去了,后续会考虑适当的拆分便于阅读; 本书总共分了三个篇章: 一、游戏设计基础 二、设计一款游戏 三、像一名游戏设计师一样工作 本章C1(第一章 游戏设计师的角色)属于书里第一篇: 游戏设计基础。 0 序和综述 1 游戏设计师的…

2026/10/9 1:16:53 阅读更多 →
CloudQuery Kinesis Firehose 目标插件配置指南:从 `stream_arn` 到批量写入参数的完整解析

CloudQuery Kinesis Firehose 目标插件配置指南:从 `stream_arn` 到批量写入参数的完整解析

数据集成数据工程数据分析 【免费下载链接】cloudquery Data pipelines for cloud config and security data. Build cloud asset inventory, CSPM, FinOps, and vulnerability management solutions. Extract from AWS, Azure, GCP, and 70 cloud and SaaS sources. 项目地址&…

2026/10/9 1:16:53 阅读更多 →
sql的in语句在gorm中的查询方式模型分享

sql的in语句在gorm中的查询方式模型分享

目录 背景 思路&代码模型 附带测试对比 背景 条件查询,可能的两种查询方式: 第一种:select a,b from Table where c in(1,2); 第二种:select a,b from Table where c 1;select a,b from …

2026/10/9 1:15:52 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 13:34:55 阅读更多 →