三大框架 之 Hibernate查询(一对多、多对多、查询关系)

2023-11-12

一对多

表之间关系

​ 一对多

  • 一个部门有多个员工,一个员工只能属于某一个部门
  • 一个班级有多个学生,一个学生只能属于一个班级

​ 多对多

  • 一个老师教多个学生,一个学生可以被多个老师教
  • 一个学生可以先择多门课程,一门课程可以被多个学生选择
  • 一个用户可以选择多个角色,一个角色也可以被多个用户选择

​ 一对一

  • 一个公司只能对应一个注册地址

表之间关系建表原则

​ 一对多
​ 在多的一方创建一个外键,指向一的一方的主键
​ 多对多
创建一个中间表,中间表至少有两个字段,分别作为外键指向多对多双方的主键
​ 一对一
​ 唯一外键对应
​ 主键对应

一对多关系配置

建立表

创建表的 hbm.xml文件时,有外键可不创建列的映射

主表为客户(Customer),从表为联系人(Linkman)

销售联系人(linkman),一个联系人只能属于某一个客户

CREATE TABLE `linkman` (
  `link_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '联系人编号(主键)',
  `link_name` varchar(16) DEFAULT NULL COMMENT '联系人姓名',
  `link_cust_id` bigint(32) NOT NULL COMMENT '客户id',
  `link_gender` char(1) DEFAULT NULL COMMENT '联系人性别',
  `link_phone` varchar(16) DEFAULT NULL COMMENT '联系人办公电话',
  `link_mobile` varchar(16) DEFAULT NULL COMMENT '联系人手机',
  `link_email` varchar(64) DEFAULT NULL COMMENT '联系人邮箱',
  `link_qq` varchar(16) DEFAULT NULL COMMENT '联系人qq',
  `link_position` varchar(16) DEFAULT NULL COMMENT '联系人职位',
  `link_memo` varchar(512) DEFAULT NULL COMMENT '联系人备注',
  PRIMARY KEY (`link_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

客户(customer),一个客户可以有多个联系人

CREATE TABLE `customer` (
  `cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',
  `cust_name` varchar(32) NOT NULL COMMENT '客户名称(公司名称)',
  `cust_source` varchar(32) DEFAULT NULL COMMENT '客户信息来源',
  `cust_industry` varchar(32) DEFAULT NULL COMMENT '客户所属行业',
  `cust_level` varchar(32) DEFAULT NULL COMMENT '客户级别',
  `cust_phone` varchar(64) DEFAULT NULL COMMENT '固定电话',
  `cust_mobile` varchar(16) DEFAULT NULL COMMENT '移动电话',
  PRIMARY KEY (`cust_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
关系图

1296811-20190414231404446-1384141617.png

建立ORM

实体类与数据库中建立字段关系
Customer 实体类(一个客户可以有多个联系人)
package com.myxq.domain;
import lombok.Getter;
import lombok.Setter;
import java.util.HashSet;
import java.util.Set;
@Getter@Setter
public class Customer {
    private Long cust_id;
    private String cust_name;
    private String cust_source;
    private String cust_industry;
    private String cust_level;
    private String cust_phone;
    private String cust_mobile;
    //建立一个客户可以有多个联系人
    //放置多的一方的集合,hibernate默认使用的是Set集合
    //如果使用List的话,它要对List进行排列,在表中要多建这一列,用来排序
    //一般使用的都是Set集合
    //现在是双向关联,从客户能查联系人,从联系人也能查客户
    private Set<Linkman> linkmens = new HashSet<>();
    @Override
    public String toString() {
        return "Customer{" +
                "cust_id=" + cust_id +
                ", cust_name='" + cust_name + '\'' +
                ", cust_source='" + cust_source + '\'' +
                ", cust_industry='" + cust_industry + '\'' +
                ", cust_level='" + cust_level + '\'' +
                ", cust_phone='" + cust_phone + '\'' +
                ", cust_mobile='" + cust_mobile + '\'' +
                '}';
    }
}
Linkman 实体类(一个联系人只能属于一个客户)
package com.myxq.domain;
import lombok.Getter;
import lombok.Setter;
@Getter@Setter
public class Linkman {
    private Long   link_id;
    private String link_name;
    private String link_gender;
    private String link_phone;
    private String link_mobile;
    private String link_email;
    private String link_qq;
    private String link_position;
    private String link_memo;
    private String link_cust_id;
    //一个联系人只对应一个客户
    private Customer customer;
    @Override
    public String toString() {
        return "Linkman{" +
                "link_id=" + link_id +
                ", link_name='" + link_name + '\'' +
                ", link_gender='" + link_gender + '\'' +
                ", link_phone='" + link_phone + '\'' +
                ", link_mobile='" + link_mobile + '\'' +
                ", link_email='" + link_email + '\'' +
                ", link_qq='" + link_qq + '\'' +
                ", link_position='" + link_position + '\'' +
                ", link_memo='" + link_memo + '\'' +
                ", link_cust_id='" + link_cust_id + '\'' +
                ", customer=" + customer +
                '}';
    }
}

添加配置文件

1.客户(Customer)实体类的配置文件

customer.hbm.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.myxq.domain.Customer" table="customer" >
        <!--建立类属性哪一个是主键  还要跟数据库当中主键进行对象-->
        <id name="cust_id" column="cust_id" >
            <generator class="native"/>
        </id>
        <!--建立类中的普通属性与数据库当中的表字段的映射,关联-->
        <property name="cust_name" column="cust_name" />
        <property name="cust_source" column="cust_source"/>
        <property name="cust_industry" column="cust_industry"/>
        <property name="cust_level" column="cust_level"/>
        <property name="cust_phone" column="cust_phone"/>
        <property name="cust_mobile" column="cust_mobile"/>
        <!--一对多-->
        <set name="linkmens" cascade="save-update,delete" inverse="true"><!--set属性名称-->
            <key column="link_cust_id"></key><!--外键-->
            <one-to-many class="com.myxq.domain.Linkman"></one-to-many>
        </set>

    </class>
</hibernate-mapping>

2.联系人(LinkMan)实体类配置文件
linkman.hbm.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.myxq.domain.Linkman" table="linkman" >
        <!--建立类属性哪一个是主键  还要跟数据库当中主键进行对象-->
        <!-- 设置主键与OID的对应关系 -->
        <id name="link_id" column="link_id" >
            <generator class="native"/>
        </id>
        <!--建立类中的普通属性与数据库当中的表字段的映射  注意:外键不用设置-->
        <property name="link_name" column="link_name" />
        <property name="link_gender" column="link_gender"/>
        <property name="link_phone" column="link_phone"/>
        <property name="link_mobile" column="link_mobile"/>
        <property name="link_email" column="link_email"/>
        <property name="link_qq" column=" link_qq"/>
        <property name="link_position" column=" link_position"/>
        <property name="link_memo" column=" link_memo"/>

        <!--
                many-to-one:配置多对一
                name:一的一方对象属性名称
                class:一的一方类的全路径
                column:多的一方表的外键名称
        -->
        <many-to-one name="customer" cascade="save-update" class="com.myxq.domain.Customer" column="link_cust_id"/>
    </class>
</hibernate-mapping>

在hibernate.cfg.xml中的标签里,添加核心配置文件

        <!--加载映射文件-->
        <mapping resource="com/myxq/domain/customer.hbm.xml" />
        <mapping resource="com/myxq/domain/linkman.hbm.xml" />
        <mapping resource="com/myxq/domain/role.hbm.xml" />
        <mapping resource="com/myxq/domain/user.hbm.xml" />

引入工具类

HibernateUtil.java

package com.myxq.utils;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {
    public static final SessionFactory sessionFactory;
    static {
        //1.加载配置文件
        Configuration configure = new Configuration().configure();
        //configure.addResource("com/myxq/domain/Customer.hbm.xml");
        //2.创建sessionFactory   --JDBC 连接池
        sessionFactory = configure.buildSessionFactory();
    }
    public static Session openSession(){
        Session session = sessionFactory.openSession();
        return  session;
    }
    public static Session getCurrentSession(){
        Session session = sessionFactory.getCurrentSession();
        return  session;
    }
}

编写测试类

1296811-20190414231458303-654554976.png

级联操作

问题
​ 在两张表建立一对多关系时,如果只保存一边的对象,就会发异常
示例
1296811-20190414231507535-610732438.png

什么是级联

​ 在操作一个对象的时候,是否会操作其关联的对象。

级联分类

​ 级联保存或更新
​ 级联删除

级联是有方向性

​ 在操作一的一方,是否会操作多的一方
​ 操作多的一方时, 是否会操作一的一方

级联保存或更新

级联保存

​ 操作的主体是谁,就要在谁的映射配置文件当中进行配置
​ 在开始配置的set当中添加一个新的属性cascade="save-update"

​ 在多的一方添加级联

1296811-20190414231520393-1992931546.png

​ 再去运行,就不会报异常,两条记录都会被添加
​ 在一的一方添加级联
1296811-20190414231525792-676804243.png

对象导航

​ 两方如果都加了级联,这种我们也称为双向导航
​ 设置双向导航时,当对象存在关系时, 就会做出对应的操作
1296811-20190414231531922-1572315907.png

级联更新

级联删除

删除一边数据时,同时将另一边的数据一并删除

不设置级联删除

​ 默认:先把外键改为空,然后再删除
1296811-20190414231543258-1809346149.png

​ 发送的SQL语句

1296811-20190414231548583-1732295320.png

设置级联删除

示例代码
1296811-20190414231559789-944169988.png

配置文件
1296811-20190414231606010-1821154390.png

在双向级联的过程当中,会产生一些多余的sql语句

1296811-20190414231613187-1449114963.png

原因
​ 当双向维护时,两都都维护了外键,当做更新操作时, 两边的外键都要去修改

解决办法

1.使用单向维护
​ 有些地方还是会有问题
2.一方放弃维护权
​ 在一的一方放弃外键维护权
​ 在配置文件当中添加一个inverse="false/true"
​ true为放弃外键维护权,false为不放弃外键维护权
1296811-20190414231619792-1736798039.png

cascade与inverse

​ cascade控制有没有关联对象
​ inverse控制有没有外键
​ 示例
1296811-20190414231625217-1845819812.png

lazy懒加载(默认值是proxy,不自动获取外键对象)

改成false,获取外键对象

在linkman.hbm.xml

<many-to-one  name="customer"   class="com.myxq.domain.Customer"   column="link_cust_id"    lazy="false"/>

级联保存或更新(解决 瞬时对象异常,只保存一边)

在customer.hbm.xml

<set name="linkmens" cascade="save-update,delete" inverse="true">
    <!--set属性名称-->
    <key column="link_cust_id"></key><!--外键-->
    <one-to-many class="com.myxq.domain.Linkman">
    </one-to-many>
</set>

多对多

多对多关系配置

建立表

用户表,一个用户可以有多个角色

CREATE TABLE `user` (
                  `user_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '用户id',
                  `user_code` varchar(32) NOT NULL COMMENT '用户账号',
                  `user_name` varchar(64) NOT NULL COMMENT '用户名称',
                  `user_password` varchar(32) NOT NULL COMMENT '用户密码',
                  `user_state` char(1) NOT NULL COMMENT '1:正常,0:暂停',
                  PRIMARY KEY (`user_id`)
                ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

角色表,一个角色可以被多个用户选择

CREATE TABLE `role` (
                  `role_id` bigint(32) NOT NULL AUTO_INCREMENT,
                  `role_name` varchar(32) NOT NULL COMMENT '角色名称',
                  `role_memo` varchar(128) DEFAULT NULL COMMENT '备注',
                  PRIMARY KEY (`role_id`)
                ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

关系图
1296811-20190414231643250-185557949.png

建立ORM

  • 用户
  • 角色


Role.java

import lombok.Getter;
import lombok.Setter;
import java.util.HashSet;
import java.util.Set;
@Setter@Getter
public class Role {
    private Long role_id;
    private String role_name;
    private String role_memo;
    //角色下面的所有用户
    private Set<User> users = new HashSet<>();
}

添加配置文件

用户
1296811-20190414231649169-61436774.png

角色
1296811-20190414231653619-1779649912.png

在核心配置文件当中添加两个新配置

1296811-20190414231700024-1927509140.png

编写测试类

单向维护

1296811-20190414231706356-289302931.png

双向维护

双向维护时,必须要有一方放弃外键维护
如果两边都有维护的话, 就会有重复的的记录,由于关系表是两个字段作为共同主键,不能有相同的记录
解决办法
​ 通常都是让被动方放弃,用户选角色,角色为被动方

1296811-20190414231715384-1758390655.png

多对多的级联操作和一对多的级联操作是一样的

多对多的操作

关系的操作,只需要操作集合,就可以操作它们之间的关系
给用户添加一个新的角色
1296811-20190414231721874-1100994936.png

修改一个用户的角色
1296811-20190414231727086-1357805808.png

删除角色

1296811-20190414231731840-1712150474.png

查询方式

OID查询

什么是OID查询

  • 根据对象的OID主键进行检索

OID查询方式

  • get方法
  • load方法

对象导航查询

什么是对象导航检索

  • Hibernate根据一个已经查询到的对象,获得其关联的对象的一种查询方式
  • 先查询到联系人,就可以通过联系人获取联系人所关联的客户对象

有点像级联查询

HQL

什么是HQL

  • HQL查询:Hibernate Query Language,Hibernate的查询语言
  • 是一种面向对象的方式的查询语言,语法类似SQL。
  • 通过session.createQuery(),用于接收一个HQL进行查询方式。
  • 注意:使用时,不能用*,对于表,要采用别名查询

查询

简单查询

1296811-20190414231739397-2058333059.png

别名查询

1296811-20190414231745052-1635800814.png

排序查询

1296811-20190414231749916-2048431802.png

条件查询

​ 位置绑定:根据参数的位置进行绑定条件
1296811-20190414231755928-1021082927.png

​ 名称绑定:把参数对应的值起一个名称 再去设置名称

1296811-20190414231800132-1657806237.png

投影查询

​ 查询对象的某个或某些属性
​ 单个属性
1296811-20190414231806996-298532259.png

​ 多个属性
1296811-20190414231814460-219821777.png

​ 查询多个属性,封装到对象当中
​ 要在类中,提供构造方法

1296811-20190414231818768-1106885184.png

分页查询

1296811-20190414231825765-577083286.png

统计查询

​ 查询的结构只有一个
1296811-20190414231832767-888413982.png

分组查询

1296811-20190414231837077-1986150995.png

多表查询

​ 普通内连接
1296811-20190414231842486-917302054.png

​ 迫切内连接

​ 通过hibernate将另一个对象的数据,封装该对象中

​ 在普通内连接inner join 后添加一个关键字fetch

1296811-20190414231847956-390774105.png

QBC

什么是QBC

​ Query By Criteria,条件查询。是一种更加面向对象化的查询的方式。

查询

简单查询

1296811-20190429222613135-328379047.png

排序查询

1296811-20190429222617684-1421158765.png

分页查询

1296811-20190429222622484-1708417077.png

条件查询

条件
=   eq
> gt
> =  ge
<  lt
<=  le
<> ne
like
in
and
or
单个条件

1296811-20190429222628873-280929077.png

多个条件

1296811-20190429222634155-472372961.png

1296811-20190429222639435-1271260892.png

统计查询

1296811-20190429222643916-1523338718.png

1296811-20190429222648431-1773545088.png

离线条件查询
  • 脱离Session,添加条件
  • 可以在外部提前使用DetachedCriteria对象提交设置好条件
  • 最后再绑定到session当中

1296811-20190429222654024-1387921310.png

转载于:https://www.cnblogs.com/mumuyinxin/p/10708180.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

三大框架 之 Hibernate查询(一对多、多对多、查询关系) 的相关文章

  • 菜单未显示在应用程序中

    由于某种原因 我的操作菜单在我的 Android Studio 应用程序中消失了 我正在按照教程学习如何创建 Android 应用程序 但最终遇到了这个问题 我正在使用 atm 的教程 http www raywenderlich com
  • 热重载在docker中运行的java程序

    我开发了一个java程序 应该在docker中运行 然而 我在调试docker中运行的java程序时遇到了很多痛苦 我在网上搜索 一些教程提出了像 spring dev tools 这样的工具 因为我的java程序是基于spring boo
  • 如何将 Java 赋值表达式转换为 Kotlin

    java中的一些东西就像 int a 1 b 2 c 1 if a b c System out print true 现在它应该转换为 kotlin 就像 var a Int 1 var b Int 2 var c Int 1 if a
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • 如何测试 JUnit 测试的 Comparator?

    我需要测试 Compare 方法 但我对如何测试感到困惑 我可以看看该怎么做吗 public class MemberComparator implements Comparator
  • 解决错误:日志已在具有多个实例的atomikos中使用

    我仅在使用atomikos的实时服务器上遇到问题 在我的本地服务器上它工作得很好 我在服务器上面临的问题是 init 中出错 日志已在使用中 完整的异常堆栈跟踪 java lang RuntimeException Log already
  • manifest.mf 文件的附加内容的约定?

    Java JAR 中的 MANIFEST MF 文件是否有任何超出 MANIFEST MF 约定的约定 JAR规范 http download oracle com javase 1 4 2 docs guide jar jar html
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • 在数据流模板中调用 waitUntilFinish() 后可以运行代码吗?

    我有一个批处理 Apache Beam 作业 它从 GCS 获取文件作为输入 我的目标是根据执行后管道的状态将文件移动到两个 GCS 存储桶之一 如果管道执行成功 则将文件移动到存储桶 A 否则 如果管道在执行过程中出现任何未处理的异常 则
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • Prim 的迷宫生成算法:获取相邻单元格

    我基于 Prim 算法编写了一个迷宫生成器程序 该算法是 Prim 算法的随机版本 从充满墙壁的网格开始 选择一个单元格 将其标记为迷宫的一部分 将单元格的墙壁添加到墙壁列表中 While there are walls in the li
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • Spring Data 与 Spring Data JPA 与 JdbcTemplate

    我有信心Spring Data and Spring Data JPA指的是相同的 但后来我在 youtube 上观看了一个关于他正在使用JdbcTemplate在那篇教程中 所以我在那里感到困惑 我想澄清一下两者之间有什么区别Spring
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • 如何修复“sessionFactory”或“hibernateTemplate”是必需的问题

    我正在使用 Spring Boot JPA WEB 和 MYSQL 创建我的 Web 应用程序 它总是说 sessionFactory or hibernateTemplate是必需的 我该如何修复它 我已经尝试过的东西 删除了本地 Mav
  • java迭代器内部是如何工作的? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个员工列表 List
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是

随机推荐

  • SonarLint(代码质量检测工具+案例+好习惯养成器)

    文章目录 参考文章 一 SonarLint是什么 代码质量检测器 SonarQube 和SonarCloud 二 代码质量问题案例 1 异常应该被记录或重新抛出 但不能同时被记录和重新抛出 2 局部变量不应该声明后立即返回或抛出 3 不使用
  • [carla]通过Twist指令控制carla中的车辆

    0 背景 通过carla ros bridge with example ego vehicle launch可以启动carla ros bridge 并在carla中生成一台可以遥控的车 roslaunch carla ros bridg
  • 前端js读取本地md或txt文件内容

  • mysql数据库日志查询

    Mysql数据库日志 日志分类 MySql日志类型 解析说明 错误日志 error log 当数据库启动 运行 停止时产生该日志 普通查询日志 general query log 客户端连接数据库执行语句时产生该日志 二进制日志 binar
  • 前端js拼接Json串

    前端js拼接json串 示例1 数组里面含对象 组成的json串 group
  • 带样式的HTML节点深拷贝

    引用自 摸鱼wiki 1 思路 使用 cloneNode true 深拷贝节点及其子节点的结构 利用 computedStyle 获取当前节点的样式 遍历获取的样式结构体 赋值给复制节点 递归子节点 循环进行2 3步 2 代码示例 func
  • 汽车保养项注意-2

    基本信息 大众朗逸刹车油每4万公里可更换一次 价格在200元左右 这应该定期更换 5万换一次即可 刹车片6 8万公里换一次 刹车盘7万公里 发动机内部养护 燃油系统养护 四轮定位是对整车行车轨迹的检查修正 包括悬挂 底盘 零部件等的调整 动
  • OAuth2四种模式

    OAuth2四种模式 一 隐式授权模式 Implicit Grant 流程图 步骤 优缺点及适用场景 二 授权码授权模式 Authorization code Grant 流程图 步骤 优缺点及适用场景 三 密码模式 Resource Ow
  • 计算机操作系统中常用算法总结

    计算机操作系统中常用算法总结 一 动态分区分配算法 1 首次适应算法 最先适应算法 按照分区的先后次序 从头开始查找 找到符合要求的第一个分区 2 循环首次适应算法 下次适应算法 按照分区的先后次序 从上次已分配的分区起查找 到达最后一个分
  • 上知天文,下知地理,还能替人写脚本!人工智能的进阶ChatGPT

    ChatGPT是OpenAI在11月30日推出的聊天机器人 于12月1日起对公众免费开放 自从这东西出来之后 大家对此的讨论热情越发浓烈 ChatGPT具体可以干些什么 帮你写论文 检讨书 情书 甚至情诗也能信手拈来 以上都是网友测试它写出
  • python numpy数组

    1 数组创建 import numpy arr numpy array 11 22 33 44 55 print arr 输出 11 22 33 44 55 数组属性查看 print type arr 输出
  • java 注解 @Retention @interface 元数据

    java注解 即是注释了 百度解释 也叫元数据 一种代码级别的说明 个人理解 就是内容可以被代码理解的注释 一般是一个类 元数据 也叫元注解 是放在被定义的一个注解类的前面 是对注解一种限制 只有两个 Retention 和 Target
  • 程序员常见系统错误代码大全:1到15841

    程序员常见系统错误代码大全 1到15841 提示 使用浏览器的Ctrl F键盘组合来搜索错误代码 要么搜索错误消息本身 要么只搜索错误代码 例如 错误代码635 系统错误代码大全 1到15841 错误代码1 功能不正确 ERROR INVA
  • IDEA获取gitee仓库的数据时,发生错误

    以本人遇到的情况为例 以上错误与本地的代码没有关系 主要原因是gitee仓库上的application yml配置文件的格式编写有误所导致 修改正确之后即可成功获取
  • DTO与Entity相互转化

    import java lang reflect Method import java util concurrent ConcurrentHashMap import org slf4j Logger import org slf4j L
  • 关于path用变量的问题思考

    1 用go解析路由时 中间件里相对路由做统一处理 或者是对于一组路由做处理 只能挨个正则去匹配 要不就多写代码 侵入业务 2 路由不可读 命名再不规范的话 抓包也痛苦 需要看代码才能理解这个接口是做什么的 和前端对接口时 前端 接口名字是什
  • 微服务回归单体,代码行数减少75%,性能提升1300%

    关注并星标腾讯云开发者 每周3 谈谈我在腾讯的架构设计经验 第5期 李浩津 13倍性能重构 搜索内容架构 C 微服务群改造 内容架构是 QQ 浏览器搜索的内容接入和计算层 主要负责腾讯域内的内容接入和处理 当前接入了多个合作方的上千类内容
  • leaflet可视化平台搭建

    leaflet viz Leaflet可视化平台 https github com zrysmt leaflet viz leaflet是一个开源的前端地图交互类库 比较轻量级 支持移动端 而且有丰富的插件资源可供我们使用 Echarts是
  • matplotlib绘制3d图形出现空白,解决办法

    如果出现如下图空白 或者出现下面报错MatplotlibDeprecationWarning Axes3D fig adding itself to the figure is deprecated since 3 4 Pass the k
  • 三大框架 之 Hibernate查询(一对多、多对多、查询关系)

    目录 一对多 表之间关系 表之间关系建表原则 一对多关系配置 建立表 建立ORM 添加配置文件 在hibernate cfg xml中的标签里 添加核心配置文件 引入工具类 编写测试类 级联操作 什么是级联 级联分类 级联是有方向性 级联保