做网站的哪里有wordpress菜单导航代码

news/2025/9/23 20:47:58/文章来源:
做网站的哪里有,wordpress菜单导航代码,上海市建筑网,wordpress默认模版MyBatis 操作数据库 本节目标前⾔JDBC 操作⽰例回顾1. 什么是MyBatis?2. MyBatis⼊⻔2.1 准备⼯作2.1.1 创建⼯程2.1.2 数据准备 2.2 配置数据库连接字符串2.3 写持久层代码2.4 单元测试 3. MyBatis的基础操作3.1 打印⽇志3.2 参数传递3.3 增(Insert)3.4 删(Delete)3.5 改(Upd… MyBatis 操作数据库 本节目标前⾔JDBC 操作⽰例回顾1. 什么是MyBatis?2. MyBatis⼊⻔2.1 准备⼯作2.1.1 创建⼯程2.1.2 数据准备 2.2 配置数据库连接字符串2.3 写持久层代码2.4 单元测试 3. MyBatis的基础操作3.1 打印⽇志3.2 参数传递3.3 增(Insert)3.4 删(Delete)3.5 改(Update)3.6 查(Select)3.6.1 起别名3.6.2 结果映射3.6.3 开启驼峰命名(推荐) 4. MyBatis XML配置⽂件4.1 配置连接字符串和MyBatis4.2 写持久层代码4.2.1 添加 mapper 接⼝4.2.2 添加 UserInfoXMLMapper.xml4.2.3 单元测试 4.3 增删改查操作4.3.1 增(Insert)4.3.2 删(Delete)4.3.3 改(Update)4.3.4 查(Select) 5. 其他查询操作5.1 多表查询5.1.1 准备⼯作5.1.2 数据查询 5.2 #{} 和 ${}5.3 排序功能5.4 like 查询 本节目标 使⽤MyBatis完成简单的增删改查操作, 参数传递.掌握MyBatis的两种写法: 注解 和 XML⽅式掌握MyBatis 相关的⽇志配置 前⾔ 在应⽤分层学习时, 我们了解到web应⽤程序⼀般分为三层即Controller、Service、Dao . 之前的案例中请求流程如下: 浏览器发起请求, 先请求Controller, Controller接收到请求之后, 调⽤Service进⾏业务逻辑处理, Service再调⽤Dao, 但是Dao层的数据是Mock的, 真实的数据应该从数据库 中读取. 我们学习MySQL数据库时已经学习了JDBC来操作数据库, 但是JDBC操作太复杂了. JDBC 操作⽰例回顾 创建数据库连接池 DataSource通过 DataSource 获取数据库连接 Connection编写要执⾏带 ? 占位符的 SQL 语句通过 Connection 及 SQL 创建操作命令对象 Statement替换占位符指定要替换的数据库字段类型占位符索引及要替换的值使⽤ Statement 执⾏ SQL 语句查询操作返回结果集 ResultSet更新操作返回更新的数量处理结果集释放资源 问题提出: 对于 JDBC 来说整个操作⾮常的繁琐我们不但要拼接每⼀个参 数⽽且还要按照模板代码的⽅式⼀步步的操作数据库并且在每次操作完还要⼿动关闭连接等⽽所有的这些操作步骤都需要在每个⽅法中重复书写. 那有没有⼀种⽅法可以更简单、更⽅便的操作数据库呢 答案是肯定的这就是我们要学习 MyBatis 的真正原因它可以帮助我们更⽅便、更快速的操作数据库. 1. 什么是MyBatis? MyBatis是⼀款优秀的 持久层 框架⽤于简化JDBC的开发。 MyBatis 官网介绍 持久层指的就是持久化操作的层, 通常指数据访问层(dao), 是⽤来操作数据库的. 简单来说 MyBatis 是更简单完成程序和数据库交互的框架也就是更简单的操作和读取数据库⼯具 2. MyBatis⼊⻔ Mybatis操作数据库的步骤 准备⼯作(创建springboot⼯程、数据库表准备、实体类)引⼊Mybatis的相关依赖配置Mybatis(数据库连接信息)编写SQL语句(注解/XML)测试 2.1 准备⼯作 2.1.1 创建⼯程 创建springboot⼯程并导⼊ mybatis的起步依赖、mysql的驱动包 项⽬⼯程创建完成后⾃动在pom.xml⽂件中导⼊Mybatis依赖和MySQL驱动依赖 !--Mybatis 依赖包-- dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.3.1/version /dependency !--mysql驱动包-- dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope /dependency2.1.2 数据准备 创建⽤⼾表, 并创建对应的实体类User -- 创建数据库 DROP DATABASE IF EXISTS mybatis_test; CREATE DATABASE mybatis_test DEFAULT CHARACTER SET utf8mb4; -- 使⽤数据数据 USE mybatis_test; -- 创建表[⽤⼾表] DROP TABLE IF EXISTS userinfo; CREATE TABLE userinfo (id INT ( 11 ) NOT NULL AUTO_INCREMENT,username VARCHAR ( 127 ) NOT NULL,password VARCHAR ( 127 ) NOT NULL,age TINYINT ( 4 ) NOT NULL,gender TINYINT ( 4 ) DEFAULT 0 COMMENT 1-男 2-⼥ 0-默认,phone VARCHAR ( 15 ) DEFAULT NULL,delete_flag TINYINT ( 4 ) DEFAULT 0 COMMENT 0-正常, 1-删除,create_time DATETIME DEFAULT now(),update_time DATETIME DEFAULT now(),PRIMARY KEY ( id ) ) ENGINE INNODB DEFAULT CHARSET utf8mb4; -- 添加⽤⼾信息 INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone ) VALUES ( admin, admin, 18, 1, 18612340001 ); INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone ) VALUES ( zhangsan, zhangsan, 18, 1, 18612340002 ); INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone ) VALUES ( lisi, lisi, 18, 1, 18612340003 ); INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone ) VALUES ( wangwu, wangwu, 18, 1, 18612340004 );实体类的属性名与表中的字段名⼀⼀对应 import lombok.Data; import java.util.Date; Data public class UserInfo {private Integer id;private String username;private String password;private Integer age;private Integer gender;private String phone;private Integer deleteFlag;private Date createTime;private Date updateTime; }2.2 配置数据库连接字符串 Mybatis中要连接数据库需要数据库相关参数配置 MySQL驱动类登录名密码数据库连接字符串 如果是application.yml⽂件, 配置内容如下: #数据库连接配置 spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncodingutf8useSSLfalseusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver2.3 写持久层代码 在项⽬中, 创建持久层接⼝UserInfoMapper import com.example.demo.model.UserInfo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.List; Mapper public interface UserInfoMapper {//查询所有⽤⼾Select(select username, password, age, gender, phone from userinfo)public ListUserInfo queryAllUser(); }Mybatis的持久层接⼝规范⼀般都叫 XxxMapper Mapper注解表⽰是MyBatis中的Mapper接⼝ 程序运⾏时, 框架会⾃动⽣成接⼝的实现类对象(代理对象)并给交Spring的IOC容器管理Select注解代表的就是select查询也就是注解对应⽅法的具体实现内容. 2.4 单元测试 在创建出来的SpringBoot⼯程中在src下的test⽬录下已经⾃动帮我们创建好了测试类 我们可以直接使⽤这个测试类来进⾏测试. 测试类上添加了注解 SpringBootTest该测试类在运⾏时就会⾃动加载Spring的运⾏环境.我们通过Autowired这个注解, 注⼊我们要测试的类, 就可以开始进⾏测试了 运⾏结果如下: 返回结果中, 可以看到, 只有SQL语句中查询的列对应的属性才有赋值 3. MyBatis的基础操作 3.1 打印⽇志 在Mybatis当中我们可以借助⽇志, 查看到sql语句的执⾏、执⾏传递的参数以及执⾏结果 在配置⽂件中进⾏配置即可 配置MyBatis打印日志 mybatis:configuration: # 配置打印 MyBatis⽇志log-impl: org.apache.ibatis.logging.stdout.StdOutImpl重新运⾏程序, 可以看到SQL执⾏内容, 以及传递参数和执⾏结果 3.2 参数传递 需求: 查找id4的⽤⼾,对应的SQL就是: select * from userinfo where id4 解决⽅案在queryById⽅法中添加⼀个参数(id)将⽅法中的参数传给SQL语句 使⽤ #{} 的⽅式获取⽅法中的参数 如果mapper接⼝⽅法形参只有⼀个普通类型的参数#{…} ⾥⾯的属性名可以随便写如#{id}、#{value}。建议和参数名保持⼀致 3.3 增(Insert) 返回主键 Insert 语句默认返回的是 受影响的⾏数 但有些情况下, 数据插⼊之后, 还需要有后续的关联操作, 需要获取到新插⼊数据的id ⽐如订单系统 当我们下完订单之后, 需要通知物流系统, 库存系统, 结算系统等, 这时候就需要拿到订单ID 如果想要拿到⾃增id, 需要在Mapper接⼝的⽅法上添加⼀个Options的注解 // 插入一条信息Options(useGeneratedKeys true,keyProperty id) // 获取自增主键 IDInsert(insert into userinfo (username,password,age,gender,phone ) values(#{username},#{password},#{age},#{gender},#{phone}))public Integer insert(UserInfo userInfo);useGeneratedKeys这会令 MyBatis 使⽤ JDBC 的 etGeneratedKeys ⽅法来取出由数据库内部⽣成的主键⽐如像 MySQL 和 SQL Server 这样的关系型数据库管理系统的⾃动递增字段默认值false.keyProperty指定能够唯⼀识别对象的属性MyBatis 会使⽤ getGeneratedKeys 的返回值或insert 语句的 selectKey ⼦元素设置它的值默认值未设置unset 测试代码 运⾏结果: 3.4 删(Delete) 3.5 改(Update) 3.6 查(Select) 我们在上⾯查询时发现, 有⼏个字段是没有赋值的, 只有Java对象属性和数据库字段⼀模⼀样时, 才会进⾏赋值 接下来我们多查询⼀些数据 Select(select id, username, password, age, gender, phone, delete_flag, create_time, update_time from userinfo) ListUserInfo queryAllUser();查询结果: 从运⾏结果上可以看到, 我们SQL语句中, 查询了delete_flag, create_time, update_time, 但是这⼏个属性却没有赋值. MyBatis 会根据⽅法的返回结果进⾏赋值 ⽅法⽤对象 UserInfo接收返回结果, MySQL 查询出来数据为⼀条, 就会⾃动赋值给对象.⽅法⽤List接收返回结果, MySQL 查询出来数据为⼀条或多条时, 也会⾃动赋值给List.但如果MySQL 查询返回多条, 但是⽅法使⽤UserInfo接收, MyBatis执⾏就会报错. 原因分析: 当⾃动映射查询结果时MyBatis 会获取结果中返回的列名并在 Java 类中查找相同名字的属性忽略⼤⼩写。 这意味着如果发现了 ID 列和 id 属性MyBatis 会将列 ID 的值赋给 id 属性 解决办法: 起别名结果映射开启驼峰命名 3.6.1 起别名 在SQL语句中给列名起别名保持别名和实体类属性名⼀样 3.6.2 结果映射 如果其他SQL, 也希望可以复⽤这个映射关系, 可以给这个Results定义⼀个名称 使⽤ id 属性给该 Results 定义别名, 使⽤ ResultMap 注解来复⽤其他定义的 ResultMap 3.6.3 开启驼峰命名(推荐) mybatis:configuration:map-underscore-to-camel-case: true #配置驼峰⾃动转换驼峰命名规则 abc_xyz abcXyz 表中字段名abc_xyz类中属性名abcXyz Java 代码不做任何处理 // 查询所有用户Select(select * from userinfo)public ListUserInfo queryAllUser();4. MyBatis XML配置⽂件 Mybatis的开发有两种⽅式 注解XML 上⾯学习了注解的⽅式, 接下来我们学习XML的⽅式 使⽤Mybatis的注解⽅式主要是来完成⼀些简单的增删改查功能. 如果需要实现复杂的SQL功能建议使⽤XML来配置映射语句也就是将SQL语句写在XML配置⽂件中. MyBatis XML的⽅式需要以下两步: 配置数据库连接字符串和MyBatis写持久层代码 4.1 配置连接字符串和MyBatis 此步骤需要进⾏两项设置数据库连接字符串设置和 MyBatis 的 XML ⽂件配置。 如果是application.yml⽂件, 配置内容如下: #数据库连接配置 spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncodingutf8useSSLusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver #配置 mybatis xml 的⽂件路径在 resources/mapper 创建所有表的 xml ⽂件 mybatis:mapper-locations: classpath:mapper/**Mapper.xml4.2 写持久层代码 持久层代码分两部分 ⽅法定义 Interface⽅法实现: XXX.xml 4.2.1 添加 mapper 接⼝ 数据持久层的接⼝定义 import com.example.demo.model.UserInfo; import org.apache.ibatis.annotations.Mapper; import java.util.List; Mapper public interface UserInfoXMlMapper {ListUserInfo queryAllUser(); }4.2.2 添加 UserInfoXMLMapper.xml 数据持久成的实现MyBatis 的固定 xml 格式 ?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.demo.mapper.UserInfoMapper/mapper创建UserInfoXMLMapper.xml, 路径参考yml中的配置 查询所有⽤⼾的具体实现 ?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.demo.mapper.UserInfoXMlMapperselect idqueryAllUser resultTypecom.example.demo.model.UserInfoselect username,password, age, gender, phone from userinfo/select /mapper以下是对以上标签的说明 mapper 标签需要指定 namespace 属性表⽰命名空间值为 mapper 接⼝的全限定名包括全包名.类名。select 查询标签是⽤来执⾏数据库的查询操作的 id 是和 Interface 接⼝中定义的⽅法名称⼀样的表⽰对接⼝的具体实现⽅法。resultType 是返回的数据类型也就是开头我们定义的实体类. 4.2.3 单元测试 SpringBootTest class UserInfoMapperTest {Autowiredprivate UserInfoMapper userInfoMapper;Testvoid queryAllUser() {ListUserInfo userInfoList userInfoMapper.queryAllUser();System.out.println(userInfoList);} }运⾏结果如下: 4.3 增删改查操作 接下来我们来实现⼀下⽤⼾的增加、删除和修改的操作. 4.3.1 增(Insert) UserInfoMapper接⼝: Integer insertUser(UserInfo userInfo);UserInfoMapper.xml实现 insert idinsertUserinsert into userinfo (username, password, age, gender, phone)values (#{username}, #{password}, #{age}, #{gender}, #{phone}) /insert返回⾃增 id 接⼝定义不变, Mapper.xml 实现 设置useGeneratedKeys 和keyProperty属性 insert idinsertUser useGeneratedKeystrue keyPropertyidinsert into userinfo (username, password, age, gender, phone)values (#{username}, #{password}, #{age}, #{gender}, #{phone}) /insert4.3.2 删(Delete) UserInfoMapper接⼝: UserInfoMapper.xml实现: 4.3.3 改(Update) 4.3.4 查(Select) 同样的, 使⽤XML 的⽅式进⾏查询, 也存在数据封装的问题 解决办法和注解类似: 起别名结果映射开启驼峰命名 接下来看下xml如果来写结果映射 5. 其他查询操作 5.1 多表查询 多表查询和单表查询类似, 只是SQL不同⽽已 5.1.1 准备⼯作 上⾯建了⼀张⽤⼾表, 我们再来建⼀张⽂章表, 进⾏多表关联查询. ⽂章表的uid, 对应⽤⼾表的id. 数据准备 -- 创建⽂章表 DROP TABLE IF EXISTS articleinfo;CREATE TABLE articleinfo (id INT PRIMARY KEY auto_increment,title VARCHAR (100) NOT NULL,content TEXT NOT NULL,uid INT NOT NULL,delete_flag TINYINT (4) DEFAULT 0 COMMENT 0-正常, 1-删除,create_time DATETIME DEFAULT now(),update_time DATETIME DEFAULT now() ) DEFAULT charset utf8mb4;-- 插⼊测试数据 INSERT INTO articleinfo (title, content, uid) VALUES(Java, Java正文, 1)对应Model: Data public class ArticleInfo {private Integer id;private String title;private String content;private Integer uid;private Integer deleteFlag;private Date createTime;private Date updateTime; }5.1.2 数据查询 需求: 根据uid查询作者的名称等相关信息 SQL: SELECTta.id, ta.title, ta.content,ta.uid,tb.username,tb.age,tb.genderFROMarticleinfo AS taLEFT JOIN userinfo AS tb ON ta.uid tb.id;补充实体类: 5.2 #{} 和 ${} MyBatis 参数赋值有两种⽅式, 咱们前⾯使⽤了 #{} 进⾏赋值, 接下来我们看下⼆者的区别 #{} 处理的预编译 SQL, 使用占位符 ? 进行站位的${} 是直接拼接在SQL 后面#{} 可以对于字符串类型, 会自动加上 ‘’ 分号, ${} 不会 #{} 和 ${} 的区别就是预编译SQL和即时SQL 的区别. 性能更⾼ 绝⼤多数情况下, 某⼀条 SQL 语句可能会被反复调⽤执⾏, 或者每次执⾏的时候只有个别的值不同(⽐如 select 的 where ⼦句值不同, update 的 set ⼦句值不同, insert 的 values 值不同). 如果每次都需要经过上⾯的语法解析, SQL优化、SQL编译等则效率就明显不⾏了. 预编译SQL编译⼀次之后会将编译后的SQL语句缓存起来后⾯再次执⾏这条语句时不会再次编译(只是输⼊的参数不同), 省去了解析优化等过程, 以此来提⾼效率 更安全(防⽌SQL注⼊) SQL注⼊是通过操作输⼊的数据来修改事先定义好的SQL语句以达到执⾏代码对服务器进⾏攻击的⽅法。 由于没有对⽤⼾输⼊进⾏充分检查⽽SQL⼜是拼接⽽成在⽤⼾输⼊参数时在参数中添加⼀些SQL关键字达到改变SQL运⾏结果的⽬的也可以完成恶意攻击。 sql 注⼊代码 or 11 可以看出来, 查询的数据并不是⾃⼰想要的数据. 所以⽤于查询的字段尽量使⽤ #{} 预查询的⽅式 5.3 排序功能 排序的 desc 和 asc, 使用${} 直接拼接即可 5.4 like 查询

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

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

相关文章

企业网站优化公司wordpress切换回老的编辑器

问题来源:在表单的标签中对输入的字符串进行大写转换。一不小心输入了反斜杠 \如下图所示:输入 chn\ 的时候,在 IE8 下弹出一个js错误。(在实际的项目的表单元素中遇到了,单独这样拿出来测试的时候又不弹出错误。也很是焦灼)索…

网站建设的页面要求wordpress谷歌地图定位修改设置

#、%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分。在这里笔者简单介绍它们的相应用途。1.#符号的用途一般有三种。 1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被…

wordpress rateseo 新旧网站 两个域名

0、序 在运维这条路上走久了,你能听到或者遇到这样的事情就越多,甚至是你自己干过的: 一个信心满满的运维人员一个不小心,输入 "chmod -R 777 /" 导致一个巨大的悲剧,然后整个部门从上到下被撸一顿。虽然…

做网站需要编码吗原型图怎么做网站交互

STM32——DMA 宗旨:技术的学习是有限的,分享的精神是无限的。 DMA 是为CPU分担数据转移的工作。因为DMA的存在CPU才被解放出来,它可以在 DMA 转移数据的过程中同时进行数据运算、响应中断,大大提高效率。 1、DMA工作分析 数据传…

2025.9.23——1绿

普及+/提高 P2602 [ZJOI2010] 数字计数 很早之前就看到但不想写的数位DP,昨天开始写,用的递归,一直错,看完题解才发现不需要用递归也能解决。 然后今天对着题解思路+AI解析+代码才堪堪完成,我对数位DP还是太不了解…

网站注册界面设计查看商标是否被注册官网

目录 一、requests的基本使用 二、get请求 三、post请求 四、代理的使用 五、cookie登录以及验证码图片识别 一、requests的基本使用 import requestsurl http://www.baidu.comresponse requests.get(url url)#一个类型和六个属性 #Response类型 #print(type(response…

指定图片做logo网站新手怎样推销自己的产品

从CSDN中读取到关于spark structured streaming源代码分析不错的几篇文章 spark源码分析--事件总线LiveListenerBus spark事件总线的核心是LiveListenerBus,其内部维护了多个AsyncEventQueue队列用于存储和分发SparkListenerEvent事件。 spark事件总线整体思想是生产…

网站设计平台及开发工具楼市最新消息价格

米西米西滴,吃过中午饭来一篇,话说,上回书说道macaca 测试web(3),参数驱动来搞,那么有小伙本又来给雷子来需求, 登录模块能不能给我给重新封装一下吗, 我说干嘛封装&…

济南网站建设cnwenhui银行网站模板免费下载

<locale.h>提供的函数用于控制c标准库中对于不同的地区行为不一样的部分。&#xff08;地区通常是国家或者某种特定语言的地理区域&#xff09; 在标准库里&#xff0c;依赖地区的部分通常包括以下几项&#xff1a; 数字量的格式 货币的格式 字符集 时间日期的格式 它设…

做网站湖州邯郸市建设局查中级职称网站

现在&#xff0c;许多Spark应用程序已成为遗留应用程序&#xff0c;很难在本地进行增强&#xff0c;测试和运行。 Spark具有很好的测试支持&#xff0c;但仍有许多Spark应用程序不可测试。 当您尝试运行一些旧的Spark应用程序时&#xff0c;我将分享一个常见错误。 Exceptio…

怎么建设营销型网站自适应网站什么意思

一、Hive开窗函数根据特定条件取上一条最接近时间的数据&#xff08;单个开窗函数&#xff0c;实际取两个窗口&#xff09; 针对于就诊业务&#xff0c;一次就诊&#xff0c;多个处方&#xff0c;处方结算时间可能不一致&#xff0c;然后会有多个AI助手推荐用药&#xff0c;会…

北京定制网站开发公司网站推广需要多少钱

在本系列内容第1部分和第2部分中分别介绍了使用DSC法通过间接法测量材料的比热容的常用方法的基本原理和得到高质量比热数据的方法&#xff0c;在完成实验后需要在相关的分析软件中计算所研究的材料的比热容。在目前大多数商品化的DSC仪所附带的分析软件中通常可以额外配置可用…

建设手机网站包括哪些费用吗做淘宝客优惠券网站还是APP赚钱

ER TO SQL语句的转换&#xff0c;在数据库设计生命周期的位置如下所示。 一、转换的类别 从ER图转化得到关系数据库中的SQL表&#xff0c;一般可分为3类&#xff1a; 1&#xff09;转化得到的SQL表与原始实体包含相同信息内容。该类转化一般适用于&#xff1a; 二元“多对多”关…

策划方案免费网站南京广告公司排名

在Java中&#xff0c;Async注解通常与Spring框架一起使用以实现异步方法调用。然而&#xff0c;CompletableFuture.runAsync()是Java标准库中的方法&#xff0c;并不受Async注解的影响。 Async注解只能被Spring容器识别和处理&#xff0c;因此只能在由Spring管理的组件&#x…

织梦做网站简单吗企业策划书3000字

1.概述 封装&#xff08;Encapsulation&#xff09;是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。 封装可以被认为是一个保护屏障&#xff0c;防止该类的代码和数据被外部类定义的代码随机访问。 要访问该类的代码和数据&#xff0c;必须通过严格的接口控制…

网站做加qq群链接地址wordpress删除评论框

基于被囊群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于被囊群算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于被囊群优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&#x…

青岛网站建设eoe网上商城推广方法

应用变现平台是帮助开发者优化广告策略并最终获得更多收入的综合途径。在广告变现过程中&#xff0c;接入单一的广告联盟&#xff0c;变现效率不高&#xff0c;并且开发者需要花费许多精力进行筛选和管理&#xff0c;难免会应接不暇&#xff0c;而聚合广告平台的出现则一定程度…

黑龙江门户网站建设注册公司的流程图

2024年智慧城市与信息系统国际学术会议 (ICSCIS 2024) 2024 International Conference on Smart City and Information System 随着互联网技术的发展&#xff0c;城市化进程的深入&#xff0c;智慧城市的研究与发展越来越普遍&#xff0c;运用物联网、云计算、大数据等先进信…

中职省级示范校建设网站百度快速收录seo工具软件

文章目录 1. 认识线程死锁2. 如何避免线程死锁? 1. 认识线程死锁 线程死锁描述的是这样一种情况&#xff1a;多个线程同时被阻塞&#xff0c;它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞&#xff0c;因此程序不可能正常终止。 如下图所示&#xff…

2025.9.23

今天早八去科技楼上工程实训课,主要是电工技能,比如学习万用表测电笔的使用以及体验安全电流穿过人体的感觉。然后写实验报告记录过程和感想。下课后去勒泰中心5楼吃了自助烤肉两个小时,还是烤肉,火鸡面,薯条,桂…