id生成策略-(联合主键xml annotation)-5

本文介绍在XML配置文件中如何定义复合主键,并通过Java类实现序列化和重写equals与hashCode方法来确保对象的一致性和正确定位。同时探讨了三种不同的复合主键配置方法。

xml中:

  1. 新建主键类
 // 注意实现序列化,原因a:如果集群中某机器down掉,可能要求把对象写到其他服务器磁盘上;原因b:机器可能使用虚拟内存,将对象写磁盘上
 // 注意重写equals  hashCode  原因:对象有可能存内存的hash表里,不要hashCode确定位置,需要equals比较对象的一致
 public class StudentPK implements Serializable{
    private  int id;
    private  String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public boolean equals(Object o){
        if(o instanceof StudentPK){
            StudentPK s = (StudentPK)o;
            if(this.id == s.getId() && this.name == s.getName()){
                return true;
            }
        }
        return  false;
    }

    @Override
    public int hashCode(){
        return this.name.hashCode();
    }
}
  1. 实体中用主键类作为pk
  2. xml中配置映射
<class name="Student">
        <!--联合主键-->
        <composite-id name="pk" class="model.StudentPK">
           <key-property name="id"></key-property>
           <key-property name="name"></key-property>
        </composite-id>
        <property name="age"/>
    </class>

annotation中(3种方式):

1.将组件类注解为@Embeddable,并将组件的属性注解为@Id(不常用)

@Embeddable
public class TeacherPK implements Serializable{...}
public class Teacher {
...
@Id
    public TeacherPK getPk() {
        return pk;}
...
        }

2.将组件的属性注解为@EmbeddedId(第二第三选一种)

public class Teacher {
...
@EmbeddedId
    public TeacherPK getPk() {
        return pk;}
...
        }

3.将类注解为@IdClass,并将该实体中所有属于主键的属性都注解为@Id(第二第三选一种)

@IdClass(TeacherPK.class)
public class Teacher {
...
 @Id
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
    @Id
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
...}
标题中的“newshuangxiangquanqiao_双重移相DAB_双移相_双有源全桥_移相_双有源桥仿真_”指的是一个关于电力电子技术的项目,具体涉及的是双有源全桥(Dual Active Bridge, DAB)直流-直流(DC-DC)变换器的双重移相控制策略。这个项目可能包含了一个MATLAB/Simulink模型文件,用于模拟和分析这种特殊的电源转换拓扑。**双有源全桥(Dual Active Bridge, DAB)**:双有源全桥是一种四开关拓扑,具有两个输入端和两个输出端,每个端口都有一个开关元件,可以作为电流的源或负载。这种结构允许双向功率流动,使得能量可以在直流电源之间双向转换,常用于隔离型DC-DC变换器、电池管理系统以及无线能量传输系统。**双重移相(Double-Phase Shift)**:在双有源全桥变换器中,双重移相是一种控制方法,它通过调节两个半桥的开关频率和相位差来实现功率转换和控制。这种方法可以改善效率、减小电压应力和电流纹波,同时实现软开关,降低开关损耗。通常,相位差可以通过0到180度之间变化,以控制输出电压和电流的波形。**移相控制**:移相控制是电源转换器中常用的一种调制策略,通过改变开关信号的相位与基准信号之间的相位差,来调节输出电压或电流的平均值。在双有源全桥中,移相控制可以实现更精细的功率控制,并且有助于降低开关损耗,提高系统效率。**双有源桥仿真**:进行双有源全桥的仿真,通常使用MATLAB/Simulink这样的工具,能够模拟电路的行为,测试不同条件下的工作状态,包括开关模式、控制策略、动态响应等。通过仿真,工程师可以分析系统的性能,优化设计参数,预测可能出现的问题,并在实际硬件构建前进行调整。在“newshuangxiangquanqiao.slx”文件中,预计包含了双有源全桥DC-DC变换器的Simulink模型,用户可以通过打开这个文件,观察并运行仿真,理解双重移相控制的工作原理,以及如何通过调整参数来影响变换器的性能。此外,可能还包含了控制算法的详细设计,例如PWM(脉宽调制)生成、环路控制等,这些都是实现高效稳定运行的关键组成部分。这个项目旨在探讨双有源全桥变换器在双重移相控制下的工作特性,通过MATLAB仿真,可以帮助我们深入理解这种拓扑的动态行为,优化其控制策略,为实际应用提供理论支持。
CH340串口驱动是针对使用CH340和CH341系列USB转串口芯片的设备而设计的一款重要驱动程序。这些芯片广泛应用于各种电子设备中,如Arduino开发板、模块化电子模块、无线通信设备等,因为它们能方便地将设备连接到个人计算机的USB接口进行数据传输。驱动程序是操作系统与硬件设备之间的桥梁,确保系统能够识别并正确通信。我们要理解串口通信的基本概念。串行通信是一种数据传输方式,数据以比特流的形式按顺序逐位发送,通常用于连接距离较远的设备,因为它比并行通信更节省线路。在个人计算机上,传统的串口(COM口)逐渐被USB接口取代,而CH340和CH341芯片就是实现这种转换的关键组件。CH340和CH341芯片的主要功能包括:1. USB到串口的桥接:这两款芯片可以将USB信号转换为RS-232串行通信协议,使得不支持USB的设备可以通过USB接口与计算机通信。2. 支持多种波特率:它们能够适应各种波特率设置,如9600、115200等,以满足不同应用的需求。3. 兼容性广泛:由于支持32位和64位的Windows系统,包括最新的Windows 11,它们可以用于大多数现代计算机。驱动程序安装过程:1. 下载:用户需要找到与自己系统兼容的CH340串口驱动程序,例如"CH341SER"文件,通常是一个可执行的安装程序或ZIP压缩包。2. 解压:如果下载的是压缩文件,需先解压得到安装文件。3. 安装:运行安装程序,按照提示完成驱动的安装。通常会自动识别已连接的CH340或CH341设备,并安装相应的驱动。4. 验证:安装完成后,可以通过设备管理器检查是否成功安装。在“端口”类别下,应该能看到新增的虚拟串口,如COM3、COM4等。在实际应用中,CH340串口驱动还有以下几点需要注意:1. 如果设备在安装驱动后仍无法识别,可能需要检查USB线连接是否
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值