自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Springboot整合c3p0(mysql,oracle),mybatis开发web项目

创建项目登录网址: http://start.spring.io/    进行简单的设置,自动生成Springboot项目添加其他依赖 <!--lombok约束--> <dependency> <groupId>org.projectlombok</groupId> <artifactId&g...

2018-07-26 14:23:52 3106

原创 通用mapper主键增长策略

数据库支持自增 常见的如 MySql,SqlServer//建议直接指定数据库@Id@KeySql(dialect = IdentityDialect.MYSQL)private Integer id;数据库不支持自增常见的如 oracle@Id@KeySql(sql = "select SEQ_XXX.nextval from dual", order = ORDER.BEFORE)private Integer id;注意执行完...

2020-07-15 17:19:36 67

原创 oracle update or insert

oracle提供MERGE INTO关键字,实现不存在插入存在则修改的功能举个例子:<update id="insertOrUpdate" parameterType="com.mlsama.admin.entities.ParamConfig"> MERGE INTO T_DAP_PARAMETER_CONFIG t1 USING (SELECT #{paramName} as PARAM_KEY,#{paramValue} as PARAM_VALUE FROM d

2020-06-11 16:30:59 67

原创 oracle:插入记录返回其id

在mapper.xml对应的方法中使用selectKey 标签把生成的序列保存到参数某个字段:<insert id="add" parameterType="com.mlsama.admin.entities.request.AddResourceReq"> <selectKey keyProperty="id" order="BEFORE" resultType="long"> select SEQ_DAP_RESOURCE.nextval from

2020-06-11 16:13:49 85

原创 删除远程git服务器上的文件

有时候不小心把一些不需要的文件或者文件夹(如idea的.iml文件, target文件夹)传到了git服务器上,可以使用git命令进行删除:git -rm -r --cached dirName | fileNamegit commit -m '删除XXX'git push依次执行这几个命令,dirName | fileName 代表的是要删除文件夹名称和文件名称需要注意的是: 在实际中发现 dirName | fileName 不支持路径,只能是最后一级如: git上的文件结构:

2020-06-01 15:10:23 150

原创 Error getting generated key or setting result to parameter object, cause: Error

插入数据到oracle数据库报错:org.springframework.jdbc.UncategorizedSQLException: Error getting generated key or setting result to parameter object. Cause: java.sql.SQLException: Error; uncategorized SQLException; SQL state [null]; error code [0]; Error; nested exce

2020-05-22 10:44:35 86

原创 Linux无法联网无gcc怎么安装软件?

以前在Linux上一直使用yum安装软件,非常舒服.最近老大搞了个虚拟机,叫我装下环境,我很开心地接受,不就是yum安装,再配下环境变量吗!结果这台虚拟机不允许联网,我懵逼了.没办法,只能去下tar包老老实实手动安装,结果编译的时候报错说没有编译器,然后我就傻傻去下了个gcc.tar,下完就傻了,装这个不也要编译器吗!百度一波,发现了rpm这种好东西!tar包: 跟zip相似,是一种传输格式.tar包是软件源码的压缩包,安装时需要编译再进行安装,编写需要编译器,如:gccrpm包: Redh

2020-05-08 17:51:06 147

原创 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingExce

使用axios的put发送请求到后台,报这个错误,检查了后端的代码,感觉都挺正常的,前端传来的对象数据也拿到.安照异常的字面意思是mybatis绑定属性时找不到对应的属性,又看了下mapper接口中的参数类型,也很正常.各种尝试后发现是mapper接口参数的@Param()搞的鬼!错误代码如下:int update(@Param("req")UpdateImportResultReq r...

2020-05-07 17:51:44 43

原创 springboot Unable to start embedded container; nested exception is java.lang.NullPointerException

springboot通过使用druid-spring-boot-starter整合Druid后一直报错,问题是之前使用druid依赖整合是没问题的!先报:org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is java.l...

2020-04-14 10:33:54 38

原创 记一次springboot + Druid + mybatis的大坑

听说Druid连接池很不错,性能好还提供监控,决定在项目中使用.网上查了下使用方法,感觉还挺简单的,一通复制粘贴,监控页面成功打开,我还以为成功了,接着整合mybatis,出事了,先报init datasource error, url: jdbc:oracle:thin:@127.0.0.1:1521:orcljava.sql.SQLException: 调用中无效的参数我以为是路径写...

2020-04-10 10:25:51 142

原创 sqlldr工具的介绍,编写工具类实现Windows和Linux系统的数据导入

Sqlldr使用 Sqlldr是oracle为了导入大量数据而提供的一个工具。它可以轻松导入百万级的数据。命令格式sqlldr userName/password@dbName control=controlFilePath data=dataFilePath log=logFilePath bad=badFilePath direct=true rows=100160...

2020-04-09 10:40:52 82 1

原创 plsql无法连接oracle,报错:ORA-12514

为了本地测试方便,我在本机安装了oracle,几个月前plsql突然无法连接oracle,报错:ORA-12514,在网上找了各种方法都无法解决,最后只能忍辱卸载oracle重新安装,一切又相安无事. 昨天早上,当我想查看测试数据时,悲剧重新,真的烦人.我又去网上一通捣鼓,还是不行,一个坑不能死两次,我决定搞定它.百度,谷歌一直查,无数种尝试,晚上10点,迎来曙光. ...

2020-04-08 17:31:36 385

原创 第一次使用bat脚本遇到的坑:闪退

在Windows服务器上部署个小功能,运维要求提供bat脚本启动项目,百度一波,写了个最简单的bat脚本,在本地测试都没什么问题,在服务器上双击脚本,闪退,一脸懵逼.网上搜索,各种改,折腾一个上午,还是不行.下午有同事提示在cmd命令行输启动命令,看看报什么错.原来是jdk版本跟服务器的版本不一致导致的!更换jdk后,正常启动.原来bat脚本如果执行失败不会提示错误信息,而是闪退.如在执行ba...

2019-12-25 15:55:11 475

原创 WatchService:文件新增,修改的实时监控

前言最近接到个简单的需求:实时监控文件夹,把新增的文件传到对应的ftp,要求监控的文件夹可实时配置,使用jline提供人机交互接口进行文件的重传.略一思考,WatchService可以实现实时监控需求.WatchService是jdk1.7提供的类,基于操作系统的文件系统监控器,实现对文件新增,修改,删除的监控功能,详细的说明可以自行百度.思路1.系统启动,加载配置文件,为每个配置...

2019-12-25 15:22:53 334

原创 解决cenos7无法上网的问题

安装完cenos7后无法上网 可能是网络配置文件的ONBOOT=NO.查看网络配置文件 cd /etc/sysconfig/network-scriptsll,查看网络配置文件的名称,第一个就是查看内容, vi ifcfg-ens33如果是no,改为yes重启网卡服务service network restart测试...

2019-10-25 17:10:34 146

原创 使用oracle客户端和plsql连接远程oracle数据库

客户端和plsql已经上传,都是绿色版的,无需安装,解压即可。配置:客户端:1.根据电脑配置解压对应的客户端。2.创建tnsnames.ora文件。 修改解压路径下/network/admin/tnsnames.ora文件,文件内容是连接数据库的信息,比如: orcl= (DESCRIPTION= ...

2019-10-18 10:37:51 184

原创 oracle的伪列rownum与rowid

伪列 不是表定义的列,oracle为每张表分配的列。rownum oracle在获取到查询结果后添加的一列。它的值从1开始。eg: SELECT rownum,t.* FROM T_EXCEPTION_TRADE t注意:rownum是在获取到查询结果后加上去的列,如果用作对本身结果的限定条件,则查询结果为空eg: SELECT rownu...

2019-08-12 15:04:17 60

原创 搜狗输入法9.0.3在idea2017.3中文不跟随光标问题的解决方法

增加一个环境变量,idea是64位的名称为IDEA_JDK_64,32位的为IDEA_JDK,值为jdk根目录。重启idea即可。

2019-07-30 16:03:50 139

原创 idea包名报错,java文件夹成了一级包名

以前项目都好好的,今天打开idea,发现所有类的包名都报错,觉得莫名其妙,重启了几次idea都没有解决问题,百度一下,好像没人遇到过这个问题,所以记录下。现象: Java文件夹作为了一级的包名导致所有类的包名报错。解决方法: 这是因为idea目录结构混乱导致的,这里把src文件夹作为了资源根目录,真正的资源根目录应该是java文件夹。点击file,...

2019-07-21 01:09:29 1477

原创 jxls导出excel,使用sum函数无法求和的问题

最近在使用jxls导出excel报表,使用sum()函数进行求和时,结果显示为0,很郁闷。一番捣鼓,发现数值列的值有问题:把鼠标放到上面,提示:此单元格中的数字为文本格式或者前面有撇号。把数值的单元格格式改为数值,求和单元格显示求和结果。真相大白!原来是这些数字的格式为文本,所以无法求和。解决方法其实也很简单,把模板中对应的表达式*1转为数值格式即可。如: ${item.re...

2019-05-05 10:56:42 2452 1

原创 根据相对路径获取绝对路径

在处理文件时,需要先获取文件的路径,这个路径一般取绝对路径,然而,大多时候我们只知道这个文件的相对项目的路径,这时候需要根据文件的相对路径获取绝对路径。//只能接收相对路径,相对路径字符串最前不可以有/String filePath = this.getClass().getClassLoader().getResource("templates/excelTemplate/refundA...

2019-04-30 17:16:47 1162

原创 使用jxls导出excel报错:Your InputStream was neither an OLE2 stream, nor an OOXML stream

最近接到导出excel报表的需求,本来想用poi的,听说jxls更简单快捷,便想试试。一开始demo写的都挺顺利的,把excel模板放到项目的resources下面后,出事了,一直报错: java.lang.IllegalArgumentException: Your InputStream was neither an OLE2 stream, nor an OOXML st...

2019-04-30 15:14:44 5443

原创 Oracle的number类型的字段值显示科学计数值

最近做需求建了几张表,主键都是number类型的,在sqlplus中查询的时候,发现主键值进行了科学计数的显示,这看起来非常的奇怪。网上找了下方法,记录如下: 原因: SQLPlus在显示number类型时,小于等于10位的精度显示的是很直观的形式,大于10位精度的则显示为科学计数的形式。 解决方法: 将number转成char类型,设置一...

2019-04-25 15:22:27 618

原创 idea一个工作空间打开多个项目

很多时候,多个项目之间并不是parent和module的关系,如果不是parent和module的关系,idea一个工作空间只能打开一个项目,这样的话,如果有多个项目,来回切换视图让人烦不胜烦。下面介绍个在idea一个工作空间打开多个项目的方法。 1.首先打开一个项目 2.点击项目右边的Maven Project 3.找到要打开的另一个...

2019-04-25 15:12:39 2757

原创 idea自动导包和删除多余的包

Settings→Editor→General→Auto Import然后勾选Add unambiguous imports on the fly以及Optimize imports on the fly结果如下:

2019-04-02 20:41:30 3187

原创 在一台虚拟机上做kafka集群,使用Java代码发,接消息,kafka tool的使用

1.Kafkakafka是一个开源的分布式消息系统,由linkedin使用scala编写,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。具有高水平扩展和高吞吐量。1.1 kafka的设计目标     1.高吞吐量。    2.数据磁盘持久化:消息不在内存中cache,直接写入到磁盘,充分利用磁盘的顺序读写性能。   ...

2019-01-18 15:00:24 2963 1

原创 在一台虚拟机上做zookeeper集群

1. Zookeeper       ZooKeeper 是一个开源的分布式协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。1.1 zookeeper的由来       Zookeeper 最早起源于雅虎研究院的一个研究小组。在当时,研究人员发现,在雅虎内部很多大型系统基本都需要依赖一个类似的系统来进行分布式协调,但是这些系统往往都存在分布...

2019-01-18 14:30:53 1641

原创 Springboot对WebSocket的简单demo

1 概述        WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信:允许服务器主动发送信息给客户端。 WebSocket协议跟http协议并没有太多的关系,不过使用了http的握手机制.       http协议是应用很广的网络协议,它在通信前必须经过3次握手,它又分为短链接,长链接.短链接是每次请求都要三次握手才能发送自己的信息。即每一个req...

2018-11-21 17:53:03 1818 1

原创 线程池实战: 通过渠道接口标识异步执行对应接口

1 pom.xml创建Springboot项目,在pom.xml中加入如下依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan...

2018-11-02 17:51:08 141

原创 线程池技术介绍

1 概述         创建一个线程非常简便,但是如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。       为了解决这样的问题,Java提出了线程池这个解决方法.所谓的线程池其实就是一个存放线程的容器.调用线程池去执行并发任务时,从线程池中取出线程去执行任务,每个线程 执行完任务,并不...

2018-11-02 10:15:01 724

原创 springbatch整合Quartz框架

使用Springboot+Springbatch+Quartz每隔3秒读取一次文件4.2.1概述Spring batch提供了强大的批处理功能,比如ItemReader、ItemProcess、ItemWriter,还有Tasklet,但定时功能不够强大,而Quartz提供了通过JobDetail、Trigger、SchedulerFactory提供了强大的定时器功能,但批处理功能不够强大...

2018-11-01 17:24:30 1690

原创 Springbatch从文件读取数据处理后写入数据库

使用Springboot  + mybatis框架4.1.1 pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta...

2018-11-01 17:14:43 4192 1

原创 公钥,私钥,对称密钥

 概述        对于Java的加密,一直都是很模糊,今天简单梳理下公钥,私钥,对称密钥等相关的理念和关联.公钥,私钥-->非对称加密         公钥和私钥成对出现,顾名思义,公钥就是公开的密钥,是给通信的其他方的,私钥则是只有你自己知道的.通信时,一般而言,公钥用于敏感信息的加密,私钥用于签名.对应的另一方,则使用他自己的私钥进行数据解密,使用你提供的公钥进行验签.这...

2018-11-01 16:55:41 1775

原创 split("\\|")与split("\\|",-1)的区别

今天处理文件时,使用split("\\|")切割每行数据,发现数据如下时,取最后一个字段报数组越界异常:                                         a|b|c||     //arr[3]会报异常百度了下发现:如果字符串最后分隔符里的字段为空,使用split("\\|")进行切割时,最后的空字段不会切割,这时字符串a|b|c||切割出来的数组大小为3....

2018-10-12 15:23:38 3962

原创 Springboot Caused by: org.xml.sax.SAXParseException: 文档根元素 "beans" 必须匹配 DOCTYPE 根 "null"。

今天在做Springbatch读取xml文件时,运行启动类时,报:Caused by: org.xml.sax.SAXParseException: 文档根元素 "beans" 必须匹配 DOCTYPE 根 "null"。找了好久原因,最后发现是配置文件名称的问题.   Springboot的配置文件是不允许命名为:  application.xml,否则就会出现这个错误....

2018-09-27 14:33:55 1658

原创 BufferedWriter写入文件注意事项

对于文本文件,使用BufferedReader,BufferedWriter进行读写效率更高,原因是使用了缓存区,其工作流程是:先把文本内容读写到缓存区,缓存区满了,自动把缓存区中的内容读写到文件.    问题:             如果读写完的同时缓冲区刚好装满,那么缓冲区会把里面的数据朝目标文件自动进行读或写,这种时候你直接调用close()方法关闭流是不会出现问题 , 但是如果文...

2018-09-26 13:46:12 6640

原创 解决乱码:自定义io流读写编码,读写不同编码的文件

概述      利用io流读写文件时,默认的流编码都是UTF-8,d但是如果流的编码和文件的编码不一样,得到的内容是乱码.所幸的是字节流可以在转为String使用new String(byte[],charset)设置编码.字符流InputStreamReader,OutputStreamWriter这两个类的构造方法提供了设置流编码的方法.下面举个简单的例子,其他情况可以举一反三.读...

2018-09-20 13:56:06 494

原创 利用idea连接数据库(MySQL,oracle)

概述       开发中,如果不想在数据库客户端与idea之间切换,可以利用idea连接数据库,进行数据的查询.MySQL    点击IDEA 右侧栏的 Database ,如果你的idea右侧没有Database,那么View -> Tool Windows -> Database成功连接后,,选中,再点击上方的控制台,即可打开控制台,输入sql即可进行操作...

2018-09-15 10:55:29 1021

原创 获取ApplicationContext对象进而获取spring管理的对象

概述        在初始化项目时,我们可能要用到某些对象,可以通过ApplicationContext对象获取方式一 : 通过@Autowired注入     项目启动时,spring已经将ApplicationContent对象创建,所以可以直接注入@Autowiredprivate ApplicationContext applicationContext;方式二 :...

2018-09-12 16:19:37 94

原创 自定义web项目的初始化

概述 启动一个项目时,大多数情况下我们都需要对项目进行一些自定义的初始化,如,加载数字字典,加载配置到redis等等,这需要我们在代码里进行业务实现.基于xml配置 使用场景: 配置配在xml文件中,项目启动要读取这些配置才用这个方法. 配置:<!--初始化对象时,加载类中的init方法--><bean id="serv...

2018-09-12 15:43:25 298

提示
确定要删除当前文章?
取消 删除