- 博客(50)
- 资源 (2)
- 收藏
- 关注
原创 Java中使用renameTo方法导致文件数据缺失
开发的时候发现了es里面数据有缺失,排查了好久,最后怀疑是renameTo方法的时候,在renameTo还没有完成的时候,程序就对生成的文件进行了处理,实际上这个时候文件还没有完全进入目标文件夹这完全是一个偶发的问题,但是,发生的频率并不算太低,基本上每小时12个点的文件,总会有一个点出现这种情况,我并没有做完全的统计,因为总体数据量比较大。于是我在renameTo操作后加了一个线程等待一秒钟的操作,就是为了防止出现这种文件还未转移完全的情况并且我打印了两行日志,看一下被renameTo前后文件是不是
2021-10-18 10:35:21
1159
2
原创 java中实现导出excel文件(封装方法,极简导出)(附excelutil工具类)
导出excel规避导出文件失败与导出文件无法打开问题1.首先在controller层需要获取 HttpServletResponse@ApiOperation(value = "导出", notes = "导出") @RequestMapping(value = "/exportInfo", method = RequestMethod.POST) public void exportOperLogInfo(@RequestBody InfoReq infoReq , HttpServl
2021-10-11 14:23:30
4442
原创 java中使用SFTP发送文件
导入依赖<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.54</version></dependency>或者jar包import com.jcraft.jsch.*上传文件public static void upload(String userna
2021-06-23 13:50:48
1897
原创 Java中使用代理方式发送指定请求http,https(get,post等)
Java中使用代理发送指定请求http,https(get,post等)发送HTTP请求public static String HttpProxy(String url, String param, String proxy, int port) { HttpURLConnection httpConn = null; PrintWriter out = null; OutputStr
2021-06-08 15:15:37
4780
原创 ES常用命令集(kibana中操作)
更新一下用到的所有es的基础操作ES操作命令集基础操作获取版本信息GET /查看节点信息GET _nodes/stats?pretty查看索引模板GET /_template/pm_perf_itemrawinfo创建索引PUT /索引名{ "settings": { "index.max_result_window": "10000" }, "mappings": { "properties": { "字段1": { "
2021-06-07 16:45:54
726
原创 java实现从文件中获取json,并转存到excel中
昨天测试让帮忙处理一下接口返回数据,数据量太大,处理费劲????主要需求:接口返回的数据是个长json,需要把其中的某些字段提取出来存到excel需要提取的字段与数据:ID,NAME,NM_CODE,SPEC_ID思路:1.因为json过长,所以就先存到txt中,用fileReader和StringBuffer获取整个json字符串2.获取到的字符串通过fastjson转换为List<Map>格式3.把转换后的list转换成excel工作簿,通过fileOutputStream写到
2021-02-02 09:57:42
1548
5
原创 字符串中unicode转中文
private static String asciiToNative ( String asciicode ){ String[] asciis = asciicode.split ("\\\\u"); String nativeValue = asciis[0]; try { for ( int i = 1; i < asciis.length; i++ ) { String code = a.
2020-11-05 20:50:59
661
原创 spring cloud中将feign调用的请求header、返回header(详细日志)打印出来
在spring cloud的feign服务间调用时,有时候有一些想象不到的问题,就需要看一下具体的请求内容1、创建Feign配置文件@Configurationpublic class FeignConfiguration { @Bean Logger.Level feignLoggerLevel() { return Logger.Level.FULL; //设置返回日志登记 }}2、指定FeignClient要读取的配置@FeignClient(
2020-11-05 20:47:34
3992
1
转载 Windows自带Java内存查看工具以及命令
jinfo:可以输出并修改运行时的java 进程的opts。jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。jmap:打印出某个java进程(使用pid)内存内的所有’对象’的情况(如:产生那些对象,及其数量)。jconsole:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。命令详
2020-08-27 15:18:31
2240
原创 已经使用了bluk批量插入数据的时候怎么继续提高es插入数据的效率的几个方案
我在这里总结了几个较为实际的,在已经使用了bluk批量插入数据的时候想要继续提高es插入数据的效率的几个方案如果你的批量插入还没有使用到bluk,你可以先使用bluk,看看速度有没有满足你的需要,再考虑一下的方案,当然也可以一步到位。1.使用多线程多线程并发写入,可以减少每次底层磁盘fsync的次数和开销,从而提高es集群写入的吞吐量。2.更改refresh参数在es里面,refresh参数代表着它的刷新频率,刷新频率就是意味着数据在多长的时间里面会刷新,适当的增加刷新时间可以有效的提高es写入的
2020-08-19 18:10:48
1101
原创 解决使用delete_by_query删除数据时产生timeout问题(效率优化)
使用delete_by_query的时候发现了一个问题,就是删除效率太低。删除210000的数据量的时候大概要用50多秒的时间,而这才是我工程中一个小时的数据量。删除一天的数据量就要20多分钟,这样的效率是没办法接受的。然后寻找调优策略,发现es的官方API中是有一下两个参数:1.scroll_size这个参数是执行删除的时候,每次每个线程会查询的数据量,然后进行删除。默认是100,就是说每个线程每次都会查询出100条数据然后再删除。2.slices这个就相当于开启的线程数,同时会有多少个线程执
2020-08-17 17:40:11
4810
原创 IDEA里面代码前,行号后有一个对勾的添加与删除
就是这样子的对勾这个是把本行代码添加保存到书签添加和删除可以用 F11 快捷键也可以使用 Ctrl+左键 添加和删除注:可以用 Ctrl+左键 打开书签
2020-08-17 11:04:38
2189
原创 java中使用restTemplate.postForObject()方法向es发送请求
restTemplate.postForObject() 方法本质上是将对象放入HttpEntity中,然后将对象POST给一个url。当我想根据时间范围批量删除一些es中的数据,用到了_delete_by_query的方法,在kibana上面写好测试得没问题了,然后我想把kibana上面整个语句直接发送到es上面。这是我在kibana上面写的POST center_data/_delete_by_query{"query": { "bool":{ "must":{
2020-08-14 09:37:49
2807
转载 es中使用bulk进行批量数据操作与相关内容
bulk API可以帮助我们同时完成执行多个请求,比如:create,index, update以及delete。当你在处理类似于log等海量数据的时候,你就可以一下处理成百上千的请求,这个操作将会极大提高效率。bulk的请求主体的格式稍微有些不同:{ action: { metadata }}\n{ request body }\n{ action: { metadata }}\n{ request body }\n...这种格式就类似于一个用"\n"字符来连接
2020-08-06 14:57:14
2434
转载 nohup.out相关介绍,作用,使用,清空。
1.nohup.out的由来及作用用途:LINUX命令用法,不挂断地运行命令。 语法:nohup Command [ Arg ... ] [ & ] 描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。 例子: nohup ./startWeblogic.sh
2020-08-06 14:19:10
22318
原创 Java中时间的一些工具方法(获取指定年月第一天、获取指定月份的最后一天、获取一天中间隔30分钟的所有时间点、输出从当前时间获取整15分的时间)
一、获取指定年月的第一天 /** * 获取指定年月的第一天 * @return */ public static String getFirstDayOfMonth(String yearMonth) { int year = Integer.parseInt(yearMonth.substring(0,4)); //年 int month = Integer.parseInt(yearMonth.substring(5,6));
2020-08-03 16:56:04
1123
原创 Java中的正则表达式(Pattern、Matcher、PatternSyntaxException)附常见正则表达式
Java中有关正则表达式的包是java.util.regex其中主要包含了这三个类Pattern、Matcher、PatternSyntaxException其中Pattern类:没有构造方法,需要调用其静态编译方法来创建他的对象,该方法可以接受正则表达式作为参数。Matcher类:同样没有构造方法,需要调用Pattern的matcher方法来创建对象。PatternSyntaxException类:是一个异常类,表示正则表达式模式中的语法错误。附:常见正则表达式匹配中文字符:System.
2020-07-28 14:21:26
471
原创 解决Java导出csv文件数据中包含逗号导致乱行的问题
最近要做csv文件的导出,因为csv文件是用逗号隔开的文本文件,用excel打开csv文件的时候会按逗号分单元格。导致导出来的数据有的包含逗号的被隔开在多个单元格里面。解决方式:把数据中的逗号加上双引号,就可以避免被解析,可以防止上面的问题出现。 String value =json.getString(title); if(json.getString(title).contains(",")) { value = "\""+value+"\"";
2020-07-23 15:35:20
7952
1
原创 java实现导出excel的时候,每页规定数据量,分页,按数据命名页名
最近任务是完成要求:把需要导出的数据导出到excel中,要求每页按传入的参数规定数据量,便于后期更改。同时分页要实现页名是当前页数据的开始到结束。话不多说,实现代码:首先是参数的传入 @Value("${records:40}") private int records; //导出时每页数据最大数量然后下面是生成excel文件 private void DeviceExportXlsx(String exportType, List<JSONObject> ex
2020-07-23 15:26:41
1273
原创 windows10安装redis与可视化界面下载(详解)
Redis的安装1.下载官方redis下载地址2.安装1、直接解压到目录2、然后在解压的目录下打开命令窗口3、输入redis-server redis.windows.conf4、会有一个redis服务启动的页面,还有端口号6379此时就证明没问题3.把Redis部署为Windows服务1、关闭上一个命令窗口2、在解压目录打开新的命令窗口3、输入redis-server --service-install redis.windows.conf此时这样就可以了4.测试在解压目录
2020-07-17 10:09:34
1199
原创 将已存在的jar包导入maven仓库
今天需要把一个已经打好的jar包导入到maven仓库中,就想着记录一下1.准备jar包把jar包准备好,放在一个位置例如D:\maven\jar2.cmd命令窗口打开命令窗口mvn install:install-file -Dfile=包的位置 -DgroupId=groupId名 -DartifactId=artifactId -Dversion=版本号 -Dpackaging=jar3.解释-Dfile=jar包所在的位置-DgroupId=jar包对应的groupId名-Dart
2020-07-16 15:44:24
256
原创 centOS7网络连接图标消失,无法上网,无法连接Xshell问题
今天打开虚拟机,连接Xshell,发现连接不上于是我在主机上ping虚拟机地址,发现ping不通然后我打开虚拟机用 ifconfig 看一下地址是不是变了但是发现本该出现的这个ens33不见了然后我发现右上角本该出现的网络连接的图标也不见了用了很长时间,看了各种帖子发现还是不信突然发现了一个老兄的帖子是不是NetworkManager出错了把NetworkManager改名让系统重...
2020-03-20 17:35:37
782
2
原创 mybatis的缓存机制
在mybatis中 分为一级缓存 二级缓存一级缓存 sqlseesion级别的缓存二级缓存 namespace级别的缓存一级缓存是始终存在的验证一级缓存的存在@Testpublic void deptCollectionEmpsTest(){ SqlSession session = MBUtils.getSession(); DeptMapper mapper...
2020-03-09 21:25:55
90
原创 mybatis的加载(延时加载和懒加载)
1 延迟加载<!-- 设置字段名来作为javabean的属性--> <setting name="useColumnLabel" value="true"/><!-- 开启延迟加载--> <setting name="lazyLoadingEnabled" value="true">&l...
2020-03-09 21:19:09
534
原创 mybatis动态sql
多条件查询if/*多条件查询 String ename,String job, double sal */public List<Emp> selectEmpByCondition1(Map<String,Object> searchMap);public List<Emp> selectEmpByCondition2(String ename...
2020-03-09 21:03:29
225
原创 Mapper动态代理解析
dao的实现类其实并没有做什么实质性的工作,仅仅是通过sqlSession的相关API定位到StudentMapper映射文件中的ID中的sql语句,其实真正操作DB的是mapper中的sql。所以mybatis就抛开了dao层的实现类,可以直接定位到mapper中的sql!然后执行sql对DB进行操作!这种对dao的实现方式我们称为Mapper的动态代理方式!Mapper接口开发需要遵循以下规...
2020-03-09 20:56:59
207
原创 mybatis四种传参方式
通过对象传参<insert id="insertEmp" parameterType="org.zhang.pojo.Emp"> insert into emp (ename,job,hiredate,sal) values (#{ename},#{job},#{hiredate},#{sal}); <selectKey resultType="int" key...
2020-03-09 20:54:56
2469
原创 mybatis中日志的使用
引入jar包,添加配置文件 @Test public void testLog(){// 1获取日志记录器 Logger logger = Logger.getLogger(EmpTest.class); //设置日志的级别 logger.setLevel(WARN); logger.warn("这是...
2020-03-09 20:49:45
178
原创 mybatis相关配置详解
属性(properties)数据库连接属性的配置<properties resource="db.properties">设置(settings) <settings ><!-- 设置字段名来作为javabean的属性--> <setting name="useColumnLabel" value="true...
2020-03-09 20:43:21
164
原创 基于注解的mybatis实例创建
上篇文章写了mybatis传统方式创建,这篇文章就说一下基于注解的创建1.以上篇文章为基础,删除EmpDao.xml2.修改mybatis的主配置文件 mybatis-config.xml<mappers> <mapper class="org.zhang.dao.EmpDao"/></mappers>3.使用注解public interface...
2020-03-09 20:25:14
119
原创 mybatis与传统JDBC的比较
1.MVC设计思想mvc的思想主要围绕在高内聚,低耦合上而mybatis框架就是一个可以在分层的情况下,解决数据的持久化问题的框架。2.JDBC操作步骤加载驱动获取连接创建statement/prepareStatement对象编写SQL(mybatis的核心关注点 其他步骤都由myabtis完成)执行sql结果集的处理释放连接 public static void ma...
2020-03-09 20:05:13
1388
原创 mybatis实例创建步骤
1.创建Java工程2.创建libs目录 来存放所需的jar包然后将jar包添加到classpath中3.在数据库中创建测试表本步骤忽略,需要表的自己参照实体类建表即可4.建立实体类public class Emp { private Integer empno; private String ename; private String job; ...
2020-03-09 19:53:31
588
原创 JDBC连接数据库的五种方式
方式一 public void connectionTest() throws SQLException { //定义URL String url = "jdbc:mysql://localhost:3306/test"; //创建driver Driver driver = new com.mysql.jdbc. Driver(); //通过驱动来获取链接 Proper...
2019-12-28 19:40:15
196
原创 JDBC使用步骤
JDBC的使用步骤:1 获取数据库的驱动包2 将数据库的驱动包导入到项目中(类路径下)3 配置连接属性 url:jdbc:mysql://localhost:3306/databaseName driver:com.mysql.jdbc.Driver/oracle.jdbc.dirver.OracleDriver user:username password:...
2019-12-24 10:49:39
209
原创 JDBC实现图片的上传与读取
上传图片 public void GetConnectionTest() throws SQLException, FileNotFoundException { //定义url String url = "jdbc:mysql://localhost:3306/test?serverTimezone=GMT"; //创建Driver驱动 Driver driver = new ...
2019-12-24 10:40:10
951
原创 安装VMware后在主机找不到VMnet1和VMnet8问题(巨详细已解决)
安装完VMware后没有VMnet1和VMnet8在主机里面找不到VMnet1和VMnet8,在网上找了许多办法,该开的服务也开了,发现还是不行,索性,重新装一下装之前觉得麻烦,一直想找个办法,因为虚拟机上的东西很多,还要重新来。现在告诉大家,不用,只需要重新装一下VMware就行,下面说一下具体的步骤:1、首先把防火墙关了(以防万一,我并没有测试不关防火墙行不行),不知道的自行百度就行,...
2019-12-11 22:05:15
12343
16
原创 Java-Socket实现TCP通讯
实现客户端与服务端的双向通讯服务端public class Server { public static void main(String[] args) throws IOException { System.out.println("服务端启动......."); Scanner sc = new Scanner(System.in); // 1 创建服务端Socket...
2019-12-07 10:58:27
155
原创 ArrayList/LinkedList/Vector的异同——面试题
ArrayList和LinkedList的异同二者都线程不安全,相对线程安全的Vector,执行效率高。此外, ArrayList是实现了基于动态数组的数据结构, LinkedList基于链表的数据结构。对于随机访问get和set, ArrayList觉得优于LinkedList,因为LinkedList要移动指针。对于新增和删除操作add(特指插入)和remove, LinkedList...
2019-11-24 11:19:03
254
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人