MyBatis框架使用

一、第一种开发模式

使用MyBatis的SqlSession中提供的方法进行简单的增删改查。

1. 导包:到官网下载MyBatis的jar包,可以到中文官网上下载,下载完成后,在项目中导入MyBatis的核心jar包以及附属jar包,另外,还需要导入数据库连接的jar包,否则是连接不了数据库的。

http://www.mybatis.cn/82.html

2. 配置MyBatis主配置文件:配置文件的命名格式一般为mybatis-config.xml;一般放置在src目录下。

3. 添加MyBatis主配置文件的头部信息

4. 在MyBatis主配置文件中,可以配置的内容有(properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, plugins?, environments?, databaseIdProvider?, mappers?)这么多,在添加配置内容是一定要严格的按照前后顺序进行配置。

  • < properties > :读取配置文件,通过属性resource读取配置文件,一般用于读取 db.properties 文件。

  • < typeAliases >:配置别名,有两种方式,一是使用子标签 < typeAlias > 为某全限定类名添加别名,然后就可以在实体类的配置文件中以该别名取代全限定类名。二是使用子标签 < package > 扫描某个包,然后就可以在实体类的配置文件中直接输入类名而不需要全限定类名,因为主配置文件中已经有包名,再加上类名就组合成了全限定类名。

  • < environments >:配置环境,可以通过子标签 < environment > 配置多种环境,通过子标签的id属性进行区分,通过default属性选择要使用的环境配置,环境可以配置事务和配置数据源,数据源的值可以使用 < properties > 读取的文件的值。

  • < mapper >: 关联实体类的配置文件,通过子标签 < mapper > 关联实体类的配置文件。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--    读取配置文件--><properties resource="db.properties"/><!--    配置别名--><typeAliases>
<!--        <typeAlias type="com.gec.domain.User" alias="User"/>--><package name="com.gec.domain"/></typeAliases><!--   配置环境,可以配置多个环境,default表示选择其中的某个环境--><environments default="dev"><environment id="dev"><!--            配置事务,这里先选择JDBC方式--><transactionManager type="JDBC"/><!--            配置数据源--><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments><!--    关联实体类的映射文件--><mappers><mapper resource="com/gec/domain/UserMapper.xml"/></mappers>
</configuration>

5. 配置实体类的映射文件:位置可以放在与实体类同一目录下,命名格式一般为 实体类名+Mapper.xml;

6. 添加实体类配置文件的头部信息。

7. 在该配置文件中主要用于写SQL语句,通过标签的不同来区别不同的SQL语句和执行的操作,常用有 < select > / < insert > / < update > / < delete > 四种标签,通过id属性来唯一区别SQL语句。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 这里的命名空间namespase可以随便取值,但如果是使用接口方式编程则不能随便写,必须与接口名相同 -->
<mapper namespace="aaa"><select id="selectUserById" parameterType="int" resultType="User">select * from tb_user where id = #{id};</select><!--    查询所有--><select id="selectUserList" resultType="User">select * from tb_user;</select><!--    模糊查询--><!--<select id="selectUserLikeName" parameterType="string" resultType="User">select * from tb_user where username like #{username};</select>--><select id="selectUserLikeName" parameterType="string" resultType="User">select * from tb_user where username like '%${value}%';</select><!--    添加--><insert id="saveUser" parameterType="User">insert into tb_user (username, password) values (#{username}, #{password});</insert><!--    修改--><update id="updateUserById" parameterType="User">update tb_user set username=#{username}, password=#{password} where id=#{id};</update><!--    删除--><delete id="deleteUserById" parameterType="int">delete from tb_user where id=#{id};</delete>
</mapper>

8. MyBatis的增删改查操作:

  • 首先使用 I/O 流的方式读取主配置文件,使用 Resources.getResourceAsStream(“mybatis-config.xml”) / getResourceAsReader(“mybatis-config.xml”) 方法读取。
  • 获得会话工厂的构建对象构建会话工厂:new SqlSessionFactoryBuild().build(读取配置文件的I/O流对象).
  • 通过会话工厂的 openSession(boolean)方法创建一个SqlSession对象,这里可以设置布尔值为true表示自动提交事务,默认是false,即进行增删改查操作后需要手动提交事务,使用session.commit()提交。
  • 查询操作,使用 session.selectOne(String, Object) / selectList(String [, Object] ) 方法进行查询,参数 1 表示命名空间下SQL语句的id;参数 2 为条件查询时输入到SQL中的参数。
  • 添加操作,使用 session.insert(String, Object) 方法进行添加,参数 1 同上,参数 2 为添加的对象。
  • 修改操作,使用 session.update(String, Object) 方法进行修改,参数 1、2 与添加操作类似。
  • 删除操作,使用 session.delete(String, Object),参数 1 同上, 参数 2 为删除所需的属性值。
	@Testpublic void fun1() throws IOException {String config = "mybatis-config.xml";InputStream in = Resources.getResourceAsStream(config);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);SqlSession session = sqlSessionFactory.openSession();//参数1:填写 SQL id的名称,aaa为namespace的值,目的是唯一标识SQL语句//参数2:填写具体的实际参数User user = session.selectOne("aaa.selectUserById", 1);System.out.println(user);}

二、第二种开发方式

MyBatis面向接口编程:使用MyBatis提供的方法终究不能满足多样化的SQL语句,例如当需要传入多个参数时,MyBatis提供的方法就没辙了,所以MyBatis允许用户自定义方法,通过接口的方式满足多样化的SQL需求。

1. 添加必须的文件,实体类、实体类的映射文件和MyBatis的主配置文件是必须的,配置文件的内容参考上文。

2. 创建接口文件,除了创建上面的三个文件外,还需要创建接口文件,接口中声明了用户自定义的方法。

public interface UserMapper {List<User> selectUserLikeNameAndPassword(Map<String, String> map);List<User> selectUserLikeNameAndPassword2(@Param(value = "username") String name, @Param(value = "password") String password);int saveUser(User user);int updateUserById(User user);int deleteUserById(int id);
}

3. 接口中的方法与映射文件中的SQL语句要按照一定的规则关联起来,这样我们在调用接口的方法时,MyBatis框架才会自动为我们创建接口的实现类,执行SQL语句。

  • 首先映射文件中的namespace必须等于接口的全路径名;
  • 映射文件中的标签的id必须等于接口中对应的方法名;
  • 映射文件中的标签的传入参数类型必须等于接口方法中的参数类型;
  • 映射文件总的标签的返回类型必须等于接口方法的返回类型(若SQL的结果集是List集合,则在接口方法中用List集合接收)。
<!-- namespace的值必须等于接口的全路径名-->
<mapper namespace="com.gec.Mapper.UserMapper">
<!--    配置实体类属性与数据库表的映射,当两边的命名不相同时需要设置;可以只设置不相同的属性与列,相同的属性与列可以省略不写
--><resultMap id="UserMap" type="User">
<!--        <id property="id" column="id"></id>--><result property="userName" column="username"></result>
<!--        <result property="password" column="password"></result>--></resultMap><!--    传入map集合--><select id="selectUserLikeNameAndPassword" parameterType="map" resultType="User">select * from tb_user where username like #{username} and password=#{password};</select><!--    传入多个参数, 另外parameterType属性可以省略--><select id="selectUserLikeNameAndPassword2" resultMap="UserMap">select * from tb_user where username like #{username} and password=#{password};</select>
</mapper>

4. 若实体类的属性名与数据库表的列名不相同,则需要配置属性名与列名的关系,注意,可以值设置不相同的属性与列,相同的属性与列可以忽略不写。使用标签 < resultMap > 配置,通过子标签 < id > 和 < result > 配置属性与列的一一对应关系。

<!--    配置实体类属性与数据库表的映射,当两边的命名不相同时需要设置;可以只设置不相同的属性与列,相同的属性与列可以省略不写
--><resultMap id="UserMap" type="User">
<!--        <id property="id" column="id"></id>--><result property="userName" column="username"></result>
<!--        <result property="password" column="password"></result>--></resultMap>

5. 编写SQL语句,基本与原始SQL语句相同,不同点在于:传入的参数通过 #{参数名} 使用,若是模糊查询的话,传入的参数可能需要 “%” 包起来,这时候使用 ‘%#{value}%’ ,其中value若是没有在接口方法的参数中使用注解 @param(value="…") 指定特定的名字的话,可以写成任意一个非关键字的名字,若是要传入多个参数的话,也要在接口方法的参数中添加注解 @param(value="…")。

6. 准备完成后就可以调用方法执行SQL语句了,在此之前最好先检查一下 MyBatis 主配置文件中是否有关联实体类的映射文件。

7. 在测试方法中

  • 首先同样是要先获得SqlSession对象;
  • 使用SqlSession对象的getMapper(接口.class) 方法获得接口的实例对象;
  • 调用实例对象的方法进行增删改查。
	@Testpublic void fun1(){String config = "mybatis-config.xml";InputStream in = Resources.getResourceAsStream(config);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);SqlSession session = sqlSessionFactory.openSession();//mapper 的 SQL 传参中,除了可以传入基本数据类型+String和实体类外,还可以传入复杂类型。Map<String, String> map = new HashMap<>();map.put("username", "%张%");map.put("password", "12345");//使用接口方式自定义UserMapper mapper = session.getMapper(UserMapper.class);List<User> users = mapper.selectUserLikeNameAndPassword(map);for (User s : users) {System.out.println(s);}}

8. 另外,除了查询外,增删改都需要在执行完方法后提交事务,否则即使修改了数据也不能持久化到数据库中。

三、动态SQL

MyBatis提供多种标签来帮助程序员编写动态SQL语句:

1. if 标签:根据 test 属性中的布尔值(true/false)来决定是否拼接 if 块中的SQL语句。

	<select id="selectNewSql" resultMap="UserMap">select * from tb_user where<if test="username!=null and username!=''"> username like #{username} </if><if test="password!=null and password!=''"> and password=#{password}</if></select>

2. where 标签:使用该标签将条件括起来,若存在条件时会自动添加关键字 where ,并且会将多余 and、or 等关键字删除。一般与 if 标签配合使用。

	<select id="selectNewSql" resultMap="UserMap">select * from tb_user<where><if test="username!=null and username!=''">username like #{username}</if><if test="password!=null and password!=''">and password=#{password}</if></where></select>

3. set 标签:使用在更新语句中国,代替 set 关键字,会自动添加关键字 set ,并且会将多余的“,”删除。一般配合 if 标签使用。

	<update id="updateUser" parameterType="User">update tb_user<set><if test="userName!=null and userName!=''"> username=#{userName},</if><if test="password!=null and password!=''"> password=#{password} </if></set>where id=#{id}</update>

4. foreach 标签:若传入的参数是 List 集合时使用该标签遍历集合,注意需要在接口方法的参数中使用 @param(value="…") 注解设置集合的名字,否则会找不到。在 foreach 标签中使用 collection 属性接收集合的名字,open 属性设置开始内容,item 属性设置遍历的每一个元素名,separate 属性设置元素之间的分隔符,close 属性设置结束内容,最后在 foreach 块中通过 #{item定义的名字} bianli jihe .

	<select id="selectUserByIds" resultMap="UserMap">select * from tb_user<where><foreach collection="ids" open="id in(" item="id" separator="," close=")">#{id}</foreach></where></select>

5. sql 标签:抽取重复的SQL语句,将重复的SQL语句抽取出来,使用标签的 id 属性唯一标识。

	<sql id="base_sql">select * from tb_user</sql>

6. include 标签:一般用于引入sql标签抽取的SQL语句,使用标签的 refid 属性选择想要引入的sql标签内容即可。

	<select id="selectUserByIds" resultMap="UserMap"><include refid="base_sql"/><include refid="whereSql"/></select>

7. choose、when、otherwise 标签:效果类似于Java中的switch语句,使用方法与JSTL中的choose一样,when 标签的 test 属性中设置条件,可以有多个when,若所有的 when 都不执行的话,就执行 otherwise 标签的内容。

	<select id="selectUserByNameOrPassword" parameterType="User" resultMap="UserMap"><include refid="base_sql"/><where><choose><when test="userName!=null and userName!=''">username=#{userName}</when><otherwise>password=#{password}</otherwise></choose></where></select>



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

相关文章

  1. python错误集锦

    1.python连接数据库时,报错如下:原因:程序运行时,后面多了个“,”,已至于把它当做元组来处理,host传入getaddrinfo的值不是字符串 - 它很可能是一个元组。解决方案:去掉逗号2.python在调用函数的时候,函数明明不需要参数,调用的时候报错:TypeError: read_mysql() mis…...

    2024/5/7 15:19:21
  2. 比特币一路上行 行情再次创出新高

    各位朋友们,你们好, 我是阿帆老师。阿帆本着负责、诚恳、认真的态度用心写好每一篇分析文章,特点鲜明,不夸张,不含糊,力求能让大家看懂大的趋势分析以及小范围的多空搏杀力度!本内容中的信息及数据来源于公开可获得资料,力求准确可靠,但对信息的准确性及完整性不做任何…...

    2024/5/7 20:08:24
  3. 在现实隐藏的时候,报错,某个属性不能读取。怎么处理

    答案:用hasOwnProperty()方法判断属性。...

    2024/4/26 21:23:00
  4. RocketMQ

    文章目录一、MQ发送同步消息二、发送异步消息 一、MQ发送同步消息二、发送异步消息 对时间要求比较高的场景...

    2024/4/18 18:56:59
  5. Hive查询练习二

    目标 inner join left join full join union all 综合练习 表结构inner join 1.在2019年购买后又退款的用户※【注意去重】去重31条,没有去重61条 尽量在做表连接之前去重,这样效率才高select a.user_name from (select distinct user_name from user_trade where year…...

    2024/4/19 23:08:41
  6. linux下的动态库和共享库(linux基础)

    linux下的动态库和共享库 1.静态库 liblinux.so包含一个对应的头文件告知编译器lib文件里面的具体内容 设置lib文件允许编译器去查找已经编译好的二进制代码 静态链接表示静态性,在编译链接之后, lib库中需要的资源已经在可执行程序中了, 也就是静态存在,没有依赖性了。2.…...

    2024/5/1 21:29:41
  7. python3 +dlib 人脸识别

    想用dlib弄个人脸识别,达到能从一张多人的图里检测出是否有数据库中的人的效果。 最开始的代码是参考这篇文章的,https://blog.csdn.net/MAILLIBIN/article/details/88979691,其中检测器和识别模型分享到百度网盘了,链接:https://pan.baidu.com/s/1lfaWNaGJMxKyFlFydDS3Sw…...

    2024/5/7 16:30:22
  8. C++ 标准模板库STL(二)—— string容器

    一、什么是string string是一个类,类似于java中的String类。利用string类可以定义其对应的string对象 注意:要使用string类要引入库 string首字母s就是小写,不要大写,和java不一样二、如何定义string对象 string str;三、初始化string对象 (一)在定义的时候就初始化 stri…...

    2024/4/15 17:46:48
  9. Linux内核学习笔记 -17 物理内存分配与回收机制 - 下

    ...

    2024/4/15 17:46:47
  10. Python数据类型及其运算符(附练习实例)

    # 使用比较运算符比较大小关系。python = 95 # 定义变量,存储Python的分数 english = 92 # 定义变量,存储english的分数 c = 89 # 定义变量,存储c语音的分数 # 输出3个变量的值 print(python =+str(python)+english =+str(english)+c =+str(c)+\n)…...

    2024/5/7 3:12:36
  11. node.js之精华级入门

    node.js简介简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。 —解决问题: I/O的操作阻…...

    2024/4/23 2:49:43
  12. 报错:Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean

    问题:启动启动类报错 报错信息:Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean. 报错截图报错原因:没有加“spring-boot-starter-web”依赖 百度说是可能还有其他原因:启动类没加注解“@SpringBootApplication”,我的是…...

    2024/5/7 1:25:29
  13. Mybatis入门案例时遇见的错误

    Mybatis入门案例时遇见的错误mybatis的映射配置文件位置和dao接口的包结构不相同导致的一些错误 此处位置结构指的是UserDao和UserDao.xml所处的包的层级。这两个的层级在此案例中一定要弄成一样的。IDEA版本引起的问题 我用的是IDEA 2020.1.1,测试(测试类如下)的时候老是会…...

    2024/5/5 11:47:20
  14. redis面试相关问题

    一、redis 内存淘汰机制 redis 提供 6种数据淘汰策略:volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰 volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰 volatile-random:从已设置过…...

    2024/4/27 10:45:09
  15. zeppelin-0.9.0安装

    1,下载 zeppelin-0.9.0-preview2-bin-all.tgz2,解压 3,配置 将zeppelin-site.xml.template copy一份命名为为zeppelin-site.xml ,并配置zeppelin的web访问地址4,启动:5,访问...

    2024/4/15 17:46:41
  16. 剑指offer第二十三题二叉搜索树的后序遍历

    放在前面:写了两天论文,最后写论文了!!!再不学编程我这辈子就毁了!!!题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。package test; class TreeNode {int val;TreeNo…...

    2024/5/1 14:19:07
  17. 01Java基础语法-22. IDEA开发软件

    1.1 开发工具概述 IDEA是一个专门针对Java的集成开发工具(IDE),由Java语言编写。所以,需要有JRE运行环境并配置好环境变量。 它可以极大地提升我们的开发效率。可以自动编译,检查错误。在公司中,使用的就是IDEA进行开发。 1.2 安装 https://www.jetbrains.com/idea/downloa…...

    2024/4/25 11:38:18
  18. 英语单词1

    英语单词 ascend v.升高,攀登ce- 撤走 de-往下,分开(depart) 一再的走Absent v.缺席ab-否定 除了a-x表示强调 sent 发送,派遣 没有派遣——缺席的astonish v.使惊讶stone n.石头 一个石头吓死了 -ing 令我吃惊access n.通道,接近accessible adj.平易近人的 assessment n.估…...

    2024/4/15 15:14:25
  19. Leetcode 749. 隔离病毒 C++

    Leetcode 749. 隔离病毒 题目 病毒扩散得很快,现在你的任务是尽可能地通过安装防火墙来隔离病毒。 假设世界由二维矩阵组成,0 表示该区域未感染病毒,而 1 表示该区域已感染病毒。可以在任意 2 个四方向相邻单元之间的共享边界上安装一个防火墙(并且只有一个防火墙)。 每天…...

    2024/4/15 15:14:24
  20. 使用阿里云服务器手动搭建Wordpress(基于CentOS 7)

    使用阿里云服务器手动搭建Wordpress(基于CentOS 7)WordPress是使用PHP语言开发的博客平台,在支持PHP和MySQL数据库的服务器上,可以用WordPress架设自己的网站,也可以用作内容管理系统(CMS)。接下来详细操作如何在Linux操作系统的ECS实例上搭建WordPress网站。操作步骤使…...

    2024/4/20 2:55:09

最新文章

  1. 笔试强训Day18 字符串 排序 动态规划

    [编程题]压缩字符串(一) 题目链接&#xff1a;压缩字符串(一)__牛客网 (nowcoder.com) 思路&#xff1a; 跟着思路写就完了。 AC code&#xff1a; #include <iostream> #include<string> using namespace std; string a; string ans; int main() {cin >>…...

    2024/5/7 20:09:13
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. Linux命令-dpkg-reconfigure命令(Debian Linux中重新配制一个已经安装的软件包)

    说明 dpkg-reconfigure命令 是Debian Linux中重新配置已经安装过的软件包&#xff0c;可以将一个或者多个已 安装的软件包传递给此指令&#xff0c;它将询问软件初次安装后的配置问题。 当用户需要再次对软件包配置的时候&#xff0c;可以使用dpkg-reconfigure命令来对指定的软…...

    2024/4/30 4:15:04
  4. MySQL 底层数据结构 聚簇索引以及二级索引 Explain的使用

    数据结构 我们知道MySQL的存储引擎Innodb默认底层是使用B树的变种来存储数据的 下面我们来复习一下B树存储 B树存储 哈希存储的区别 哈希存储,只能使用等值查询 B树与B树存储 我们知道B树实际上就是B树的变种 那么为啥使用B树而不是使用B树呢? 我们知道效率的高低主要取决于…...

    2024/5/4 8:59:40
  5. 专升本-云计算

    被誉为第三次信息技术革命 什么是云计算&#xff1f; 云计算是一种商业的计算模式&#xff0c;它将任务分布在大量计算机构成的资源池上&#xff0c;用户可以按需通过网络存储空间&#xff0c;计算能力和信息等服务 云计算的产生和发展&#xff1a; 起源&#xff1a;上世纪6…...

    2024/5/7 0:53:04
  6. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/7 19:05:20
  7. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/6 18:40:38
  8. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/6 23:37:19
  9. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/7 14:19:30
  10. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/7 0:32:52
  11. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/7 16:57:02
  12. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/7 14:58:59
  13. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/7 1:54:46
  14. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/6 20:04:22
  15. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/7 0:32:51
  16. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/7 16:05:05
  17. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/7 16:04:58
  18. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/6 19:38:16
  19. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/7 16:05:05
  20. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/7 0:32:49
  21. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/6 21:25:34
  22. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/7 11:08:22
  23. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/7 7:26:29
  24. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/7 0:32:47
  25. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/7 17:09:45
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57