一个没有技术,只会增删改查的后端.
Kettle连接 SAP Hana 数据库

安装Hana驱动

PDI 7.1 在数据库连接中,没有提供 SAP Hana 数据库的连接选项。需要先在操作系统中安装 SAP Hana Client,然后将驱动程序拷贝到 PDI安装目录/data-integration/lib 文件夹下。驱动程序文件名为: ngdbc.jar。

配置Hana链接

Linux安装python2.7

一、Python安装

以Python-2.7.7为例,安装包:Python-2.7.7.tgz如无特殊说明,以下安装步骤都采用root用户执行

1. 解压Python-2.7.7.tgz

Ubuntu安装pycurl

在Ubuntu 16.04上安装pycurl时大致会遇到一下两个问题:

  1. 在使用pip install pycurl是报curl_config no found错误

  2. gnutls.h: No such file or directory

解决办法:

基于Minio和Thumbor搭建独立图片服务

前言

多数应用系统都会用到图片存储,从系统架构角度来说,像图片存储这样的服务应该尽量从核心业务中剥离出来。很多人会选择在线云存储服务,比如七牛云存储之类的。但是很多企业项目因为各种需求,还是会要求图片服务部署在内部。所以我们还是可能会需要一个可独立部署的图片服务。

自己开发实现一套图片存储服务系统,会花不少功夫,但如果有现成的方案何乐而不为呢?我在Github上发现Minio和Thumbor这两个项目可以帮我们达成需求。

java上传图片,压缩、更改尺寸等导致变色(表层蒙上一层红色)

做项目的时候遇到要对图片尺寸做处理,结果就会导致上传的图片会蒙上一层红色,代码如下

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
public void updateFileSize(String filePath) throws Exception {
// 读取图片
BufferedInputStream in = new BufferedInputStream(new FileInputStream(filePath));
// 字节流转图片对象
Image bi = ImageIO.read(in);
// 获取图像的高度,宽度
int height = bi.getHeight(null);
int width = bi.getWidth(null);

int toHeight = GlobalConstant.BASE_FILE_SIZE_NORMAl;
int toWidth = GlobalConstant.BASE_FILE_SIZE_NORMAl;

if (toHeight != height && toWidth != width) {
// 构建图片流
BufferedImage tag = new BufferedImage(toWidth, toHeight, BufferedImage.TYPE_INT_RGB);
// 绘制改变尺寸后的图
tag.getGraphics().drawImage(bi, 0, 0, toWidth, toHeight, null);
// 输出流
String imageType = getFormatName(new File(filePath));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(filePath));
ImageIO.write(tag, imageType, out);
in.close();
out.close();
}
}

原图

PDF转图片Java实现

官方网站

官网

引依赖

java中使用libreoffice将word转换成pdf格式

下载libreoffice

官网下载

配置path路径

Thumbnailator的简介和使用范例

前言

Thumbnailator是一个用来生成图像缩略图的 Java类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图。

有了这玩意,就不用在费心思使用Image I/O API,Java 2D API等等来生成缩略图了。

Web 通信 之 长连接、长轮询(long polling)

基于HTTP的长连接,是一种通过长轮询方式实现”服务器推”的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性。

什么是长连接、长轮询?

用通俗易懂的话来说,就是客户端不停的向服务器发送请求以获取最新的数据信息。这里的“不停”其实是有停止的,只是我们人眼无法分辨是否停止,它只是一种快速的停下然后又立即开始连接而已。

MySQL InnoDb还原

通过任意文件下载找到了mysql的备份,表类型是独享式innodb,由一个frm文件和一个ibd文件组成。
本以为直接复制到本地的mysql数据目录中即可恢复数据,但在查询时却发现并不如所愿:

1
2
3
4
5
6
7
8
9
mysql> select * from admin;
ERROR 1146 (42S02): Table 'test.admin' doesn't exist
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| admin |
+----------------+
1 row in set (0.00 sec)

查找资料得知,innodb的表信息存放于datadir下面的ib_logfile*与ibdata1文件内。而由于事务的存在,这些文件在复制后并不能还原。