Java进阶-主流框架总结与详解

一、Java框架概述

Java开发领域涵盖了众多框架,这些框架提供了丰富的功能和工具,帮助开发人员更高效地构建应用程序。其中,Spring框架是最为广泛应用的之一,它提供了全方位的解决方案,包括依赖注入、面向切面编程等,大大简化了企业级应用的开发。另外,Hibernate框架则为数据持久化提供了便捷的解决方案,将对象与数据库表映射起来,使得开发者可以使用面向对象的思维来处理数据库操作。而Spring Boot框架则是在Spring基础之上构建的,通过自动化配置和快速启动,使得开发者能够更快速地搭建和部署应用程序。除此之外,还有Struts、MyBatis等框架在不同场景下发挥着重要作用。本文将对这些框架进行深入分析,并探讨它们在实际开发中的应用与优缺点。


二、Spring框架

Spring框架是Java平台上的一个轻量级的应用开发框架,它提供了广泛的功能,包括依赖注入、面向切面编程、控制反转等。Spring框架的核心是IoC(控制反转)容器,它简化了应用程序的配置和开发过程。

1、Spring核心模块

  • Spring IoC容器: 负责管理应用程序中的对象,通过依赖注入将对象组装起来。
  • Spring AOP模块: 提供面向切面编程的支持,可以在程序运行期间动态地将代码切入到方法执行前后。
  • Spring JDBC模块: 提供了对JDBC的封装,简化了数据库操作。
  • Spring事务管理: 支持声明式事务管理和编程式事务管理。

2、Spring Boot

Spring Boot是Spring框架的扩展,它简化了Spring应用程序的配置和部署过程。通过自动配置和约定优于配置的原则,Spring Boot可以快速搭建起一个生产级别的Spring应用程序。

Spring Boot目录结构示例:

spring-boot-project/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   ├── com/
│   │   │   │   └── example/
│   │   │   │       ├── controller/             # 控制器层
│   │   │   │       │   └── ExampleController.java
│   │   │   │       ├── model/                  # 实体类
│   │   │   │       │   └── ExampleEntity.java
│   │   │   │       ├── dao/                    # DAO层
│   │   │   │       │   └── ExampleDao.java
│   │   │   │       ├── service/                # 服务类
│   │   │   │       │   ├── ExampleService.java
│   │   │   │       │   └── impl/               # 服务类实现
│   │   │   │       │       └── ExampleServiceImpl.java
│   │   │   ├── resources/
│   │   │   │   ├── application.properties      # Spring Boot配置文件
│   │   │   │   ├── static/                     # 静态文件目录
│   │   │   │   │   └── css/
│   │   │   │   │       └── index.css
│   │   │   │   │   └── js/
│   │   │   │   │       └── index.js
│   │   │   │   └── templates/                  # 模板文件目录
│   │   │   │       └── index.html
│   │   │   └── xml/                            # XML配置文件目录
│   │   │       └── applicationContext.xml
│   └── test/
│       └── java/
│           └── com/
│               └── example/
│                   └── ApplicationTests.java
└── pom.xml

在上述示例中:

  • controller/ 存放控制器层的Java类文件,用于处理请求和响应。
  • model/ 存放实体类的Java类文件,用于定义数据模型。
  • dao/ 存放DAO(数据访问对象)层的Java类文件,用于数据库的访问操作。
  • service/ 存放服务类的Java类文件,用于业务逻辑的处理。
  • impl/ 存放服务类的实现文件。
  • static/ 存放静态文件的目录,如CSS、JavaScript等。
  • templates/ 存放模板文件的目录,如HTML页面。
  • xml/ 存放XML配置文件的目录,如Spring配置文件等。

因为是非常主流的框架,内容不过多叙述,我之前写过很多关于SpringBoot的文章,可以前去详细学习。


3、Spring MVC

Spring MVC基于Spring框架的Web框架,简化了Web应用程序的开发过程。Spring MVC采用MVC(Model-View-Controller)架构模式,将应用程序分为模型(Model)、视图(View)和控制器(Controller)三层。它提供了丰富的注解支持、数据绑定、表单处理等功能,使得开发者可以更轻松地构建灵活可扩展的Web应用程序。

目录结构示例:

spring-mvc-project/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           ├── controller/
│   │   │           │   └── HomeController.java
│   │   │           └── Application.java
│   │   ├── resources/
│   │   │   ├── static/
│   │   │   │   └── css/
│   │   │   │       └── style.css
│   │   │   ├── templates/
│   │   │   │   └── home.jsp
│   │   │   ├── application.properties
│   │   │   └── dispatcher-servlet.xml
│   └── test/
│       └── java/
│           └── com/
│               └── example/
│                   └── controller/
│                       └── HomeControllerTest.java
├── webapp/
│   ├── WEB-INF/
│   │   ├── views/
│   │   │   └── home.jsp
│   │   └── web.xml
└── pom.xml
  • src/main/resources/dispatcher-servlet.xml:Spring MVC配置文件,配置了控制器扫描、视图解析器等信息。
  • webapp/WEB-INF/views/home.jsp:视图页面,展示来自控制器的数据。
  • webapp/WEB-INF/web.xml:Servlet配置文件,配置了DispatcherServlet,Spring MVC的核心控制器。

简单代码示例:

HomeController.java: 控制器类,处理来自前端的请求。

package com.example.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;@Controller
public class HomeController {@GetMapping("/")public String home(Model model) {model.addAttribute("message", "Welcome to Spring MVC!");return "home";}
}

home.jsp: 视图页面,展示来自控制器的数据。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Spring MVC Example</title>
</head>
<body><h1>${message}</h1>
</body>
</html>

web.xml: Servlet配置文件,配置了DispatcherServlet,Spring MVC的核心控制器。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><display-name>Spring MVC Example</display-name><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/dispatcher-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

dispatcher-servlet.xml: Spring MVC配置文件,配置了控制器扫描、视图解析器等信息。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><mvc:annotation-driven/><context:component-scan base-package="com.example"/><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/"/><property name="suffix" value=".jsp"/></bean></beans>

这个示例展示了一个简单的Spring MVC应用程序,包括了一个控制器类、一个JSP视图页面以及相关的Servlet和Spring MVC配置文件。


三、Hibernate框架

Hibernate是一个优秀的对象关系映射(ORM)框架,它将Java对象映射到数据库表,使得开发人员可以通过面向对象的方式来操作数据库。Hibernate框架简化了数据库操作,提高了开发效率。

1、Hibernate核心特性

  • 对象关系映射: 将Java对象映射到数据库表。
  • Hibernate查询语言(HQL): 类似于SQL,但是使用面向对象的方式来查询数据。
  • Hibernate缓存: 提供了一级缓存和二级缓存,提高了数据访问的性能。
  • Hibernate事务管理: 支持声明式事务管理和编程式事务管理。

2、Hibernate的目录结构

hibernate-project/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           ├── model/
│   │   │           │   └── Entity.java
│   │   │           ├── dao/
│   │   │           │   └── EntityDao.java
│   │   │           └── service/
│   │   │               └── EntityService.java
│   │   ├── resources/
│   │   │   ├── hibernate.cfg.xml
│   │   │   └── mappings/
│   │   └── webapp/
│   │       ├── WEB-INF/
│   │       │   └── views/
│   │       │       └── entity-view.jsp
│   │       ├── static/
│   │       │   ├── js/
│   │       │   │   └── script.js
│   │       │   ├── css/
│   │       │   │   └── style.css
│   │       │   └── images/
│   └── test/
│       └── java/
│           └── com/
│               └── example/
│                   └── EntityDaoTest.java
└── pom.xml

在上述示例中:

  • com/example/model/目录存放实体类Entity.java
  • com/example/dao/目录存放数据访问对象(DAO)类EntityDao.java
  • com/example/service/目录存放服务类EntityService.java
  • resources/目录存放Hibernate配置文件hibernate.cfg.xml和映射文件夹mappings/
  • webapp/WEB-INF/views/目录存放JSP视图文件entity-view.jsp
  • webapp/static/js/目录存放JavaScript文件script.js
  • webapp/static/css/目录存放CSS样式文件style.css

四、MyBatis持久层框架

MyBatis是一个优秀的持久层框架,通过XML或注解的方式将Java方法映射到SQL查询。MyBatis相比Hibernate,更加灵活,更适用于需要对SQL进行精细控制的场景。它支持动态SQL、延迟加载、存储过程调用等特性,为开发者提供了丰富的操作数据库的方式。

1、MyBatis框架特性

MyBatis 是一个优秀的持久层框架,具有以下核心特性:

  • 简化的SQL操作: MyBatis通过XML或注解的方式将Java方法映射到SQL查询,使得SQL操作更加简洁明了。
  • 灵活的映射: MyBatis支持将查询结果映射为Java对象,使得数据库操作更贴近于面向对象的编程思想。
  • 缓存机制: MyBatis提供了一级缓存和二级缓存,可以有效地提高数据访问的性能。
  • 动态SQL: MyBatis支持动态SQL,可以根据条件动态生成SQL语句,提高了SQL的灵活性和可维护性。
  • 与Spring集成: MyBatis与Spring框架无缝集成,通过Spring的依赖注入管理MyBatis的Mapper对象,简化程序的配置和开发。

2、MyBatis框架的目录结构

mybatis-project/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           ├── mapper/
│   │   │           │   └── EntityMapper.java
│   │   │           └── model/
│   │   │               └── Entity.java
│   │   └── resources/
│   │       └── mybatis-config.xml
│   └── test/
│       └── java/
│           └── com/
│               └── example/
│                   └── EntityMapperTest.java
└── pom.xml

3、基于MyBatis框架的代码示例

以下是一个使用MyBatis进行数据持久化的简单示例:

Entity.java: 实体类,对应数据库中的表。

package com.example.model;public class Entity {private Long id;private String name;private Integer age;// Getters and setters// 省略...
}

EntityMapper.java: MyBatis的Mapper接口,定义了对实体类进行增删改查的方法。

package com.example.mapper;import com.example.model.Entity;
import java.util.List;public interface EntityMapper {void insert(Entity entity);void update(Entity entity);void delete(Long id);Entity findById(Long id);List<Entity> findAll();
}

mybatis-config.xml: MyBatis的配置文件,配置了数据源、Mapper接口等信息。

<?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><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/><property name="username" value="root"/><property name="password" value="password"/></dataSource></environment></environments><mappers><mapper resource="com/example/mapper/EntityMapper.xml"/></mappers>
</configuration>

EntityMapper.xml: MyBatis的Mapper XML文件,定义了SQL语句和与之对应的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="com.example.mapper.EntityMapper"><resultMap id="BaseResultMap" type="com.example.model.Entity"><id column="id" property="id" jdbcType="BIGINT"/><result column="name" property="name" jdbcType="VARCHAR"/><result column="age" property="age" jdbcType="INTEGER"/></resultMap><sql id="Base_Column_List">id, name, age</sql><insert id="insert" parameterType="com.example.model.Entity">INSERT INTO entity (name, age) VALUES (#{name}, #{age})</insert><update id="update" parameterType="com.example.model.Entity">UPDATE entity SET name = #{name}, age = #{age} WHERE id = #{id}</update><delete id="delete" parameterType="java.lang.Long">DELETE FROM entity WHERE id = #{id}</delete><select id="findById" resultMap="BaseResultMap" parameterType="java.lang.Long">SELECT <include refid="Base_Column_List"/> FROM entity WHERE id = #{id}</select><select id="findAll" resultMap="BaseResultMap">SELECT <include refid="Base_Column_List"/> FROM entity</select>
</mapper>

这个示例展示了如何使用MyBatis进行简单的数据持久化操作,包括定义实体类、Mapper接口和XML文件,并实现了对数据库中实体的增删改查功能。


五、Apache Struts

Apache Struts是一个流行的Web应用程序框架,提供了MVC架构的支持。Apache Struts基于Java Servlet和JavaServer Pages(JSP)技术,将应用程序分为模型(Model)、视图(View)和控制器(Controller)三层。它提供了丰富的标签库、表单验证、国际化等功能,为开发者构建可维护的Web应用程序提供了便利。

1、Struts框架的目录结构

struts-example/
├── src/
│   └── com/
│       └── example/
│           └── action/
│               └── HelloAction.java
├── WebContent/
│   ├── META-INF/
│   │   └── MANIFEST.MF
│   ├── WEB-INF/
│   │   ├── lib/
│   │   │   └── (Struts相关jar包)
│   │   ├── classes/
│   │   │   └── (编译后的.class文件)
│   │   └── struts.xml
│   └── hello.jsp
└── pom.xml

2、基于Struts框架的代码示例

  • src/com/example/action/:存放Action类的源代码。
  • WebContent/:Web应用程序的根目录。
    • META-INF/:存放项目的元数据信息。
    • WEB-INF/:存放Web应用程序的配置文件和部署描述符。
      • lib/:存放Struts框架和其他依赖的jar包。
      • classes/:存放编译后的.class文件。
      • struts.xml:Struts框架的配置文件,定义了Action和视图之间的映射关系。
    • hello.jsp:JSP视图页面,展示来自Action的数据。

以下是一个简单的Apache Struts的代码示例:

HelloAction.java: Struts的Action类,处理来自前端的请求。

package com.example.action;import com.opensymphony.xwork2.ActionSupport;public class HelloAction extends ActionSupport {private String message;public String execute() {message = "Hello, Struts!";return SUCCESS;}public String getMessage() {return message;}
}

hello.jsp: 视图页面,展示来自Action的数据。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Apache Struts Example</title>
</head>
<body><h1>${message}</h1>
</body>
</html>

struts.xml: Struts配置文件,配置了Action和视图的映射关系。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN""http://struts.apache.org/dtds/struts-2.5.dtd">
<struts><package name="default" extends="struts-default"><action name="hello" class="com.example.action.HelloAction"><result name="success">/hello.jsp</result></action></package>
</struts>

这个示例展示了一个简单的Apache Struts应用程序,包括了一个Action类、一个JSP视图页面以及相关的Struts配置文件。


六、Java框架总结

Java框架为开发人员提供了丰富的工具和功能,帮助他们更高效地构建应用程序。本文介绍了一些常用的Java框架,包括Spring框架、Hibernate框架等。通过对这些框架的介绍与详解,读者可以更好地理解它们的特点和优势,为选择合适的框架和提升开发效率提供参考。希望本文能够对读者在Java开发中的实践与探索起到一定的指导作用。

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

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

相关文章

HCIP —— 交换 (VLAN)

VLAN --- 虚拟局域网 在 HCIA 中 &#xff0c;已经学过交换机的一些基础配置&#xff0c;下面进行回顾一些简单的内容。 1.创建VLAN VLAN ID --- 区别和标识不同的VLAN 使用范围&#xff1a;0-4095 &#xff0c; 由12位二进制构成。 0 和 4095 作为 保留的VLAN。 …

【R语言基础操作】

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…

simulink汽车动力特性模型

1、内容简介 略 76-可以交流、咨询、答疑 simulink汽车动力特性模型 节气门、Gasoline Engine、离合器、作动器 2、内容说明 略 齿轮半径1 0.06; 齿轮半径2 0.072; 有效齿轮半径 2/3*(radius2^3 - radius1^3)/(radius2^2 - radius1^2); 输入传动比 2.1; 输出传动比 1…

洛谷——查单词+简单题+火车线路 +无聊的数列+最大数——线段树

一、 线段树 P2412 查单词 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P2412 解析&#xff1a; 板子题&#xff0c;区间搜索&#xff0c;不需要区间修改 #include <bits/stdc.h> using namespace std; #define endl \n #define i…

【PHP + 代码审计】函数详解2.0

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

python内置函数 D

python内置函数 D Python 解释器内置了很多函数和类型&#xff0c;任何时候都能使用。 D 名称描述delattr删除对象的属性。dict创建字典对象。dir列出对象的属性。divmod同时执行除法运算和取模运算&#xff0c;返回一个包含商和余数的元组。 delattr(object, name) delat…

HTML5实现一笔画游戏

HTML5实现一笔画游戏 一笔画问题 一笔画是图论科普中一个著名的问题&#xff0c;它起源于柯尼斯堡七桥问题科普。当时的东普鲁士哥尼斯堡城中有一条河&#xff0c;在这条河上有七座桥&#xff1a; 蓝色的代表河&#xff0c;这条河将城市分开成为四个区域&#xff0c;而七个橙…

深度学习 精选笔记(13.2)深度卷积神经网络-AlexNet模型

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增)&#xff0c;以达到集多方教程的精华于一文的目的。 ③非常推荐上面&#xff08;学习参考&#x…

深入浅出Hive性能优化策略

我们将从基础的HiveQL优化讲起&#xff0c;涵盖数据存储格式选择、数据模型设计、查询执行计划优化等多个方面。会的直接滑到最后看代码和语法。 目录 引言 Hive架构概览 示例1&#xff1a;创建表并加载数据 示例2&#xff1a;优化查询 Hive查询优化 1. 选择适当的文件格…

unity学习(61)——hierarchy和scene的全新认识+模型+皮肤+动画controller

刚刚开始&#xff0c;但又结束的感觉&#xff1f; 1.对hierarchy和scene中的内容有了全新的认识 一定要清楚自己写过几个scene&#xff1b;每个scene之间如何跳转&#xff1b;build setting是add当前的scene。 2.此时的相机需要与模型同级&#xff0c;不能在把模型放在相机下…

odoo中传递上下文

在Odoo中&#xff0c;上下文&#xff08;context&#xff09;是一个非常重要的概念&#xff0c;它允许开发人员在不同的动作、视图或模型间传递信息。上下文通常用于传递特定的标志或变量&#xff0c;这些变量可以影响方法的行为或视图的展示方式。 向表单和动作传递参数 1. …

vue的一些个人理解

个人的一些理解吧 可能不是很全面有的地方可能也不准确 MVVM 的理解 MVVM 是 Model-View-ViewModel 的缩写。MVVM 是一种设计思想。 Model 层代表数据模型&#xff0c;也可以在 Model 中定义数据修改和操作的业务逻辑; View 代表 UI 组件&#xff0c;它负责将数据模型转化成 U…

STM32的USART能否支持9位数据格式话题

1、问题描述 STM32L051 这款单片机。平常的 USART 串口传输是 8 位数据&#xff0c;但是他的项目需要用串口传输 9 位数据。当设置为 8 位数据时&#xff0c;串口响应中断正常。但是&#xff0c;当设置为 9 位数据时&#xff0c;串口就不产生中断了。USART2 的 ISR 寄存器 RXN…

ssh命令——安全远程连接Linux服务器

ssh命令是Secure Shell的简写&#xff0c;其功能是安全地远程连接服务器&#xff0c;ssh是OpenSSH套件中的客户端连接工具&#xff0c;通过SSH加密协议进行远程主机访问&#xff0c;并对远程服务器进行管理。 ssh命令的基本语法格式如下&#xff1a; ssh [选项] 主机名或IP地…

STM32G4高精度定时器的同步功能

1、引言 STM32G474 所含的高精度定时器(HRTIMER)其实包含了多个定时器&#xff0c;多个定时器之间可以单独工作&#xff0c;也可以进行同步&#xff0c;且高精度定时器还能与片上的其他定时器以及其他芯片进行同步&#xff0c;本文将对高精度定时器的同步功能进行介绍。 2、定…

linux安装wxWidgets

概要 在Linux系统中安装erlang时&#xff0c;需要提前安装wxWidgets&#xff01; 官方地址: https://docs.wxwidgets.org gitCode地址&#xff1a;https://gitcode.com/wxWidgets/wxWidgets 下载 下载地址&#xff1a; wget https://github.com/wxWidgets/wxWidgets/releas…

I2S 协议简介

I2S(Inter-IC Sound)是飞利浦公司提出的一种用于数字音频设备之间进行音频数据传输的总线。和 I2C、SPI 这些常见的通信协议一样&#xff0c;I2S 总线用于主控制器和音频 CODEC 芯片之间传输音频数据。 I2S 接口需要 3 根信号线(如果需要实现收和发&#xff0c;那么就要 4 根信…

【Text-to-CAD】基于生成式AI的CAD文件生成工具

Text-to-CAD作为一种机械设计工具,通过简单的文本提示实现CAD文件的智能生成。其开源接口、机器学习支持和Fine Tuning选项为用户提供了高度可定制化的体验。未来的Fine Tuning功能和可能的商业合作有望进一步拓展其在机械设计领域的影响力。 产品概述: 名称: Text-to-CAD类…

Django项目创建和settings设置

2021版本的pycharm有bug,需要将settings.py中 把BASE_DIR后面的/换成, url:统一资源定位符 互联网上每个文件都有一个唯一的url,它包含的信息指出文件的位置以及浏览器应该怎么处理它 语法: protocol://hostname[:port]/path[?query][#fragment] protocol:协议 hostname:主…

【excel】常用的50个函数与基础操作(统计函数)

统计函数 &#xff08;1&#xff09;数组函数操作 1.【SUM】求和 SUM&#xff08;数字1&#xff0c;数字2&#xff0c;数字3…&#xff09; 2.【SUMIF】单条件求和 SUMIF &#xff08;条件区域&#xff0c;条件&#xff0c;求和区域&#xff09; 3.【SUMIFS】(单)多条件求和…