在项目开发过程导出Excel为常用功能,之前的一篇Java导出超大Excel文件,防止内存溢出已经解决了Excel写入层面时的内存问题,但数据库查询层面,仍存在由于默认的mybatis查询是将所有数据都查询到本地内存,因此仍有可能会导致内存溢出,因此本文再详细介绍记录通过mybatis的ResultHander进行流式查询读取来完全解决excel的大量数据导出内存溢出问题。
View DetailsMyBatis是一款非常流行的Java ORM框架,它支持通过XML或注解的方式进行SQL语句的编写和查询。MyBatis也支持数据流式查询,可以通过ResultSetHandler和StreamingStatementHandler实现数据流式输出。
View Details相信小伙伴们工作当中肯定会经常遇到导出数据的需求,做这个导出需求的话相信大家肯定很多人用easypoi工具包,这个工具包用起来是真的方便,爽。但是如果数据量大,产品又要你导出很多数据,这时候就不爽了,因为如果数据量大的话,服务器配置又不是很高,那么很容易就把服务器导挂了。今天就教大家一招(有能力的小伙伴也可以自行研究使用其它方式优化导出),使用mybatis/mybatis-plus中的流式查询结合阿里的easyexcel做到一边查询一边写入流的方式优化大量数据导出,这样做写入流后的数据内存就可以释放出来,从而降低jvm的内存使用率。
View Details使用4台虚拟机,其中一台作为Nginx代理服务器,该服务器需要配置两块网卡,IP地址分别为192.168.88.5和192.168.99.5,两台SSH服务器IP地址分别为192.168.99.100和192.168.99.200。客户端测试主机IP地址为192.168.88.10。
View Details@Nullable可以用在方法、属性、参数上。对应的意思分别如下:
方法:表示返回值可以是空
属性:表示属性值可以是空
参数:表示参数值可以是空
【一】从第3000行开始,显示1000行。即显示3000~3999行 cat filename | tail -n +3000 | head -n 1000 【二】显示1000行到3000行 cat filename| head -n 3000 | tail -n +1000 *注意两种方法的顺序 分解: tail -n 1000:显示最后1000行 tail -n +1000:从1000行开始显示,显示1000行以后的 head -n 1000:显示前面1000行 【三】用sed命令 sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行 from:https://www.cnblogs.com/lelin/p/12833348.html
View Detailsupstream linuxidc {
server 10.0.6.108:7080;
server 10.0.0.85:8980;
}
location / {
root html;
index index.html index.htm;
proxy_pass http://linuxidc;
}
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 |
/// <summary> /// SHA256加密 /// </summary> /// <param name="data"></param> /// <returns></returns> public string SHA256EncryptString(string data) { byte[] bytes = Encoding.UTF8.GetBytes(data); byte[] hash = SHA256Managed.Create().ComputeHash(bytes); StringBuilder builder = new StringBuilder(); for (int i = 0; i < hash.Length; i++) { builder.Append(hash[i].ToString("x2")); } return builder.ToString(); } /// <summary> /// SHA256加密 /// </summary> /// <param name="StrIn">待加密字符串</param> /// <returns>加密数组</returns> public Byte[] SHA256EncryptByte(string StrIn) { var sha256 = new SHA256Managed(); var Asc = new ASCIIEncoding(); var tmpByte = Asc.GetBytes(StrIn); var EncryptBytes = sha256.ComputeHash(tmpByte); sha256.Clear(); return EncryptBytes; } |
from:https://www.cnblogs.com/webttt/p/12762318.html
View Details