使用注解开发,Lombok,多对一处理
使用注解开发
删除 UserMapper.xml
UserMapperpackage com.hou.dao;import com.hou.pojo.User;
import org.apache.ibatis.annotations.Select;import java.util.List;public interface UserMapper {@Select("select * from user")List<User> getUsers();
}
核心配置 mybatis-config.xml<?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.hou.pojo.User" alias="User"></typeAlias></typeAliases><environments default="development"><environment id="development"><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 class="com.hou.dao.UserMapper"></mapper></mappers>
</configuration>
本质:反射机制
底层:动态代理!
Mybatis详细执行流程:
Resource获取全局配置文件
实例化SqlsessionFactoryBuilder
解析配置文件流XMLCondigBuilder
Configration所有的配置信息
SqlSessionFactory实例化
trasactional事务管理
创建executor执行器
创建SqlSession
实现CRUD
查看是否执行成功
提交事务
关闭
注解CRUD
package com.hou.dao;import com.hou.pojo.User;
import org.apache.ibatis.annotations.*;import java.util.List;public interface UserMapper {@Select("select * from user")List<User> getUsers();//方法存在多个参数,所有的参数必须加@Param@Select("select * from user where id = #{id}")User getUserById(@Param("id") int id);@Insert("insert into user (id, name, pwd) values" +"(#{id},#{name},#{password})")int addUser(User user);@Update("update user set name=#{name}, pwd=#{password} " +"where id=#{id}")int updateUser(User user);@Delete("delete from user where id=#{id}")int deleteUser(@Param("id") int id);}
MybatisUtile
package com.hou.utils;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;
import java.io.InputStream;//sqlSessionFactory --> sqlSession
public class MybatisUtils {private static SqlSessionFactory sqlSessionFactory;static {try {//使用mybatis第一步:获取sqlSessionFactory对象String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}public static SqlSession getSqlSession(){return sqlSessionFactory.openSession(true);}}
Test
package com.hou.dao;import com.hou.pojo.User;
import com.hou.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import java.util.List;public class UserDaoTest {@Testpublic void test(){// 获得sqlsession对象SqlSession sqlSession = MybatisUtils.getSqlSession();try{// 1.执行 getmapperUserMapper userDao = sqlSession.getMapper(UserMapper.class);List<User> userList = userDao.getUsers();for (User user : userList) {System.out.println(user);}}catch(Exception e){e.printStackTrace();}finally{//关闭sqlSession.close();}}@Testpublic void getuserById(){// 获得sqlsession对象SqlSession sqlSession = MybatisUtils.getSqlSession();try{// 1.执行 getmapperUserMapper userDao = sqlSession.getMapper(UserMapper.class);User user = userDao.getUserById(1);System.out.println(user);}catch(Exception e){e.printStackTrace();}finally{//关闭sqlSession.close();}}@Testpublic void addUser(){// 获得sqlsession对象SqlSession sqlSession = MybatisUtils.getSqlSession();try{// 1.执行 getmapperUserMapper userDao = sqlSession.getMapper(UserMapper.class);userDao.addUser(new User(6, "kun","123"));}catch(Exception e){e.printStackTrace();}finally{//关闭sqlSession.close();}}@Testpublic void updateUser(){// 获得sqlsession对象SqlSession sqlSession = MybatisUtils.getSqlSession();try{// 1.执行 getmapperUserMapper userDao = sqlSession.getMapper(UserMapper.class);userDao.updateUser(new User(6, "fang","123"));}catch(Exception e){e.printStackTrace();}finally{//关闭sqlSession.close();}}@Testpublic void deleteUser(){// 获得sqlsession对象SqlSession sqlSession = MybatisUtils.getSqlSession();try{// 1.执行 getmapperUserMapper userDao = sqlSession.getMapper(UserMapper.class);userDao.deleteUser(6);}catch(Exception e){e.printStackTrace();}finally{//关闭sqlSession.close();}}
}
8. Lombok
在IDEA中安装lombok插件
配置
<dependencies><!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></dependency>
</dependencies>
@Getter and @Setter
@FieldNameConstants
@ToString
@EqualsAndHashCode
@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor
@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger, @CustomLog
@Data
@Builder
@SuperBuilder
@Singular
@Delegate
@Value
@Accessors
@Wither
@With
@SneakyThrows
@Data: 无参构造,get,set,toString,hashCode
在实体类上加注解
package com.hou.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private int id;private String name;private String password;}
9. 多对一处理
多个学生关联一个老师(多对一)
集合(一对多)
1. 建表
CREATE TABLE `teacher` (`id` INT(10) NOT NULL PRIMARY KEY,`name` VARCHAR(30) DEFAULT NULL
)ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO teacher (`id`, `name`) VALUES (1, 'hou');CREATE TABLE `student` (`id` INT(10) NOT NULL,`name` VARCHAR(30) DEFAULT NULL,`tid` INT(10) DEFAULT NULL,PRIMARY KEY (`id`),KEY `fktid` (`tid`),CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO student (`id`, `name`, `tid`) VALUES (1, 'xiao1', 1);
INSERT INTO student (`id`, `name`, `tid`) VALUES (2, 'xiao2', 1);
INSERT INTO student (`id`, `name`, `tid`) VALUES (3, 'xiao3', 1);
INSERT INTO student (`id`, `name`, `tid`) VALUES (4, 'xiao4', 1);
INSERT INTO student (`id`, `name`, `tid`) VALUES (5, 'xiao5', 1);
新建实体类
package com.hou.pojo;import lombok.Data;@Data
public class Student {private int id;private String name;//学生需要关联一个老师private Teacher teacher;
}
package com.hou.pojo;import lombok.Data;@Data
public class Teacher {private int id;private String name;
}
建立Mapper接口
建立Mapper.xml
测试是否能够成功
2. 按照查询嵌套处理
StudentMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.hou.dao.StudentMapper"><select id="getStudent" resultMap="StudentTeacher">select * from student;</select><resultMap id="StudentTeacher" type="com.hou.pojo.Student"><result property="id" column="id"></result><result property="name" column="name"></result><!--对象使用assiociation--><!--集合用collection--><association property="teacher" column="tid"javaType="com.hou.pojo.Teacher"select="getTeacher"></association></resultMap><select id="getTeacher" resultType="com.hou.pojo.Teacher">select * from teacher where id = #{id};</select></mapper>
3. 按照结果嵌套处理
select s.id sid,s.name sname,t.name tname
from student s,teacher t where s.tid=t.id;
<select id="getStudent2" resultMap="StudentTeacher2">select s.id sid,s.name sname,t.name tnamefrom student s,teacher t where s.tid=t.id;
</select><resultMap id="StudentTeacher2" type="com.hou.pojo.Student"><result property="id" column="sid"></result><result property="name" column="sname"></result><association property="teacher" javaType="com.hou.pojo.Teacher"><result property="name" column="tname"></result></association></resultMap>
property 映射到列结果的字段或属性。
column 数据库中的列名,或者是列的别名。
10. 一对多
一个老师拥有多个学生
对于老师而言就是一对多
1.环境搭建
实体类
package com.hou.pojo;import lombok.Data;
import java.util.List;@Data
public class Teacher {private int id;private String name;private List<Student> studentList;
}
package com.hou.pojo;import lombok.Data;@Data
public class Student {private int id;private String name;private int tid;
}
- 按照结果查询
<select id="getTeacher" resultMap="TeacherStudent">select s.id sid, s.name sname, t.name tname, t.id tidfrom student s, teacher twhere s.tid = t.id and t.id = #{id};
</select><resultMap id="TeacherStudent" type="com.hou.pojo.Teacher"><result property="id" column="tid"></result><result property="name" column="tname"></result><!--集合中的泛型信息,我们用oftype获取--><collection property="studentList" ofType="com.hou.pojo.Student"><result property="id" column="sid"></result><result property="name" column="sname"></result></collection>
</resultMap>
3. 按照查询嵌套处理
<select id="getTeacher2" resultMap="TeacherStudent2">select * from mybatis.teacher where id = #{id}
</select><resultMap id="TeacherStudent2" type="com.hou.pojo.Teacher"><collection property="studentList" column="id" javaType="ArrayList"ofType="com.hou.pojo.Student"select="getStudentByTeacherId"></collection>
</resultMap><select id="getStudentByTeacherId" resultType="com.hou.pojo.Student">select * from mybatis.student where tid = #{id}
</select>
小结
关联 - association 多对一
集合 - collection 一对多
javaType & ofType
JavaType用来指定实体中属性类型
ofType映射到list中的类型,泛型中的约束类型
注意点:
保证sql可读性,尽量保证通俗易懂
注意字段问题
如果问题不好排查错误,使用日志
11. 动态sql
动态sql:根据不同的条件生成不同的SQL语句
- 搭建环境
create table `blog`(`id` varchar(50) not null comment '博客id',`title` varchar(100) not null comment '博客标题',`author` varchar(30) not null comment '博客作者',`create_time` datetime not null comment '创建时间',`views` int(30) not null comment '浏览量')ENGINE=InnoDB DEFAULT CHARSET=utf8
实体类
package com.hou.pojo;import lombok.Data;import java.util.Date;@Data
public class Blog {private String id;private String title;private String author;private Date createTime;private int views;
}
核心配置
<settings><setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
Mapper.xml<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.hou.mapper.BlogMapper"><insert id="addBlog" parameterType="Blog">insert into mybatis.blog (id, title, author, create_time, views) values(#{id}, #{title}, #{author}, #{create_time}, #{views});</insert>
</mapper>
新建随机生成ID包
package com.hou.utils;import org.junit.Test;import java.util.UUID;@SuppressWarnings("all")
public class IDUtiles {public static String getId(){return UUID.randomUUID().toString().replaceAll("-","");}@Testpublic void test(){System.out.println(getId());}}
测试类:添加数据
import com.hou.mapper.BlogMapper;
import com.hou.pojo.Blog;
import com.hou.utils.IDUtiles;
import com.hou.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import java.util.Date;public class MyTest {@Testpublic void addBlog(){SqlSession sqlSession = MybatisUtils.getSqlSession();BlogMapper blogMapper = sqlSession.getMapper(BlogMapper.class);Blog blog = new Blog();blog.setId(IDUtiles.getId());blog.setAuthor("houdongun");blog.setCreateTime(new Date());blog.setViews(999);blog.setTitle("first");blogMapper.addBlog(blog);blog.setId(IDUtiles.getId());blog.setTitle("second");blogMapper.addBlog(blog);blog.setId(IDUtiles.getId());blog.setTitle("third");blogMapper.addBlog(blog);blog.setId(IDUtiles.getId());blog.setTitle("forth");blogMapper.addBlog(blog);sqlSession.close();}
}
- if
<select id="queryBlogIF" parameterType="map" resultType="Blog">select * from mybatis.blog where 1=1<if test="title != null">and title = #{title}</if><if test="author != author">and author = #{author}</if>
</select>
test
@Test
public void queryBlogIF(){SqlSession sqlSession = MybatisUtils.getSqlSession();BlogMapper blogMapper = sqlSession.getMapper(BlogMapper.class);Map map = new HashMap();// map.put("title", "second");map.put("author", "houdongun");List<Blog> list = blogMapper.queryBlogIF(map);for (Blog blog : list) {System.out.println(blog);}sqlSession.close();
}
3. choose、when、otherwise
<select id="queryBlogchoose" parameterType="map" resultType="Blog">select * from mybatis.blog<where><choose><when test="title != null">title = #{title}</when><when test="author != null">and author = #{author}</when><otherwise>and views = #{views}</otherwise></choose></where>
</select>
4. trim、where、set
<update id="updateBlog" parameterType="map">update mybatis.blog<set><if test="title != null">title = #{title},</if><if test="author != null">author = #{author}</if></set>where id = #{id}
</update>
trim 可以自定义
SQL片段
有些时候我们有一些公共部分使用sql便签抽取公共部分在使用的地方使用include标签<sql id="if-title-author"><if test="title != null">title = #{title}</if><if test="author != null">and author = #{author}</if>
</sql><select id="queryBlogIF" parameterType="map" resultType="Blog">select * from mybatis.blog<where><include refid="if-title-author"></include></where>
</select>
注意:
最好基于单表
sql里不要存在where标签
5. for-each
<!--ids是传的,#{id}是遍历的-->
<select id="queryBlogForeach" parameterType="map" resultType="Blog">select * from mybatis.blog<where><foreach collection="ids" item="id" open="and ("close=")" separator="or">id=#{id}</foreach></where>
</select>
test
@Test
public void queryBlogForeach(){SqlSession sqlSession = MybatisUtils.getSqlSession();BlogMapper blogMapper = sqlSession.getMapper(BlogMapper.class);Map map = new HashMap();ArrayList<Integer> ids = new ArrayList<Integer>();ids.add(1);ids.add(3);map.put("ids",ids);List<Blog> list = blogMapper.queryBlogForeach(map);for (Blog blog : list) {System.out.println(blog);}sqlSession.close();
}
- 缓存(了解)
- 一级缓存
开启日志
测试一个session中查询两次相同记录。
缓存失效:
映射语句文件中的所有 insert、update 和 delete 语句会刷新缓存。
查询不同的mapper.xml
手动清除缓存
一级缓存默认开启,只在一次sqlseesion中有效
- 二级缓存
开启全局缓存
<setting name="cacheEnabled" value="true"/>
在当前mapper.xml中使用二级缓存
<cache eviction="FIFO"flushInterval="60000"size="512"readOnly="true"/>
test
@Test
public void test(){SqlSession sqlSession = MybatisUtils.getSqlSession();SqlSession sqlSession1 = MybatisUtils.getSqlSession();UserMapper userMapper = sqlSession.getMapper(UserMapper.class);User user = userMapper.queryUserByid(1);System.out.println(user);sqlSession.close();UserMapper userMapper1 = sqlSession1.getMapper(UserMapper.class);User user1 = userMapper1.queryUserByid(1);System.out.println(user1);System.out.println(user==user1);sqlSession1.close();
}
只用cache时加序列化
**实体类**
package com.hou.pojo;import lombok.Data;
import java.io.Serializable;@Data
public class User implements Serializable {private int id;private String name;private String pwd;public User(int id, String name, String pwd) {this.id = id;this.name = name;this.pwd = pwd;}
}
小结:
只有开启了二级缓存,在Mapper下有效
所有数据都会先放在一级缓存
只有当回话提交,或者关闭的时候,才会提交到二级缓存
3. 自定义缓存-ehcache
<!-- https://mvnrepository.com/artifact/org.mybatis.caches/mybatis-ehcache -->
<dependency><groupId>org.mybatis.caches</groupId><artifactId>mybatis-ehcache</artifactId><version>1.2.0</version>
</dependency>
ehcache.xml<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"updateCheck="false"><!--diskStore:为缓存路径,ehcache分为内存和磁盘两级,此属性定义磁盘的缓存位置。参数解释如下:user.home – 用户主目录user.dir – 用户当前工作目录java.io.tmpdir – 默认临时文件路径--><diskStore path="java.io.tmpdir/Tmp_EhCache"/><!--defaultCache:默认缓存策略,当ehcache找不到定义的缓存时,则使用这个缓存策略。只能定义一个。--><!--name:缓存名称。maxElementsInMemory:缓存最大数目maxElementsOnDisk:硬盘最大缓存个数。eternal:对象是否永久有效,一但设置了,timeout将不起作用。overflowToDisk:是否保存到磁盘,当系统当机时timeToIdleSeconds:设置对象在失效前的允许闲置时间(单位:秒)。仅当eternal=false对象不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。timeToLiveSeconds:设置对象在失效前允许存活时间(单位:秒)。最大时间介于创建时间和失效时间之间。仅当eternal=false对象不是永久有效时使用,默认是0.,也就是对象存活时间无穷大。diskPersistent:是否缓存虚拟机重启期数据 Whether the disk store persists between restarts of the Virtual Machine. The default value is false.diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。clearOnFlush:内存数量最大时是否清除。memoryStoreEvictionPolicy:可选策略有:LRU(最近最少使用,默认策略)、FIFO(先进先出)、LFU(最少访问次数)。FIFO,first in first out,这个是大家最熟的,先进先出。LFU, Less Frequently Used,就是上面例子中使用的策略,直白一点就是讲一直以来最少被使用的。如上面所讲,缓存的元素有一个hit属性,hit值最小的将会被清出缓存。LRU,Least Recently Used,最近最少使用的,缓存的元素有一个时间戳,当缓存容量满了,而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存。--><defaultCacheeternal="false"maxElementsInMemory="10000"overflowToDisk="false"diskPersistent="false"timeToIdleSeconds="1800"timeToLiveSeconds="259200"memoryStoreEvictionPolicy="LRU"/><cachename="cloud_user"eternal="false"maxElementsInMemory="5000"overflowToDisk="false"diskPersistent="false"timeToIdleSeconds="1800"timeToLiveSeconds="1800"memoryStoreEvictionPolicy="LRU"/></ehcache>
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- UVA1610 聚会游戏 Party Games
知识点:不详, 这个看不出来是什么知识点,但是我为了分类讨论的时候方便一点,分成三种情况考虑,就是两个字符串的长度关系,可以看出,前面两种是一致的,最后一种最麻烦,要…...
2024/5/8 0:34:07 - mysql 服务启动:发生系统错误 1067
电脑重置系统后,程序和服务都需要重新安装配置,mysql服务安装后启动不起来,提示1067。 最终使用命令 mysqladmin -u root -p shutdown解决。...
2024/4/18 14:52:33 - 树莓派配置ftp和文件共享
ftp服务器搭建 安装vsftpd sudo apt-get install vsftpd启动ftp服务 sudo service vsftpd start编辑配置文件 sudo nano /etc/vsftpd.conf添加内容 anonymous_enableNO # 不允许匿名 local_enableYES # 本地用户可以访问 write_enableYES # 可以进行写操作 local_umask02…...
2024/5/8 8:32:37 - 蓝桥杯--大写
1.题目 2.思路 用字符串的索引做了一遍 做不出来 然后转化为字符数组做的 能解决 具体思路简单 转化为字符数组 然后找到小写字母 变为大写字母 就ok 3.代码 import java.util.Scanner;public class J60 {public static void main(String[] args) {Scanner scan new Scanner(…...
2024/4/17 2:23:03 - 【kuangbin】简单搜索 - 5.找倍数【BFS】
Date:2022.02.04 题意: 给定一个正整数 n,请你找到一个它的非零倍数 m。 要求 m 中只包含数字 0 或 1,并且总位数不超过 100 位。 输入格式 输入包含多组测试数据。 每组数据占一行,包含一个正整数 n。 当输入 n0 时&a…...
2024/4/13 16:34:07 - Houdini保存自定义节点
很多时候我们希望把自己写的Houdini节点记录下来,方便其他工程使用。 首先要选择节点们,点击上图工具栏的纸盒子图标,相当于一个文件夹。 然后我们要保存为HDA格式,看下图 这里随便存地方,但是名字有要求,…...
2024/4/26 12:08:19 - 对象生命周期和GC
一、 辛存者0区别名:from区 辛存者1区别名:to区 from区和to区,他们的位置和名分,不是固定的,每次GC后会交换,GC之后有交换,谁空谁是to eden区和from区,to区比例:8&…...
2024/4/13 16:34:58 - 1_科普—什么是GNU?什么是GPL协议?GNU和Linux是怎么结合在一起的?
文章目录一、GNU二、GPL协议三、GNU和Linux是怎么结合在一起的呢?四、Linux是什么?五、Linux发行版本六、内核一、GNU GNU是在1983年由理查德马修斯托曼提出的一个项目计划,目标是提供一个和Unix100%兼容的自由软件的操作系统。这个系统的…...
2024/4/13 16:35:13 - AUTOSAR LIN STACK Configuration
General 本文主要介绍如何配置LIN Stack , 对于LIN Stack的功能介绍还请参见AUTOSAR LIN Introduction 本文配置内容以VECTOR 工具为基础,不过对于其他工具也是一样的配置方法。 很多朋友可能有疑问认为很多工具都支持自动导入LIN LDF 文件,所有配置都…...
2024/4/18 1:50:07 - 【笔记】Apache Iceberg 原理介绍 | 阿里云 x StarRocks社区联合Meetup
Iceberg是为了解决Hive上云诞生的一个工具 强烈推荐看下这篇学习日志,看下iceberg如何读写,实际如何使用?同时,了解下Hive的架构 Apache Iceberg 学习日志 https://xie.infoq.cn/article/61a82b983ef97c3e05a6e7d82 Hive架构&a…...
2024/5/6 9:21:20 - 分数(蓝桥杯2018省赛第一题)
题目: 1/11/21/41/8… 每项是前一项的一半,如果一共有20项,求这个和是多少,结果用分数表示出来。 类似:3/2,当然,这只是加了前 2 项而已。分子分母要求互质。 思路: 仅题目而言,…...
2024/4/13 16:35:18 - mongodb主从复制
地址规划 关闭27017防火墙端口 更改mongodb主配文件 互相连接查看是否连接成功 定义变量 首先指定 id,id 就是副本集名称,members 里面是一组数组,数组中是各 MongoDB 实例的地址和监听端口 打开admin库,使用 rs.initiat…...
2024/4/20 5:47:20 - 数学知识相关题目
质数 质数的定义:在大于1的整数中,如果只包含1和本身这两个约数就被成为质数或者叫做素数 试除法判定质数 #include <iostream> #include <algorithm>using namespace std; //如果i能被n整除,那么d/i也一定可以被n整除 bool is…...
2024/4/13 16:34:48 - 有效的数独
题目描述: 解题思路: 代码: bool isValidSudoku(vector<vector<char>>& board) {int row[9][10] { 0 };// 哈希表存储每一行的每个数是否出现过,默认初始情况下,每一行每一个数都没有出现过// 整个bo…...
2024/4/18 20:00:50 - 剑指offer61:扑克牌中的顺子
思路:首先排个序,我们只要算出来0的个数,和数字之间的gap就行了,至于什么是gap,比如,23是连续的,所以没有gap,而24中间隔了一个3,简单来说,就是排序后&#x…...
2024/4/13 16:34:58 - JS判断图片链接是否存在
遇到个bug,排查出来原因是图片链接失效,导致后面代码执行错误。 解决这个bug只需要在执行中判断图片链接是否存在即可。 要判断图片链接是否有效,我们首先创建一个Image对象,然后把链接设置在Image对象上,如果能正常加…...
2024/4/13 16:34:53 - go数组与切片【golang笔记】
一、数组 数组是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element),这种类型可以是意的原始类型,比如int、string等,也可以是用户自定义的类型。一个数组包含的元素个数被称为数组的长度。在…...
2024/4/13 16:35:03 - Windows系统通用回调
本文将针对Windows操作系统所提供系统回调操作做逐一分析,以了解每个回调所能达成什么样的功能及效果。比如部分回调只是用于通知,我们只能通过此回调来了解某一类型事件的发生,只能做审计,拦截动作需要通过其它途径实现ÿ…...
2024/4/13 16:35:09 - windows电脑系统优化
主旨 有没有发现,自己的电脑时间一长,是不是就会变得越来越慢,越来越卡,当你去网上查资料的时候,都是说什么磁盘碎片清理,禁止程序自启动什么的,不是说这些方式没用,反而很有用&…...
2024/4/13 16:35:23 - DockerKubernetes ❀ Docker部署Radis案例(含Radis配置文件参数说明与解析,复制即可使用)
文章目录1、Redis相关镜像信息查询2、镜像下载3、部署数据卷3、部署容器1、Redis相关镜像信息查询 [rootlocalhost ~]# docker search redis:3.2 NAME DESCRIPTION STARS OFFICIAL AUTOMATED redis …...
2024/5/6 20:49:58
最新文章
- IDEA指定配置文件启动
You java springboot开发。 使用IDEA。 现在resource目录下有两个配置文件。分别是 application.yml 和 application2.yml 。默认启动是用的application.yml 。现在,我想改为application2.yml ,请问如何操作? ChatGPT 在 Spring Boot 项目中…...
2024/5/8 11:12:19 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - spark on hive
由于spark不存在元数据管理模块,为了能方便地通过sql操作hdfs数据,我们可以通过借助hive的元数据管理模块实现。对于hive来说,核心组件包含两个: sql优化翻译器,翻译sql到mapreduce并提交到yarn执行metastore…...
2024/5/8 2:36:25 - 关于Ansible的模块②
转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 接《关于Ansible的模块 ①-CSDN博客》,继续学习和梳理Ansible的常用文件类模块 1. copy模块 从当前机器上复制文件到…...
2024/5/6 12:48:10 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/8 6:01:22 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/7 9:45:25 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到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/7 14:25:14 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
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/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/6 21:42:42 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含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