Myvatis关联关系映射与表对象之间的关系
目录
一、关联关系映射
1.1 一对一
1.2 一对多
1.3 多对多
二、处理关联关系的方式
2.1 嵌套查询
2.2 嵌套结果
三、一对一关联映射
3.1 建表
编辑 3.2 配置文件
3.3 代码生成
3.4 编写测试
四、一对多关联映射
五、多对多关联映射
六、小结
一、关联关系映射
MyBatis是一款优秀的持久层框架,它提供了强大的关联关系映射能力。在MyBatis中,我们可以使用XML或注解来定义关联关系映射。
1.1 一对一
一对一关联映射:
- 在XML中,我们可以使用<resultMap>元素来定义一对一关联映射,可以通过<association>来指定关联对象的映射规则。
- 注解中,可以使用@One注解来定义一对一关联映射。
1.2 一对多
一对多关联映射:
- 在XML中,我们可以使用<resultMap>元素来定义一对多关联映射,可以通过<collection>来指定关联对象集合的映射规则。
- 注解中,可以使用@Many注解来定义一对多关联映射
1.3 多对多
多对多关联映射:
- 在XML中,我们可以使用<resultMap>元素来定义多对多关联映射,可以通过<collection>来指定中间表关联对象的映射规则。
- 注解中,可以使用@Many注解来定义多对多关联映射
同时,MyBatis还提供了一些常见的关联关系映射的配置选项,例如延迟加载、级联操作等,可以根据具体需求进行配置。
总的来说,MyBatis的关联关系映射定义非常灵活,可以根据需求使用XML或注解来进行配置,提供了丰富的选项来满足不同场景下的需求。
二、处理关联关系的方式
在MyBatis中,处理关联关系的方式主要有两种:嵌套查询和嵌套结果。
2.1 嵌套查询
嵌套查询(Nested Selects):
这种方式是通过在SQL语句中使用子查询来实现关联查询。我们可以使用<collection>或<association>元素来配置关联关系。例如,在一个订单表中,可以通过子查询查询与订单相关的用户信息。
2.2 嵌套结果
嵌套结果(Nested Results):
这种方式是通过在查询结果中嵌套关联对象的结果集来实现关联查询。我们可以使用<resultMap>元素中的<association>或<collection>元素来配置关联关系。例如,在一个订单表和订单项表的关系中,可以将订单项作为订单对象的一个属性。
关联查询的处理方式取决于具体的需求和数据模型。嵌套查询适用于复杂的关联关系和需要在各部分之间添加额外条件的情况,而嵌套结果适用于简单的关联关系和需要携带完整对象信息的情况。
无论使用哪种方式,MyBatis都提供了灵活的配置选项来满足各种关联查询需求。使用MyBatis的关联映射机制,我们可以轻松地处理对象之间的关系,并在数据库操作中提供更强大的功能和效率。
三、一对一关联映射
3.1 建表
创建名为 t_hibernate_book (书籍表) 数据表
创建名为 t_hibernate_book_category (书籍类别表) 数据表
其中名为 bid 的属性字段为 t_hibernate_book (书籍表) 的 bid(主键) 的外键
其中名为 cid 的属性字段为 t_hibernate_category (类别表) 的 category_id (主键) 的外键
创建名为 t_hibernate_category (类别表) 数据表
创建名为 t_hibernate_order (订单表) 数据表
创建名为 t_hibernate_order_item (订单详情表) 数据表
其中名为 order_id 的属性字段为 t_hibernate_order (订单表) 的 oid (主键) 的外键
3.2 配置文件
修改名为 generatorConfig.xml 的 配置文件,修改后的所有代码如下 :
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration><!-- 引入配置文件 --><properties resource="jdbc.properties"/><!--指定数据库jdbc驱动jar包的位置--><classPathEntry location="D:\\temp2\\mvn_repository\\mysql\\mysql-connector-java\\5.1.44\\mysql-connector-java-5.1.44.jar"/><!-- 一个数据库一个context --><context id="infoGuardian"><!-- 注释 --><commentGenerator><property name="suppressAllComments" value="true"/><!-- 是否取消注释 --><property name="suppressDate" value="true"/> <!-- 是否生成注释代时间戳 --></commentGenerator><!-- jdbc连接 --><jdbcConnection driverClass="${jdbc.driver}"connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"/><!-- 类型转换 --><javaTypeResolver><!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) --><property name="forceBigDecimals" value="false"/></javaTypeResolver><!-- 01 指定javaBean生成的位置 --><!-- targetPackage:指定生成的model生成所在的包名 --><!-- targetProject:指定在该项目下所在的路径 --><javaModelGenerator targetPackage="com.Kissship.model"targetProject="src/main/java"><!-- 是否允许子包,即targetPackage.schemaName.tableName --><property name="enableSubPackages" value="false"/><!-- 是否对model添加构造函数 --><property name="constructorBased" value="true"/><!-- 是否针对string类型的字段在set的时候进行trim调用 --><property name="trimStrings" value="false"/><!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 --><property name="immutable" value="false"/></javaModelGenerator><!-- 02 指定sql映射文件生成的位置 --><sqlMapGenerator targetPackage="com.Kissship.mapper"targetProject="src/main/java"><!-- 是否允许子包,即targetPackage.schemaName.tableName --><property name="enableSubPackages" value="false"/></sqlMapGenerator><!-- 03 生成XxxMapper接口 --><!-- type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象 --><!-- type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象 --><!-- type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口 --><javaClientGenerator targetPackage="com.Kissship.mapper"targetProject="src/main/java" type="XMLMAPPER"><!-- 是否在当前路径下新加一层schema,false路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] --><property name="enableSubPackages" value="false"/></javaClientGenerator><!-- 配置表信息 --><!-- schema即为数据库名 --><!-- tableName为对应的数据库表 --><!-- domainObjectName是要生成的实体类 --><!-- enable*ByExample是否生成 example类 --><!--<table schema="" tableName="t_book" domainObjectName="Book"--><!--enableCountByExample="false" enableDeleteByExample="false"--><!--enableSelectByExample="false" enableUpdateByExample="false">--><!--<!– 忽略列,不生成bean 字段 –>--><!--<!– <ignoreColumn column="FRED" /> –>--><!--<!– 指定列的java数据类型 –>--><!--<!– <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> –>--><!--</table>--><table schema="" tableName="t_hibernate_book" domainObjectName="HBook"enableCountByExample="false" enableDeleteByExample="false"enableSelectByExample="false" enableUpdateByExample="false"></table><table schema="" tableName="t_hibernate_category" domainObjectName="Category"enableCountByExample="false" enableDeleteByExample="false"enableSelectByExample="false" enableUpdateByExample="false"></table><table schema="" tableName="t_hibernate_book_category" domainObjectName="HBookCategory"enableCountByExample="false" enableDeleteByExample="false"enableSelectByExample="false" enableUpdateByExample="false"></table><table schema="" tableName="t_hibernate_order" domainObjectName="Order"enableCountByExample="false" enableDeleteByExample="false"enableSelectByExample="false" enableUpdateByExample="false"></table><table schema="" tableName="t_hibernate_order_item" domainObjectName="OrderItem"enableCountByExample="false" enableDeleteByExample="false"enableSelectByExample="false" enableUpdateByExample="false"></table></context>
</generatorConfiguration>
3.3 代码生成
自动生成代码的目录列表如下:
然后将每个实体类对象里面重写一下toString()方法即可。
3.4 编写测试
创建一个 名为 OrderItemVo 的类,继承OrderItem类,及属性有Order对象
package com.Kissship.vo;import com.Kissship.model.Order;
import com.Kissship.model.OrderItem;/*** @author Kissship* @site www.Kissship.com* @company xxx公司* @create 2023-09-04-10:24*/
public class OrderItemVo extends OrderItem {private Order order;public Order getOrder() {return order;}public void setOrder(Order order) {this.order = order;}
}
在自动生成的OrderItemMapper.xml配置文件中进行增加以下配置:
<resultMap id="OrderItemMap" type="com.Kissship.vo.OrderItemVo" ><result column="order_item_id" property="orderItemId" ></result><result column="product_id" property="productId" ></result><result column="quantity" property="quantity" ></result><result column="oid" property="oid" ></result><association property="order" javaType="com.Kissship.model.Order"><result column="order_id" property="orderId" ></result><result column="order_no" property="orderNo" ></result></association></resultMap><select id="selectByBiid" resultMap="OrderItemMap" parameterType="java.lang.Integer" >SELECT * FROMt_hibernate_order o ,t_hibernate_order_item oiWHERE o.order_id = oi.oidAND oi.order_item_id = #{oiid} </select>
在自动生成的 OrderItemMapper 接口中进行增加以下代码:
OrderItemVo selectByBiid(@Param("oiid") Integer oiid);
创建一个接口名为 : OrderItemBiz 接口
package com.Kissship.biz;import com.Kissship.vo.OrderItemVo;/*** @author Kissship* @site www.Kissship.com* @company xxx公司* @create 2023-09-04-10:31*/ public interface OrderItemBiz {OrderItemVo selectByBiid(Integer oiid);}
实现以上创建的接口,创建一个实现了名为 OrderItemBizImpl 类
package com.Kissship.biz;import com.Kissship.mapper.OrderItemMapper; import com.Kissship.vo.OrderItemVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /*** @author Kissship* @site www.Kissship.com* @company xxx公司* @create 2023-09-04-10:42*/ @Service public class OrderItemBizImpl implements OrderItemBiz {@Autowiredprivate OrderItemMapper orderItemMapper;@Overridepublic OrderItemVo selectByBiid(Integer oiid) {return orderItemMapper.selectByBiid(oiid);} }
创建一个测试类 名为 Test01 ,用来进行方法测试
package com.Kissship.biz;import com.Kissship.vo.OrderItemVo; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;/*** @author Kissship* @site www.Kissship.com* @company xxx公司* @create 2023-09-04-10:42*/ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath:spring-context.xml"}) public class Test01 {@Autowiredprivate OrderItemBiz orderItemBiz;@Beforepublic void setUp() throws Exception {}@Afterpublic void tearDown() throws Exception {}@Testpublic void selectByBiid() {OrderItemVo orderItemVo = orderItemBiz.selectByBiid(27);System.out.println(orderItemVo);System.out.println(orderItemVo.getOrder());}}
执行测试类中selectByBiid()的方法,结果如图 :
四、一对多关联映射
创建一个 名为 OrdeVo 的类,继承Order类,及属性有List<OrderItem>集合
用来存储查询到的OrderItem对象,因为是一对多所有查询出有多个对象,如下:
package com.Kissship.vo;import com.Kissship.model.Order; import com.Kissship.model.OrderItem;import java.util.ArrayList; import java.util.List;/*** @author Kissship* @site www.Kissship.com* @company xxx公司* @create 2023-09-04-10:24*/ public class OrderVo extends Order {private List<OrderItem> orderItems = new ArrayList<>();public List<OrderItem> getOrderItems() {return orderItems;}public void setOrderItems(List<OrderItem> orderItems) {this.orderItems = orderItems;} }
在自动生成的 OrderMapper.xml 配置文件中增加以下配置,如下:
<resultMap id="OrderVoMap" type="com.Kissship.vo.OrderVo"><result column="order_id" property="orderId" ></result><result column="order_no" property="orderNo" ></result><collection property="orderItems" ofType="com.Kissship.model.OrderItem"><result column="order_item_id" property="orderItemId" ></result><result column="product_id" property="productId" ></result><result column="quantity" property="quantity" ></result><result column="oid" property="oid" ></result></collection></resultMap><select id="selectByOid" resultMap="OrderVoMap" parameterType="java.lang.Integer" >SELECT * FROMt_hibernate_order o ,t_hibernate_order_item oiWHERE o.order_id = oi.oidAND o.order_id = #{oid}</select>
在自动生成的 OrderMapper接口中进行增加以下代码,如下:
OrderVo selectByOid(@Param("oid") Integer oid);
创建一个接口名为 : OrderBiz 接口
package com.Kissship.biz;import com.Kissship.vo.OrderVo;/*** @author Kissship* @site www.Kissship.com* @company xxx公司* @create 2023-09-04-11:12*/ public interface OrderBiz {OrderVo selectByOid(Integer oid);}
在实现以上 OrderBiz 接口,创建一个实现类,名为 OrderBizImpl
package com.Kissship.biz;import com.Kissship.mapper.OrderMapper; import com.Kissship.vo.OrderVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;/*** @author Kissship* @site www.Kissship.com* @company xxx公司* @create 2023-09-04-11:14*/ @Service public class OrderBizImpl implements OrderBiz {@Autowiredprivate OrderMapper orderMapper;@Overridepublic OrderVo selectByOid(Integer oid) {return orderMapper.selectByOid(oid);} }
在测试类( Test01 )中增加以下测试方法及接口:
@Autowiredprivate OrderBiz orderBiz;@Testpublic void selectByOid() {OrderVo orderVo = orderBiz.selectByOid(7);System.out.println(orderVo);orderVo.getOrderItems().forEach(System.out::println);}
执行其中的方法进行测试,结果为如图 :
五、多对多关联映射
在自动生成的 HBookMapper.xml 配置文件中增加以下配置:
<resultMap id="CategoryVoMap" type="com.Kissship.vo.CategoryVo"><result column="category_id" property="categoryId"></result><result column="category_name" property="categoryName"></result><collection property="hbooks" ofType="com.Kissship.model.HBook"><result column="book_id" property="bookId"></result><result column="book_name" property="bookName"></result><result column="price" property="price"></result></collection></resultMap><select id="selectByCategoryId" resultMap="CategoryVoMap" parameterType="java.lang.Integer" >SELECT * FROMt_hibernate_book b,t_hibernate_book_category bc ,t_hibernate_category cWHERE b.book_id = bc.bidAND bc.cid = c.category_idAND c.category_id = #{cid}</select>
在自动生成的 HBookMapper 接口 中增加以下方法:
HbookVo selectByBookId(@Param("bid") Integer bid);
创建一个接口名为 HBookBiz
package com.Kissship.biz;import com.Kissship.vo.HbookVo; import org.apache.ibatis.annotations.Param;/*** @author Kissship* @site www.Kissship.com* @company xxx公司* @create 2023-09-04-11:25*/ public interface HBookBiz {HbookVo selecByBookId(@Param("bid") Integer bid);}
然后再实现以上 HBookBiz 接口,创建一个实现类,名为 HBookBizImpl
package com.Kissship.biz;import com.Kissship.mapper.HBookMapper; import com.Kissship.vo.HbookVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;/*** @author Kissship* @site www.Kissship.com* @company xxx公司* @create 2023-09-04-11:26*/ @Service public class HBookBizImpl implements HBookBiz {@Autowiredprivate HBookMapper hBookMapper;@Overridepublic HbookVo selecByBookId(Integer bid) {return hBookMapper.selectByBookId(bid);} }
在测试类( Test01 )中增加以下测试方法及接口:
@Autowiredprivate HBookBiz hbookBiz;@Testpublic void selectByBookId() {HbookVo hBookVo = hbookBiz.selecByBookId(8);System.out.println(hBookVo);hBookVo.getCategories().forEach(System.out::println);}
执行其中的方法进行测试,结果为如图 :
在自动生成的 CategoryMapper.xml 配置文件中增加以下配置:
<resultMap id="CategoryVoMap" type="com.Kissship.vo.CategoryVo"><result column="category_id" property="categoryId"></result><result column="category_name" property="categoryName"></result><collection property="books" ofType="com.Kissship.model.HBook"><result column="book_id" property="bookId"></result><result column="book_name" property="bookName"></result><result column="price" property="price"></result></collection></resultMap><select id="selectByCategoryId" resultMap="CategoryVoMap" parameterType="java.lang.Integer" >SELECT * FROMt_hibernate_book b,t_hibernate_book_category bc ,t_hibernate_category cWHERE b.book_id = bc.bidAND bc.cid = c.category_idAND c.category_id = #{cid}</select>
在自动生成的 CategoryMapper 接口 中增加以下方法:
CategoryVo selectByCategoryId(@Param("cid") Integer cid);
创建一个接口名为 CategoryBiz
package com.Kissship.biz;import com.Kissship.vo.CategoryVo;/*** @author Kissship* @site www.Kissship.com* @company xxx公司* @create 2023-09-04-11:37*/ public interface CategoryBiz {CategoryVo selectByCategoryId(Integer cid); }
然后再实现以上 CategoryBiz 接口,创建一个实现类,名为 CategoryBizImpl
package com.Kissship.biz;import com.Kissship.mapper.CategoryMapper; import com.Kissship.vo.CategoryVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;/*** @author Kissship* @site www.Kissship.com* @company xxx公司* @create 2023-09-04-11:38*/ @Service public class CategoryBizImpl implements CategoryBiz {@Autowiredprivate CategoryMapper categoryMapper;@Overridepublic CategoryVo selectByCategoryId(Integer cid) {return categoryMapper.selectByCategoryId(cid);}}
在测试类( Test01 )中增加以下测试方法及接口
@Autowiredprivate CategoryBiz categoryBiz;@Testpublic void selectByCategoryId() {CategoryVo categoryVo = categoryBiz.selectByCategoryId(8);System.out.println(categoryVo);categoryVo.getHbooks().forEach(System.out::println);}
执行其中的方法进行测试,结果为如图 :
六、小结
- 使用 <resultMap> 元素配置结果集的映射关系,指定数据库列和 Java 对象属性之间的映射。
- 可以使用 <result> 元素将数据库列映射到 Java 对象的属性,并指定属性的类型、映射关系及相关配置。
- 可以使用 <association> 元素配置关联对象的映射关系,用于映射复杂对象之间的关系。
- 可以使用 <collection> 元素配置集合类型对象的映射关系,用于映射一对多或多对多的关系。
- 使用 <sql> 元素定义可重用的 SQL 片段,提供了组织和共享 SQL 语句的能力。
最后Myvatis关联关系映射与表对象之间的关系就到这里,祝大家在敲代码的路上一路通畅!
相关文章:

Myvatis关联关系映射与表对象之间的关系
目录 一、关联关系映射 1.1 一对一 1.2 一对多 1.3 多对多 二、处理关联关系的方式 2.1 嵌套查询 2.2 嵌套结果 三、一对一关联映射 3.1 建表 编辑 3.2 配置文件 3.3 代码生成 3.4 编写测试 四、一对多关联映射 五、多对多关联映射 六、小结 一、关联关系映射 …...
算法通关村第十四关:黄金挑战-数据流的中位数
黄金挑战-数据流的中位数 1.数据流中中位数的问题 LeetCode295 https://leetcode.cn/problems/find-median-from-data-stream/ 思路分析 中位数的问题,我们一般都可以用 大顶堆小顶堆 来求解 小顶堆(minHeap):存储所有元素中…...

【2023集创赛】国家集创中心杯三等奖:不对称轻失配运算放大器
本文为2023年第七届全国大学生集成电路创新创业大赛(“集创赛”)国家集创中心杯三等奖作品分享,参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电…...

手写Mybatis:第18章-一级缓存
文章目录 一、目标:一级缓存二、设计:一级缓存三、实现:一级缓存3.1 工程结构3.2 一级缓存类图3.3 一级缓存实现3.3.1 定义缓存接口3.3.2 实现缓存接口3.3.3 创建缓存KEY3.3.4 NULL值缓存key 3.4 定义缓存机制、占位符和修改配置文件3.4.1 定…...

哈夫曼编码实现文件的压缩和解压
程序示例精选 哈夫曼编码实现文件的压缩和解压 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《哈夫曼编码实现文件的压缩和解压》编写代码,代码整洁,规则࿰…...

解决六大痛点促进企业更好使用生成式AI,亚马逊云科技顾凡采访分享可用方案
亚马逊云科技大中华区战略业务发展部总经理顾凡在接受21世纪经济报道记者专访时表示,生成式人工智能将从四个方面为企业带来机遇:第一是创造全新的客户体验;第二是提高企业内部员工的生产力;第三是帮助企业提升业务运营效率&#…...
Qt 定时器放在线程中执行,支持随时开始和停止定时器。
前言:因为项目需要定时检查网络中设备是否能连通,需要定时去做ping操作,若是网络不通,则ping花费时间比较久(局域网大概4秒钟才能结束,当然如果设置超时时间啥的,也能很快返回,就是会…...
java 过滤器 接口(API)验证入参,验签(sign) Demo
java 过滤器 接口(API)验证入参,验签(sign) Demo 一、思路 1、配置yml文件; 2、创建加载配置文件类; 3、继承 OncePerRequestFilter 重写方法 doFilterInternal; 4、注册自定义过滤器; 二、步骤 1、配置yml文件; ###系…...
独家!微信正在灰测一款全新消金产品
来源 | 镭射财经(leishecaijing) 「镭射财经」独家获悉,微信将推出一款名为“微信分期”的新消费信贷产品,目前该产品正处于小范围灰测阶段,还未正式上线。上线后,微信将运营微信分付和微信分期两款自营消…...
阿秀C++笔记-学习记录
81.C中的组合和继承相比的优缺点 在C中组合一对象系用描述对象包对象系组一个拥对象例其变合类的含的现。这的量类当有员被创建。 以下一个示例,展示了在C中如何实现组合关系: class Engine {// Engine class definition... };class Car {Engine engi…...
前端入门到入土?
文章目录 前言http和https的区别,https加密的原理是?区别https的加密原理 TCP为什么要三次握手?proxy代理的原理?内存泄漏?什么是内存泄漏?为什么会有内存泄漏?内存泄漏的情况?如何防…...

架构设计基础设施保障IaaS之网络
目录 1 DNS运用1.1 DNS功能作用1.2 DNS配置实践 2 DNS生产最佳实践方案2.1 全球加速功能2.2 不同运营商的加速方案2.3 全球业务高可用方案2.4 跨地域负载均衡 3 DNS域名劫持解决方案4 CDN剖析4.1 CDN原理4.2 缓存过期配置处理流程4.3 缓存配置规则 5 CDN运用6 CDN最佳实践方案6…...

zabbix安装部署
前期准备:安装mysql数据库和nginx 一、下载zabbix rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm yum-config-manager --enable rhel-7-server-optional-rpms yum install epel-release numactl yum install…...
零碎的C++
构造函数和析构函数 构造函数不能是虚函数,而析构函数可以是虚函数。原因如下: 构造函数不能是虚函数,因为在执行构造函数时,对象还没有完全创建,还没有分配内存空间,也没有初始化虚函数表指针。如果构造…...

模糊测试面面观 | 模糊测试是如何发现异常情况的?
协议模糊测试是一种用于评估通信协议、文件格式和API实现系统安全性和稳定性的关键技术。在模糊测试过程中,监视器扮演着关键角色,它们能够捕获异常情况、错误响应、资源利用等,为测试人员提供有价值的信息,有助于发现潜在漏洞和问…...

C#备份数据库文件
c#备份数据库文件完整代码 sqlServer 存储过程: USE [PSIDBase] GO /****** Object: StoredProcedure [dbo].[sp_BackupDB] Script Date: 2023/8/31 16:49:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GOALTER procedure [dbo].[sp_BackupDB]…...

行军遇到各种复杂地形怎么处理?
行军遇到各种复杂地形怎么处理? 【安志强趣讲《孙子兵法》第30讲】 【原文】 凡军好高而恶下,贵阳而贱阴,养生而处实,军无百疾,是谓必胜。 【注释】 阳,太阳能照到的地方。阴,太阳照不到的地方。…...
Python Number(数字).............................................
Python Number 数据类型用于存储数值。 数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。 以下实例在变量赋值时 Number 对象将被创建: var1 1 var2 10您也可以使用del语句删除一些 Number 对象引用。 del语句…...

设置 Hue Server 与 Hue Web 界面之间的会话超时时间
设置 Hue Server 与 Hue Web 界面之间的会话超时时间 在 CDH 的 Hue 中,Auto Logout Timeout 参数表示用户在不活动一段时间后将自动注销(登出)的超时时间。当用户在 Hue 中处于不活动状态超过该设定时间时,系统将自动注销用户&am…...

openGauss学习笔记-57 openGauss 高级特性-并行查询
文章目录 openGauss学习笔记-57 openGauss 高级特性-并行查询57.1 适用场景与限制57.2 资源对SMP性能的影响57.3 其他因素对SMP性能的影响57.4 配置步骤 openGauss学习笔记-57 openGauss 高级特性-并行查询 openGauss的SMP并行技术是一种利用计算机多核CPU架构来实现多线程并行…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...