Mybatis从入门到精通 (一)
Mybatis
Mybatis简介
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
MyBatis 是支持普通SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集,使开发者只需要关注sql本身。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
Mybatis架构
1、mybatis配置SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。 2、通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂 3、由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。 4、mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。 5、Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。 6、Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。 7、Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
Mybatis入门
我们先来写一个入门程序,来了解一下Mybatis具体的使用流程,具体的细节会在后面一一讲解。
第一步:创建数据库及数据库表,以供我们来操作。 CREATE DATABASE mybatis;
CREATE TABLE `user` (`id` INT(11) NOT NULL AUTO_INCREMENT,`username` VARCHAR(32) NOT NULL COMMENT '用户名称',`birthday` DATE DEFAULT NULL COMMENT '生日',`sex` CHAR(1) DEFAULT NULL COMMENT '性别',`address` VARCHAR(256) DEFAULT NULL COMMENT '地址',PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;INSERT INTO `user` VALUES ('1', '王五', NULL, '2', NULL);
INSERT INTO `user` VALUES ('10', '张三', '2014-07-10', '1', '北京市');
INSERT INTO `user` VALUES ('16', '张小明', NULL, '1', '河南郑州');
INSERT INTO `user` VALUES ('22', '陈小明', NULL, '1', '河南郑州');
INSERT INTO `user` VALUES ('24', '张三丰', NULL, '1', '河南郑州');
INSERT INTO `user` VALUES ('25', '陈小明', NULL, '1', '河南郑州');
INSERT INTO `user` VALUES ('26', '王五', NULL, NULL, NULL);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
第二步:创建java项目,创建Mybatis核心配置文件sqlMapConfig.xml SqlMapConfig.xml是mybatis核心配置文件,配置文件内容为数据源、事务管理<?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><!-- 和spring整合后 environments配置将废除 --><environments default="development"><environment id="development"><!-- 使用jdbc事务管理 --><transactionManager type="JDBC" /><!-- 数据库连接池 --><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url"value="jdbc:mysql://localhost:3306/mybatis" /><property name="username" value="root" /><property name="password" value="123456" /></dataSource></environment></environments>
</configuration>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
第三步:创建和数据库表对应的pojo类 public class User implements Serializable {/*** */private static final long serialVersionUID = 1L;private Integer id;private String username;// 用户姓名private String sex;// 性别private Date birthday;// 生日private String address;// 地址public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "User [id=" + id + ", username=" + username + ", sex=" + sex+ ", birthday=" + birthday + ", address=" + address + "]";}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
第四步:创建sql映射文件User.xml<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->
<mapper namespace="test"> <!--id为sql语句的id,parameterType为参数类型,resultType为结果类型,#{}为占位符--><!--根据id查找用户,#{}里面可以随便写--><select id="findUserById" parameterType="Integer" resultType="com.cad.domain.User">select * from user where id =#{id}</select>
</mapper>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
第五步:sqlMapConfig配置文件中要引入映射文件 <mappers><mapper resource="sqlmap/User.xml"/></mappers>
- 1
- 2
- 3
- 4
- 5
- 6
第六步,测试程序,简单的操作 public class MybatisTest {@Testpublic void test() throws IOException { String resource="config/sqlMapConfig.xml"; //加配置文件InputStream in=Resources.getResourceAsStream(resource);//创建SqlSessionFactoryBuilder对象用来创建工厂SqlSessionFactoryBuilder builder= new SqlSessionFactoryBuilder();//创建工厂SqlSessionFactory factory=builder.build(in); //创建SessionSqlSession sqlSession=factory.openSession(); //进行查询User user=(User)sqlSession.selectOne("test.findUserById",1);System.out.println(user);sqlSession.close();}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
模糊查询
<select id="findUserByUsername" parameterType="String" resultType="com.cad.domain.User"><!-- ${}里面只能是value -->select * from user where username like '%${value}%'</select>
- 1
- 2
- 3
- 4
- 5
- 6
public class MybatisTest {@Testpublic void test() throws IOException {String resource="config/sqlMapConfig.xml";InputStream in=Resources.getResourceAsStream(resource);SqlSessionFactoryBuilder builder= new SqlSessionFactoryBuilder();SqlSessionFactory factory=builder.build(in);SqlSession sqlSession=factory.openSession(); List<User> users=sqlSession.selectList("findUserByUsername","五");for(User user:users) {System.out.println(user);}sqlSession.close();} }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
添加
<!-- 添加操作 --><insert id="insertUser" parameterType="com.cad.domain.User">insert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address})</insert>
- 1
- 2
- 3
- 4
public class MybatisTest {@Testpublic void test() throws IOException {String resource="config/sqlMapConfig.xml";InputStream in=Resources.getResourceAsStream(resource);SqlSessionFactoryBuilder builder= new SqlSessionFactoryBuilder();SqlSessionFactory factory=builder.build(in);SqlSession sqlSession=factory.openSession(); User user=new User();user.setUsername("齐天大圣");user.setBirthday(new Date()); user.setSex("男");user.setAddress("花果山");sqlSession.insert("insertUser", user);sqlSession.commit();sqlSession.close();} }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
添加并返回数据库自增主键
<!-- 保存用户 -->
<insert id="saveUser" parameterType="cn.itcast.mybatis.pojo.User"><!-- selectKey 标签实现主键返回 --><!-- keyColumn:主键对应的表中的哪一列 --><!-- keyProperty:主键对应的pojo中的哪一个属性 --><!-- order:设置在执行insert语句前执行查询id的sql,还是在执行insert语句之后执行查询id的sql --><!-- resultType:设置返回的id的类型 --><!--LAST_INSERT_ID():是mysql的函数,返回auto_increment自增列新记录id值。--><selectKey keyColumn="id" keyProperty="id" order="AFTER"resultType="int">SELECT LAST_INSERT_ID()</selectKey>INSERT INTO `user`(username,birthday,sex,address) VALUES(#{username},#{birthday},#{sex},#{address})
</insert>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
修改
<!-- 修改操作 -->
<update id="updateUser" parameterType="com.cad.domain.User">update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}
</update>
- 1
- 2
- 3
- 4
public class MybatisTest {@Testpublic void test() throws IOException {String resource="config/sqlMapConfig.xml";InputStream in=Resources.getResourceAsStream(resource);SqlSessionFactoryBuilder builder= new SqlSessionFactoryBuilder();SqlSessionFactory factory=builder.build(in);SqlSession sqlSession=factory.openSession(); User user=new User();user.setId(27);user.setUsername("天蓬元帅");user.setBirthday(new Date()); user.setSex("女");user.setAddress("银河");sqlSession.update("updateUser", user);sqlSession.commit();sqlSession.close();} }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
删除
<!-- 删除操作 -->
<delete id="deleteUser" parameterType="Integer">delete from user where id=#{id}
</delete>
- 1
- 2
- 3
- 4
public class MybatisTest {@Testpublic void test() throws IOException {String resource="config/sqlMapConfig.xml";InputStream in=Resources.getResourceAsStream(resource);SqlSessionFactoryBuilder builder= new SqlSessionFactoryBuilder();SqlSessionFactory factory=builder.build(in);SqlSession sqlSession=factory.openSession(); sqlSession.delete("deleteUser", 27);sqlSession.commit();sqlSession.close();} }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
Mapper动态代理方式
Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象。
1.编写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"> <!-- namespace:命名空间,和Mapper接口的位置一样,这样框架会自动帮我们找到接口 -->
<mapper namespace="com.cad.domain.UserMapper"><select id="findUserById" parameterType="int" resultType="com.cad.domain.User">select * from user where id =#{id}</select><!-- 模糊查询 --><select id="findUserByUsername" parameterType="String" resultType="com.cad.domain.User"><!-- ${}里面只能是value -->select * from user where username like '%${value}%'</select> <!-- 添加操作 --><insert id="insertUser" parameterType="com.cad.domain.User">insert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address})</insert><!-- 修改操作 --><update id="updateUser" parameterType="com.cad.domain.User">update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}</update><!-- 删除操作 --><delete id="deleteUser" parameterType="Integer">delete from user where id=#{id}</delete>
</mapper>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
2.创建Mapper接口 public interface UserMapper {public User findUserById(int id);public List<User> findUserByUsername(String username); public void insertUser(User user); public void deleteUser(Integer id);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
3.核心配置文件中引入映射文件 <mappers><mapper resource="mapper/UserMapper.xml"/></mappers>
- 1
- 2
- 3
- 4
- 5
4.测试
public class MybatisTest {@Testpublic void test() throws IOException {String resource="config/sqlMapConfig.xml";InputStream in=Resources.getResourceAsStream(resource);SqlSessionFactoryBuilder builder= new SqlSessionFactoryBuilder();SqlSessionFactory factory=builder.build(in);SqlSession sqlSession=factory.openSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class);User user=userMapper.findUserById(10);System.out.println(user);} }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
Mapper接口开发需要遵循以下规范:
1、 Mapper.xml文件中的namespace与mapper接口的类路径相同,否则会找不到接口,也就无法生成代理对象。
2、 Mapper接口方法名和Mapper.xml中定义的每个方法的id相同
3、 Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同
4、 Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
- 1
- 2
- 3
- 4
- 5
开发中使用这种方式来进行开发,简便快捷,代码复用性高,免去很多重复繁琐代码。
Mybatis一些小细节
通过入门例子可以知道,每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。
从 XML 中构建 SqlSessionFactory
我们可以直接通过加载核心配置文件来创建SqlSessionFactory String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
- 1
- 2
- 3
- 4
- 5
不使用XML构建 SqlSessionFactory
//自己实现获取数据源DataSource dataSource = xxx; //获取事务TransactionFactory transactionFactory = new JdbcTransactionFactory();Environment environment = new Environment("development", transactionFactory, dataSource);Configuration configuration = new Configuration(environment);configuration.addMapper(BlogMapper.class);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
configuration 添加了一个映射器类(mapper class)。映射器类是 Java 类,它们包含 SQL 映射语句的注解从而避免了 XML 文件的依赖。不过,由于 Java 注解的一些限制加之某些 MyBatis 映射的复杂性,XML 映射对于大多数高级映射来说仍然是必须的。有鉴于此,如果存在一个对等的 XML 配置文件的话,MyBatis 会自动查找并加载它(这种情况下, BlogMapper.xml 将会基于类路径和 BlogMapper.class 的类名被加载进来)。了解即可,开发中使用xml格式。
- 1
- 2
- 3
- 4
主要类的生命周期
SqlSessionFactoryBuilder,这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了,可以重用 SqlSessionFactoryBuilder 来创建多个 SqlSessionFactory 实例,但是最好还是不要让其一直存在以保证所有的 XML 解析资源开放给更重要的事情。
SqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在,没有任何理由对它进行清除或重建。使用 SqlSessionFactory 的最佳实践是在应用运行期间不要重复创建多
每个线程都应该有它自己的 SqlSession 实例。SqlSession 的实例不是线程安全的,因此是不能被共享的。
每执行一次请求都应该开启一次sqlSession实例。当然要记得在finally中关闭来节省资源。
Mybatis的核心配置文件
MyBatis 的配置文件包含了MyBatis的设置和属性信息。文档的结构和顺序如下:
properties 属性
settings 设置
typeAliases 类型命名
typeHandlers 类型处理器
objectFactory 对象工厂
plugins 插件
environments(环境集合属性对象)environment(环境子属性对象)transactionManager(事务管理)dataSource(数据源)
databaseIdProvider 数据库厂商标识
mappers 映射器
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
properties(属性)
我们可以将数据源等数据配置在外部文件中,然后引用。
//db.peoperties文件jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8jdbc.username=rootjdbc.password=root
- 1
- 2
- 3
- 4
- 5
- 6
- 7
//引入文件<properties resource="db.properties"/><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></dataSource>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
如果属性在不只一个地方进行了配置,那么 MyBatis 将按照下面的顺序来加载:
- 在 properties 元素体内指定的属性首先被读取。
- 然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性。
typeAliases(类型别名)
类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。
<typeAliases><!-- 单个别名定义 --><typeAlias alias="user" type="cn.cad.pojo.User" /> <!-- 批量别名定义,扫描整个包下的类,别名为类名(大小写不敏感) --><package name="cn.itcast.mybatis.pojo" /></typeAliases>在mapper文件中就可以使用别名user。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
Mybatis已经为许多常见的 Java 类型内建了相应的类型别名。它们都是大小写不敏感的,例如Srting,integer等。
插件(plugins)
MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:
Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
ParameterHandler (getParameterObject, setParameters)
ResultSetHandler (handleResultSets, handleOutputParameters)
StatementHandler (prepare, parameterize, batch, update, query)
- 1
- 2
- 3
- 4
- 5
这些类中方法的细节可以通过查看每个方法的签名来发现,或者直接查看 MyBatis 的发行包中的源代码。 假设你想做的不仅仅是监控方法的调用,那么你应该很好的了解正在重写的方法的行为。 因为如果在试图修改或重写已有方法的行为的时候,你很可能在破坏 MyBatis 的核心模块。 这些都是更低层的类和方法,所以使用插件的时候要特别当心
配置环境(environments)
MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中, 现实情况下有多种理由需要这么做。例如,开发、测试和生产环境数据库需要有不同的配置;
不过要记住:尽管可以配置多个环境,每个 SqlSessionFactory 实例只能选择其一。所以,如果你想连接两个数据库,就需要创建两个 SqlSessionFactory 实例,每个数据库对应一个。
配置环境的关键点:
默认的环境 ID(比如:default=”development”)。每个 environment 元素定义的环境 ID(比如:id=”development”)。事务管理器的配置(比如:type=”JDBC”)。数据源的配置(比如:type=”POOLED”)
- 1
- 2
- 3
- 4
- 5
- MyBatis 中有两种类型的事务管理器(也就是 type=”[JDBC|MANAGED]”)
- Mybatis三种内建的数据源类型(也就是 type=”[UNPOOLED|POOLED|JNDI]”)
我们都是使用默认的,具体的参数意思可以查看官方文档。
映射器(mappers)
映射器配置会告诉了 MyBatis 去哪里找映射文件。
<mapper resource=" " />:使用相对于类路径的资源(现在的使用方式)<mapper url="file:///var/mappers/AuthorMapper.xml"/>:使用绝对路径,基本不会用 <mapper class="cn.itcast.mybatis.mapper.UserMapper"/>:使用mapper接口类路径。注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。 <package name="xxx"/>:注册指定包下的所有mapper接口,此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- android应用开发-从设计到实现 2-1 设计原理
设计原理设计是一门让人感觉很抽象的艺术。设计需要从两个方面来考虑问题:实用:体现在功能上和交互性上; 美观:体现在界面的布局,色彩的搭配,字体的运用上;对于我们的安卓应用来讲,设计的目的就是要体现需要显示给用户看的内容的价值,将用户所有的注意力都吸引到要呈现…...
2024/4/18 3:45:51 - 外卖小程序开发
灵犀外卖小程序开发步骤:安装说明 1、导入db文件夹中的数据到Bmob,关于Bmob的入门使用,请参见:http://blog.it577.net/archives/32/ 2、修改小程序源码文件/utils/init.js中的Bmob Appid信息 3、Bmob后台修改小程序Appid与支付信息,具体操作图解,请参见:http://blog.it5…...
2024/4/7 17:31:36 - 高分求助pb importString()函数问题
dw_1.importString(csv!,is_data)is_data为空怎么就没有反映?如果第一次查询ls_data有记录,那么dw_1就显示出有结果,可ls_data为空的时候dw-1老是还显示第一次的记录呢,奇怪,怎么解决??? 问题是出在哪儿?...
2024/4/17 5:20:00 - 网络编程 C++ Socket Microsoft Visual Studio 2012
近日开始学习网络编程,细节相当复杂,不容易掌握,不过相信慢慢会好的。 个人理解简单步骤大致是这样,当然细节相当繁杂,需要多练习 服务器端: Create Socket ->Configure address and port ->Bind Ip -> Listen -> Accept Connection -> IO(receive or sen…...
2024/4/18 16:53:02 - html中submit和button的区别(总结)
文章目录submit和buttonsubmit介绍submit和button的区别 submit和button submit介绍submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了。 如果表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常都必须把submit改成button,即取消…...
2024/4/19 14:56:24 - "围观"设计模式(16)--结构型之组合模式(Composite Pattern)
组合模式也叫合成模式,有时又叫做部分-整体模式,主要是用来描述部分与整体的关系,其定义为:将对象组合成树形结构以表示“整体与部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。----设计模式之禅个人理解 组合模式目的是将整体与部分组合成树形来表示整…...
2024/4/18 5:59:31 - HTML中button标签通过CSS设置样式
唉~真的是大学学的东西都还给学校了。我以为我以前的基础会让我学习起来比较容易些。。。结果,要吐血了哭几乎忘得差不多了。。。尤其是CSS,都不会用了。。。下午看了下button标签,通过与CSS的结合,算是找回了一些当初的记忆。。。有木有觉得废话好多闭嘴那我还是直接上图好…...
2024/4/19 17:22:11 - 【网络编程1】Java套接字Socket
这篇博客是本人学习《Java网络程序设计》书中第4章套接字的学习总结。初学者网友学习这篇Java套接字文章,如果难于理解文章前面理论部分,可以先运行后面的程序,边看运行后面的程序边理解前面的原理,这对初学者是最好的方法。所有源代码都在文章后面我的github链接代码中。 …...
2024/4/25 2:22:14 - 视频教程-Oracle从入门到精通全套视频教程之SQL与PLSQL(四)-Oracle
Oracle从入门到精通全套视频教程之SQL与PLSQL(四)Oracle DBA,熟悉Unix操作系统,精通Oracle数据库。 曾任职某大型金融IT公司,负责银行领域数据库构建与运维,维护大量银行数据库系统。目前在某世界500强金融公司任职Oracle DBA、数据库架构师,在数据库架构规划、大型数据库开…...
2024/4/17 5:21:00 - 《逍遥江湖零》评测:开启不删档测试的武侠网游
《逍遥江湖零请添加链接描述》是由珠海心游开发并运营的 2D画面MMORPG,同一系列中之前还推出过《逍遥江湖3》。本次游戏画面表现一般,但新人升级速度较快,开服期间活动较多,奖励和福利也很丰富。目前该游戏已经于5月25日开启不删档测试,测试期间不需要激活码,玩家可以直接…...
2024/3/31 13:51:37 - button标签的onclick事件
1.普通的button标签定义onclick事件 (1):无参<button onclick="mymethon()"></button><script type="text/javascript">function mymethon(){alert("触发点击事件");} </script>(2):有参①:一个参数 <butt…...
2024/4/17 5:21:42 - selenium的基本使用和常用语法
selenium的基本使用和常用语法 转载一篇特别优秀的文章: https://blog.csdn.net/weixin_41931602/article/details/82754743 1.声明浏览器对象 selenium支持多个浏览器,也支持手机端的浏览器,除此之外还有Phantomjs,下面举一个简单的例子,创建一个谷歌浏览器对象为browser…...
2024/4/17 21:14:29 - linux c++ socket 网络编程(1)同步阻塞、非阻塞模型
1.网络编程基本模型介绍 linux的网络编程有很多种写法,最简单的是阻塞式(Blocking)的网络程序,其次有非阻塞(Non-Blocking),多路复用(Multiplexing),异步(Asynchronous)模型等。 1.1. 阻塞模型 阻塞模型是最为简单的一种网络编程模型。顾名思义,该模型中,socket都工…...
2024/4/18 12:24:29 - springboot使用spring-data-jpa完成数据持久化
在之前我们一直使用JdbcTemplate来实现数据的增删改查,这里尝试使用spring-data-jpa,实现上更加简单,因为Spring Data JPA 框架,主要针对的就是 Spring 唯一没有简化到的业务逻辑代码,使用spring-data-jpa对开发者来说连仅剩的实现持久层业务逻辑的工作都省了。声明持久层…...
2024/4/17 5:20:36 - 关于小程序中的web-view与网页之间的交互
说到小程序,就很自然的想到vue,在我看来,小程序就是在vue上做了很多限制,管理而成的。简单来说,因为vue是开源的,所以小程序就是以来微信上的vue,当然这个是基于微信庞大的用户群的基础上生成的,微信也可以从B端收取费用。也就是用户变现的机制。 废话不说了,先…...
2024/4/20 8:54:16 - MySQL从入门到精通、SQL实战题解
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 MySQL是一种关系数据…...
2024/4/20 16:25:15 - 干货 | 旷视科技俞刚:我在旷视研究院做检测
https://www.toutiao.com/i6678643562231366147/作者俞刚,AI 科技评论获其授权转载。以下为原文:入职旷视研究院已经四年多,一转眼已经从单兵作战,到现在有一个 Detection 团队。一路过来有坎坷,有经历,有成长。这次希望通过分享的方式,让各位对旷视研究院(Detection 组…...
2024/4/17 5:19:42 - 关于QT socket 编程
第一个验证:创建TCP服务器要求: 1、能够监听指定端口的 数据信息; 2、能够检测到有新的客户端建立连接; 3、能够检测到客户端的断开; 4、能够检测到接收到的客户端的数据; 5、能够发送数据到指定的客户端…...
2024/4/17 5:20:36 - RocketMQ入门到入土(二)事务消息&顺序消息
一、事务消息的由来 1、案例 引用官方的购物案例: 小明购买一个100元的东西,账户扣款100元的同时需要保证在下游的积分系统给小明这个账号增加100积分。账号系统和积分系统是两个独立是系统,一个要减少100元,一个要增加100积分。如下图: RocketMQ入门到入土(二)事务消息…...
2024/4/25 14:15:59 - MySQL从入门到精通(一)
一、表的定义表是一种结构化的文件,可以用来存储特定类型的数据,如:学生信息、课程信息等,都可以放到表中,另外表都有特定的名称,而且不能重复。表中有以下几个概念:列、行、主键。1.列(字段)列,通常叫做字段,每个字段都包含:字段名称、字段数据类型、字段约束、字…...
2024/4/17 5:21:06
最新文章
- Elasticsearch:开启高效搜索与分析的新篇章
Elasticsearch:开启高效搜索与分析的新篇章 文章目录 Elasticsearch:开启高效搜索与分析的新篇章前言一、Elasticsearch的起源与特点起源特点1、分布式架构:2、实时性:3、全文搜索:4、可扩展性:5、数据类型…...
2024/5/9 15:51:05 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - HiveSQL如何生成连续日期剖析
HiveSQL如何生成连续日期剖析 情景假设: 有一结果表,表中有start_dt和end_dt两个字段,,想要根据开始和结束时间生成连续日期的多条数据,应该怎么做?直接上结果sql。(为了便于演示和测试这里通过…...
2024/5/9 7:10:28 - Django实现的登录注册功能
1 前言 在Web开发中,用户登录和注册是最基本且必不可少的功能。Django,作为一个高级的Python Web框架,为我们提供了强大的工具和库来快速实现这些功能。下面,我将详细介绍如何使用Django来实现用户登录和注册功能。 2 功能介绍 …...
2024/5/5 8:36:26 - linuxday05
1、makedile原理(增量编译生成代码) # (注释符) 目标------依赖 目标不存在//目标比依赖旧才会执行命令; makefile的实现 1、命名要求(Makefile/makefile) 2、规则的集合 目标文件&#…...
2024/5/7 13:05:29 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/8 6:01:22 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/9 15:10:32 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/9 4:20:59 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/8 20:48:49 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/8 19:33:07 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/8 20:38:49 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/9 7:32:17 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) 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 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在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