Java两表查询的方法(一对一,一对多,多对多)

一、配置环境:

首先我们需要Maven环境;

 源码:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>sanzhongfangfa24_7_23</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!--MySQL框架--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><!--日志框架--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency><!--MyBatis的框架--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version></dependency><!--Java 单元测试框架用来@Test--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><!--用来指定上面的依赖进行测试两个缺一不可--><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>RELEASE</version><scope>compile</scope></dependency></dependencies></project>

其次我们要配置核心配置文件; 

 

这个文件是我们整个功能的基础;

 

 源码:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC"-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration >
<!--    这是转Data类型的调用--><typeHandlers><typeHandler handler="org.handle.DateTypeHandler"></typeHandler></typeHandlers><environments default="develop"><environment id="develop"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/duobiaochaxun?characterEncoding=utf-8"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><mappers><mapper resource="mapper/duoduiduoMapper.xml"/>
<!--        <mapper resource="mapper/oneduiduoMapper.xml"/>-->
<!--     必须配套写完不然报错   <mapper resource="mapper/UserMapper.xml"/>--></mappers>
</configuration>

 第三我们要写日志的配置文件:

 

日志源码:

#日志
log4j.rootLogger=debug, stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
Log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
Log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=5
log4j.appender.R.layout=org.apache.log4j.PatternLayout
Log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

 第四我们写数据库和Java对象类型的转化:

package org.handle;import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;public class DateTypeHandler extends BaseTypeHandler<Date> {// 将java类型转换成数据库需要的类型@Override//这段代码是 MyBatis 中的一个自定义类型处理器 (TypeHandler) 的一部分,它负责将Date对象转换为可以存储在数据库中的形式。//具体来说,这个方法将 Date 对象转换为长整型 (long) 值,代表从 1970 年 1 月 1 日 00:00:00 UTC 开始到给定日期的毫秒数。public void setNonNullParameter(PreparedStatement preparedStatement, int i, Date date, JdbcType jdbcType) throws SQLException {//将日期赋值给long形的timelong time = date.getTime();// PreparedStatement 的 setLong 方法将 time 设置到预编译 SQL 语句的第 i 个参数位置//这意味着日期将作为长整型值被存储在数据库中。preparedStatement.setLong(i, time);}// 将数据库中的类型 转换为java类型// string 要转换的字符串
// resultSet 查询出的结果@Override// 将数据库查询结果中的长整型值转换为 java.util.Date 对象。public Date getNullableResult(ResultSet resultSet, String s) throws SQLException {// 这一行代码调用了 ResultSet 的 getLong 方法,根据列名 s 获取长整型值。long along = resultSet.getLong(s);//这一行代码使用从 ResultSet 中获取的长整型值创建一个新的 java.util.Date 对象。Date date = new Date(along);return date;}// 将数据库中的类型 转换为java类型@Overridepublic Date getNullableResult(ResultSet resultSet, int i) throws SQLException {long along = resultSet.getLong(i);Date date = new Date(along);return date;}// 将数据库中的类型 转换为java类型@Override
//用于将从 CallableStatement 中获取的长整型值转换为 java.util.Date 对象//这是一个 CallableStatement 对象,用于执行 SQL 存储过程或函数,并获取其结果。public Date getNullableResult(CallableStatement callableStatement, int i) throws SQLException {long aLong = callableStatement.getLong(i);Date date = new Date(aLong);return date;}
}

这样我们就能将数据库和Java类型的的数据互相转化,别忘了将 该完成的类添加到核心配置文件里;

做完上述的环境配置,我们就要开始写项目和功能 。

二、写数据:

我们要写我们需要的Javabean数据,这个按照数据库来写,这里只展示功能,下面是我的例子。

数据库的表:

orders(订单表):

 user(用户表):

Javabean的数据:

订单表:

package org.Emp;import java.util.Date;
import java.util.List;public class order {private Integer id;private Date ordertime;private Double total;private Integer uuid;private user user;public order() {}public order(Integer id, Date ordertime, Double total, Integer uuid, user user) {this.id = id;this.ordertime = ordertime;this.total = total;this.uuid = uuid;this.user = user;}/*** 获取* @return id*/public Integer getId() {return id;}/*** 设置* @param id*/public void setId(Integer id) {this.id = id;}/*** 获取* @return ordertime*/public Date getOrdertime() {return ordertime;}/*** 设置* @param ordertime*/public void setOrdertime(Date ordertime) {this.ordertime = ordertime;}/*** 获取* @return total*/public Double getTotal() {return total;}/*** 设置* @param total*/public void setTotal(Double total) {this.total = total;}/*** 获取* @return uuid*/public Integer getUuid() {return uuid;}/*** 设置* @param uuid*/public void setUuid(Integer uuid) {this.uuid = uuid;}/*** 获取* @return user*/public user getUser() {return user;}/*** 设置* @param user*/public void setUser(user user) {this.user = user;}public String toString() {return "order{id = " + id + ", ordertime = " + ordertime + ", total = " + total + ", uuid = " + uuid + ", user = " + user + "}";}
}

 用户表:

package org.Emp;import java.util.Date;
import java.util.List;
public class user {
private Integer id;
private String username;
private String password;
private Date birthday;public user() {}public user(Integer id, String username, String password, Date birthday) {this.id = id;this.username = username;this.password = password;this.birthday = birthday;}/*** 获取* @return id*/public Integer getId() {return id;}/*** 设置* @param id*/public void setId(Integer id) {this.id = id;}/*** 获取* @return username*/public String getUsername() {return username;}/*** 设置* @param username*/public void setUsername(String username) {this.username = username;}/*** 获取* @return password*/public String getPassword() {return password;}/*** 设置* @param password*/public void setPassword(String password) {this.password = password;}/*** 获取* @return birthday*/public Date getBirthday() {return birthday;}/*** 设置* @param birthday*/public void setBirthday(Date birthday) {this.birthday = birthday;}public String toString() {return "user{id = " + id + ", username = " + username + ", password = " + password + ", birthday = " + birthday + "}";}//    private List<role> role;//private List<order> order;}

底层数据建成完毕,我们就要开始着手写功能;

三、写功能: 

 1、一对一查询

修改底层Javabean:

 因为我们有两张表要查,要输出,但是Java输出形式只能是一张表,所以我们要用注入的方式,将用户表注入到订单表里,这样只用输出订单格式就可以了。

写Mapper映射(核心):

我们要创建一个.xml的文件;

代码: 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--这一行定义了这个映射文件的命名空间,org.dao.oneselMapper 是一个唯一的标识符,用来区分不同的映射文件-->
<mapper namespace="org.dao.oneselMapper">
<!--这个 <resultMap> 元素定义了一个名为 orderMap 的映射规则,它会把查询结果映射到 org.Emp.order类型的对象上。-->
<!--也就是将数据库的值映射到Javabean中--><resultMap id="orderMap" type="org.Emp.order">
<!--id映射-->
<!--这一行指定了数据库中的 id 列与 JavaBean 中的 id 属性相对应。--><id column="id" property="id"></id>
<!--普通属性映射,这些 <result> 标签分别指定了数据库中的 ordertime, total, 和 uuid 列与 JavaBean 中对应的属性相对应。--><result column="ordertime" property="ordertime"></result><result column="total" property="total"></result><result column="uuid" property="uuid"></result>
<!--关联映射 (Association):-->
<!--这部分定义了一个一对一关联映射,表示 org.Emp.order 类中的 user 属性应该如何从数据库结果中获取其属性值。
这里,<association> 标签内的 <id> 和 <result> 标签指定了 user 表中的列名与 org.Emp.user 类中的属性名之间的对应关系。--><association property="user" javaType="org.Emp.user"><id column="uuid" property="id"></id><result column="username" property="username"></result><result column="password" property="password"></result><result column="birthday" property="birthday"></result></association></resultMap><!--数据库的一对一查询-->
<!--SQL 查询定义:-->
<!--这个 <select> 标签定义了一个 SQL 查询,使用前面定义的 orderMap 映射规则来映射查询结果。
这里的 SQL 语句选取了所有列 (select *) 并通过 o.uuid = u.id 条件进行表连接。--><select id="findall" resultMap="orderMap">select * from orders o, user u where o.uuid = u.id</select></mapper>

将映射文件配置到核心文件里:

最后,我们需要一个接口将写好的映射文件调用出来: 

 在映射文件中:

在接口中: 

这样我们的整个功能写完了,现在需要写一个测试方法来调用:

测试类: 

首先要配置日志文件:

 其次要加载MyBatis配置文件

代码:

public class testuser {private InputStream in;private SqlSessionFactory factory;private SqlSession session;@Testpublic void star1() throws IOException {//配置日志信息Properties properties = new Properties();FileInputStream fileInputStream = new FileInputStream("src/main/resources/config/log4j.properties");properties.load(fileInputStream);PropertyConfigurator.configure(properties);// 加载 MyBatis 配置文件//从类路径中获取 MyBatis 配置文件 mybatis-config.xml 的输入流。in = Resources.getResourceAsStream("config/mybatis-config.xml");//创建 SqlSessionFactory 对象,它是 MyBatis 的工厂类,用于创建 SqlSession。factory = new SqlSessionFactoryBuilder().build(in);//创建一个新的 SqlSession 实例,用于执行 SQL 语句。session = factory.openSession();//通过 SqlSession 获取 oneselMapper 接口的代理实现。oneselMapper mapper = session.getMapper(oneselMapper.class);//接口中定义了一个名为 sanbiaoall 的方法,该方法返回一个 List<students> 类型的列表。List<order> findall = mapper.findall();for (order a : findall) {System.out.println(a);}}
}

 结果:

Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
Opening JDBC Connection
Created connection 2101636817.
Setting autocommit to false on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7d446ed1]
==>  Preparing: select * from orders o, user u where o.uuid = u.id
==> Parameters: 
<==      Total: 5
order{id = 1, ordertime = Thu Jan 01 13:36:51 CST 1970, total = 12.5, uuid = 1, user = user{id = 1, username = aa, password = 1233, birthday = Thu Jan 01 13:37:01 CST 1970}}
order{id = 2, ordertime = Thu Jan 01 13:36:51 CST 1970, total = 12.5, uuid = 3, user = user{id = 3, username = cc, password = 2133, birthday = Thu Jan 01 10:50:11 CST 1970}}
order{id = 3, ordertime = Thu Jan 01 13:38:31 CST 1970, total = 12.5, uuid = 2, user = user{id = 2, username = bb, password = 2133, birthday = Thu Jan 01 13:36:51 CST 1970}}
order{id = 4, ordertime = Thu Jan 01 13:37:01 CST 1970, total = 15.0, uuid = 2, user = user{id = 2, username = bb, password = 2133, birthday = Thu Jan 01 13:36:51 CST 1970}}
order{id = 5, ordertime = Thu Jan 01 13:37:01 CST 1970, total = 15.0, uuid = 1, user = user{id = 1, username = aa, password = 1233, birthday = Thu Jan 01 13:37:01 CST 1970}}

2、一对多查询(结构和上面一样下面只展示代码): 

修改底层Javabean: 

订单表:

package org.Emp;import java.util.Date;
import java.util.List;public class order {private Integer id;private Date ordertime;private Double total;private Integer uuid;public order() {}public order(Integer id, Date ordertime, Double total, Integer uuid) {this.id = id;this.ordertime = ordertime;this.total = total;this.uuid = uuid;}/*** 获取* @return id*/public Integer getId() {return id;}/*** 设置* @param id*/public void setId(Integer id) {this.id = id;}/*** 获取* @return ordertime*/public Date getOrdertime() {return ordertime;}/*** 设置* @param ordertime*/public void setOrdertime(Date ordertime) {this.ordertime = ordertime;}/*** 获取* @return total*/public Double getTotal() {return total;}/*** 设置* @param total*/public void setTotal(Double total) {this.total = total;}/*** 获取* @return uuid*/public Integer getUuid() {return uuid;}/*** 设置* @param uuid*/public void setUuid(Integer uuid) {this.uuid = uuid;}public String toString() {return "order{id = " + id + ", ordertime = " + ordertime + ", total = " + total + ", uuid = " + uuid + "}";}//    private user user;}

 用户表:

package org.Emp;import java.util.Date;
import java.util.List;
public class user {
private Integer id;
private String username;
private String password;
private Date birthday;private List<order> order;public user() {}public user(Integer id, String username, String password, Date birthday, List<order> order) {this.id = id;this.username = username;this.password = password;this.birthday = birthday;this.order = order;}/*** 获取* @return id*/public Integer getId() {return id;}/*** 设置* @param id*/public void setId(Integer id) {this.id = id;}/*** 获取* @return username*/public String getUsername() {return username;}/*** 设置* @param username*/public void setUsername(String username) {this.username = username;}/*** 获取* @return password*/public String getPassword() {return password;}/*** 设置* @param password*/public void setPassword(String password) {this.password = password;}/*** 获取* @return birthday*/public Date getBirthday() {return birthday;}/*** 设置* @param birthday*/public void setBirthday(Date birthday) {this.birthday = birthday;}/*** 获取* @return order*/public List<order> getOrder() {return order;}/*** 设置* @param order*/public void setOrder(List<order> order) {this.order = order;}public String toString() {return "user{id = " + id + ", username = " + username + ", password = " + password + ", birthday = " + birthday + ", order = " + order + "}";}
}
//    private List<role> role;
写Mapper映射(核心):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dao.oneselMapper"><resultMap id="userMap" type="org.Emp.user"><id column="uuid" property="id"></id><result column="username" property="username"></result><result column="password" property="password"></result><result column="birthday" property="birthday"></result>
<!--集合映射 (Collection)--><collection property="order" ofType="org.Emp.order"><id column="oid" property="id"></id><result column="ordertime" property="ordertime"></result><result column="total" property="total"></result></collection></resultMap><!--数据库的一对多查询--><select id="onefindallduo" resultMap="userMap">select *,o.id oid from user u,orders o where o.uuid = u.id</select></mapper>
接口:


3、多对多查询: 

 修改底层Javabean;

 role(角色表):

package org.Emp;import java.util.List;public class role {private Integer id;private String roleName;private String roleDesc;public role() {}public role(Integer id, String roleName, String roleDesc) {this.id = id;this.roleName = roleName;this.roleDesc = roleDesc;}/*** 获取* @return id*/public Integer getId() {return id;}/*** 设置* @param id*/public void setId(Integer id) {this.id = id;}/*** 获取* @return roleName*/public String getRoleName() {return roleName;}/*** 设置* @param roleName*/public void setRoleName(String roleName) {this.roleName = roleName;}/*** 获取* @return roleDesc*/public String getRoleDesc() {return roleDesc;}/*** 设置* @param roleDesc*/public void setRoleDesc(String roleDesc) {this.roleDesc = roleDesc;}public String toString() {return "role{id = " + id + ", roleName = " + roleName + ", roleDesc = " + roleDesc + "}";}
}

user(用户表):

package org.Emp;import java.util.Date;
import java.util.List;
public class user {
private Integer id;
private String username;
private String password;
private Date birthday;private List<role> role;public user() {}public user(Integer id, String username, String password, Date birthday, List<role> role) {this.id = id;this.username = username;this.password = password;this.birthday = birthday;this.role = role;}/*** 获取* @return id*/public Integer getId() {return id;}/*** 设置* @param id*/public void setId(Integer id) {this.id = id;}/*** 获取* @return username*/public String getUsername() {return username;}/*** 设置* @param username*/public void setUsername(String username) {this.username = username;}/*** 获取* @return password*/public String getPassword() {return password;}/*** 设置* @param password*/public void setPassword(String password) {this.password = password;}/*** 获取* @return birthday*/public Date getBirthday() {return birthday;}/*** 设置* @param birthday*/public void setBirthday(Date birthday) {this.birthday = birthday;}/*** 获取* @return role*/public List<role> getRole() {return role;}/*** 设置* @param role*/public void setRole(List<role> role) {this.role = role;}public String toString() {return "user{id = " + id + ", username = " + username + ", password = " + password + ", birthday = " + birthday + ", role = " + role + "}";}
}
 写Mapper映射(核心):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dao.oneselMapper"><resultMap id="duoduoMapper" type="org.Emp.user"><id column="id" property="id"></id><result column="username" property="username"></result><result column="password" property="password"></result><result column="birthday" property="birthday"></result><collection property="role" ofType="org.Emp.role"><id column="roleid" property="id"></id><result column="roleName" property="roleName"></result><result column="roleDesc" property="roleDesc"></result></collection></resultMap><!--数据库的多对多查询--><select id="duoduoall" resultMap="duoduoMapper">select *  from user u,user_role ur,role r where u.id=ur.userid and r.id=ur.roleid</select></mapper>
接口:

这样我们的两表查询就写完了。

注意:一定要配置核心文件,添加映射文件和数据库和Java互转的方法。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/876973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

yandex图标点选验证码YOLOV8识别案例

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架 某yandex图标点选验证码如下: 使用过yolov8的小伙伴可能都知道,这种直接打个标注,基本上就可以了,至于问题图片由于不能很好的切割做分类,所以干脆也做成目标…

基于图卷积神经网络(GCN)的高光谱图像分类详细教程(含python代码)

目录 一、背景 二、基于卷积神经网络的代码实现 1、安装依赖库 2、建立图卷积神经网络 3、建立数据的边 4、训练模型 5、可视化 三、项目代码 一、背景 图卷积神经网络&#xff08;Graph Convolutional Networks, GCNs&#xff09;在高光谱图像分类中是一种有效的方法…

CSS实现文本溢出处理

1.单行文本溢出 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-wid…

Dependency Injection: 如何解决依赖注入失败问题

Dependency Injection: 如何解决依赖注入失败问题 &#x1f489; **Dependency Injection: 如何解决依赖注入失败问题 &#x1f489;**摘要引言正文内容1. 依赖注入的基础概念代码示例&#xff1a;构造函数注入 2. 依赖注入失败的常见原因2.1 未能找到依赖的实例2.2 循环依赖2.…

App测试分发的秘密:如何让你的应用程序快速上线

App测试分发的重要性 在移动应用程序的开发过程中&#xff0c;测试分发是一个非常重要的环节。它可以帮助开发者快速地将应用程序推广到目标用户手中&#xff0c;收集反馈&#xff0c;进行bug修复和优化&#xff0c;从而提高应用程序的质量和用户体验。但是&#xff0c;测试分…

linux脚本:自动检测的bash脚本,用于检查linux的系统性能

目录 一、要求 二、脚本介绍 1、脚本内容 2、解释 3、使用方法&#xff1a; &#xff08;1&#xff09;脚本文件 &#xff08;2&#xff09;赋予权限 &#xff08;3&#xff09;执行结果 三、相关命令介绍 1、top &#xff08;1&#xff09;定义 &#xff08;2&…

Layui修改表格分页为英文

Layui修改表格分页为英文 1.前言2.Laypage属性 1.前言 主要记录初次使用Layui没有好好看官方文档踩坑&#xff0c;修改了源码才发现可以自定义 使用的Layui版本2.9.14 2.Laypage属性 Laypage属性中带的有自定义文本的属性 示例代码 table.render({.......page: {skipText: …

2.4GHz射频前端集成芯片:AT2401C芯片中文资料

关于AT2401C的基本资料&#xff1a; AT2401C是一款面向Zigbee&#xff0c;无线传感网络以及其他2.4GHz频段无线系统的全集成射频功能的射频前端单芯片。 那么射频放大器的作用是什么&#xff1f;它是用来放大来自射频信号源的低功率信号&#xff0c;放大到较高的功率后&#xf…

7. 运行时数据区-栈

栈的分类 栈分为Java虚拟机栈还有本地方法栈&#xff1a; Java虚拟机栈&#xff1a;用于保存Java中的方法相关的内容本地方法栈&#xff1a;用于保存在Java中使用native 标记的用C来实现方法 由于hotspot的作者发现使用一个栈就可以保存以上两个部分的内容&#xff0c;所以在…

学习测试14-实战3-复习-使用CANoe打开半成品

数据 链接: https://pan.baidu.com/s/1k0SFq0luDvEbqimFgtfyKg?pwd9a5t 提取码: 9a5t 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 1&#xff0c;导入信号、报文、节点 2&#xff0c;导入数据库 3&#xff0c;导入can代码 4&#xff0c;导入环境变量 5&#x…

CTF竞赛介绍以及刷题网址(非常详细)零基础入门到精通,收藏这一篇就够了

前言 CTF&#xff08;Capture The Flag&#xff09;中文一般译作夺旗赛&#xff0c;在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今…

【保姆级教程】Windows 远程登陆 Linux 服务器的两种方式:SSH + VS Code,开发必备

0. 前言 很多情况下代码开发需要依赖 Linux 系统&#xff0c;远程连接 Linux 服务器进行开发和维护已成为一种常态。对于使用Windows系统的开发者来说&#xff0c;掌握如何通过 SSH 安全地连接到 Linux 服务器&#xff0c;并利用 VS Code 编辑器进行开发&#xff0c;是一项必备…

海外问卷调查这个项目怎么样?

大家好&#xff0c;我是橙河老师&#xff0c;今天讲一讲海外问卷调查这个项目怎么样&#xff1f;我自己做这个项目已经有三四年的时间了&#xff0c;在这个行业里算是资深玩家&#xff0c;我自己的工作室也一直稳定在操作这个项目&#xff0c;首先可以肯定的是&#xff0c;这个…

<数据集>棉花识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;13765张 标注数量(xml文件个数)&#xff1a;13765 标注数量(txt文件个数)&#xff1a;13765 标注类别数&#xff1a;4 标注类别名称&#xff1a;[Partially opened, Fully opened boll, Defected boll, Flower] 序…

甄选范文“论企业集成架构设计及应用”软考高级论文,系统架构设计师论文

论文真题 论企业集成架构设计及应用企业集成架构(Enterprise Integration Arhitecture,EIA) 是企业集成平台的核心,也是解决企业信息孤岛问题的关键。企业集成架构设计包括了企业信息、业务过程、应用系统集成架构的设计。实现企业集成的技术多种多样,早期的集成方式是通过…

仕考网:公务员可以报考军队文职吗?

公务员可以报考军队文职考试&#xff0c;但是需要满足前提条件。 对于已经与国家、地方的用人单位建立劳动关系的社会人才&#xff0c;在获得当前用人单位的许可后才可以申请报考。 在面试过程中&#xff0c;考生必须出示一份由其用人单位出具的且加盖公章的同意报考证明。一…

远程文件下载

在本机启动 http 服务&#xff0c;在你要下载文件的目录下输入 cmd &#xff0c;运行 python -m http.server前提条件&#xff1a;本机安装了 python 服务。 查看本机 IP&#xff08;无线局域网 IP&#xff09;&#xff0c;重新开一个窗口&#xff0c;查看本机 IP 地址。 ipc…

【arxiv 2024】Latte: Latent Diffusion Transformer for Video Generation

【arxiv 2024】Latte: Latent Diffusion Transformer for Video Generation 一、前言Abstract1 Introduction2 Related Work3 Methodology3.1 Preliminary of Latent Diffusion Models3.2 The model variants of Latte3.3 The empirical analysis of Latte3.3.1 Latent video c…

C语言 ——— 函数指针数组的讲解及其用法

目录 前言 函数指针数组的定义 函数指针数组的使用 前言 数组是存放一组相同类型数据的存储空间 关于指针数组的知识请见&#xff1a;C语言 ——— 指针数组 & 指针数组模拟二维整型数组-CSDN博客 那么要将多个函数的地址存储到数组中&#xff0c;这个数组该如何定义…

C++中的依赖注入

目录 1.概述 2.构造函数注入 3.setter方法注入 4.接口注入 5.依赖注入框架 6.依赖注入容器 7.依赖注入框架的工作原理 8.依赖注入的优势 9.总结 1.概述 依赖注入是一种设计模式&#xff0c;它允许我们在不直接创建对象的情况下为对象提供其依赖项&#xff1b;它通过将…