-
作为开发人员,需要测试各种各样的环境,安装虚拟机是必不可少的。安装虚拟机后,与主机IP互通是一个很关键的问题,设置也稍有繁琐。下面详细介绍设置过程。
虚拟网络编辑器点击WMware的编辑菜单,选择虚拟网络编辑器。
然后点击更改设置。
选中VMnet8 NAT模式,勾选使用本地 DHCP 服务将 IP 地址分配给虚拟机(D)
...
-
HTTP Session特点
有效期较短,一般为30分钟。刷新后,自动续期。有rememberMe功能。正常的session过期后,变成rememberMe登录状态,操作敏感数据时,需要再次登录以获得正常的session状态。
JWT特点
一个长期的RefreshToken,可以有1年的有效期。通过RefreshToken获取AccessToken,有效期一般为10分钟。每5分钟重新获...
-
很多时候我们需要判断某些数据是否存在,比如用户名是否存在,邮箱是否存在。
这是通常的做法是使用count(*),然后判断数据的条数,大于0则代表数据存在。
select (*) from ujcms_user t where t.username = ?
这种方式,数据库需要查询所有符合条件的数据后,才返回结果。如果是一个很大的表,则可能耗费较长时间。
...
-
SQL界一直以来都流传这样一种说法,不要用in,要用exists代替in,in的性能很低。甚至在程序中使用了in还会被同行嫌弃,认为在任何时候exists的性能都比in高。
小数据量这几个用起来肯定没有太多区别,而要造几百万的数据进行测试,毕竟稍显麻烦。既然所有的大神都这么说,那么就这么信吧。
现在主流的观点认为,外表比...
-
JSON字段在不规则数据结构中有重要作用,典型的如自定义字段、自定义表单等。
达梦数据库达梦8的JSON数据以字符串方式存储,即varchar2,最大长度为8000字节;或clob,最大长度为100G-1字节。
一般建议加上IS JSON约束进行检查:
c2 varchar2(100) CHECK (c2 IS JSON(STRICT)) -- 严格模式
c3 varchar2(100) CHECK (c...
-
Spring提供了非常方便使用的RestTemplate,用于访问http/https资源。但在开发调试过程中,我们希望能够看到相关的日志信息。
开启日志修改application.properties文件,加入以下配置:
logging.level.org.springframework.web.client.RestTemplate=DEBUG
可以看到类似以下的日志信息:
o.s.w.c.RestTemplate - HTTP P...
-
大批量插入、更新数据相当消耗性能,如果采用传统的方式,一条一个事务的插入、更新,速度会慢到让人无法接受。
JDBC批量处理使用JDBC的批量处理功能,可以减少事务的性能消耗。MyBatis Plus的批量操作默认使用这种方式。
其原理是开启JDBC批量处理,并且每1000条SQL语句执行一次sqlSession.flushStatements()。
对于...
-
SpringBoot提供了非常方便使用的定时任务功能。同时也支持Quartz。
开启任务调度器@Configuration
@EnableScheduling
public class SchedulerConfig {
}
使用定时任务// 每5秒执行一次
@Scheduled(fixedDelay = 5000)
public void doSomething() {
// something that should run periodically
}
// cron...
-
MyBatis有一级缓存和二级缓存。一级缓存默认开启,二级缓存默认关闭。
一级缓存基于SqlSession,只要是同一个SqlSession,执行相同的SQL语句会返回缓存中的结果,从而减少数据库访问次数。需要注意的是,如果使用了延迟加载,则会出现无法使用一级缓存的情况,即使查询同一个对象也会多次查库。为避免这种情况,要谨慎使...
-
常用格式
APNG。后缀:.apng,MIME type:image/apng。动态图,比gif性能好,但不如webpge格式。过渡格式。Java不支持。浏览器支持: Chrome, Edge, Firefox, Opera, Safari。AVIF。后缀:.avif,MIME type:image/avif。静态图、动态图,表现都很好。不够流行,浏览器支持不好。Java不支持。浏览器支持: Chrome, Opera, ...