Spring之JdbcTemplate进行查询的三种回调方式的比较

我们做过的很多项目中都会使用spring的JdbcTemplate进行结果集的查询操作,以前在使用的时候一直都是“拿来主义”,功能实现了就OK了,没有深究什么内容,特别是查询接口的回调内容方法,没有过多的研究过细节内容。最近一次使用JdbcTemplate进行查询操作,发现了一些有规律的内容,所以就深入学习了一下。和大家一起探讨一下:对于spring的JdbcTemplate进行结果集查询操作,spring给我们开发的是一系列的query方法,这些查询的方法中回调的接口主有三种:ResultSetExtractor,RowCallbackHandler,RowMapper。

Mehr lesen

Java获取照片信息(照片的照相机、时间等一系列数据)

首先介绍一下什么是EXIF,EXIF是 Exchangeable Image File的缩写,这是一种专门为数码相机照片设定的格式。这种格式可以用来记录数字照片的属性信息,例如相机的品牌及型号、相片的拍摄时间、拍摄时所设置的光圈大小、快门速度、ISO等等信息。除此之外它还能够记录拍摄数据,以及照片格式化方式,这样就可以输出到兼容EXIF格式的外设上,例如照片打印机等。

Mehr lesen

IDEA-Error-java- Compilation failed-internal java compiler error

编译时问题如下:

明显是版本问题,按照如下更改即可:

Mehr lesen

Spring Boot Hello World!

在一些开源项目的介绍上看到过很多次的spring boot字眼,可一直没具体去看过,今天先简单上手跑通一下流程 :p

回首我们以前使用Spring框架的时候,我们需要首先在(如果你使用Maven的话)pom文件中增加对相关的的依赖(使用gradle来构建的话基本也一样)然后新建Spring相关的xml文件,而且往往那些xml文件还不会少。然后继续使用tomcat或者jetty作为容器来运行这个工程。基本上每次创建一个新的项目都是这么一个流程,而我们有时候仅仅想快速的创建一个Spring web工程来测试一些东西,或者是希望能节省时间。

Mehr lesen

使用SfntTool对字体文件瘦身

在做移动端的H5页面时经常遇到一些特殊字体,往往动辄就4-5M,大的有的20多M,这文件要是扔到web上肯定就直接歇菜了。所以这时候就得想下怎么对字体文件瘦身呢?无外乎是对字体文件中没有用到的字体进行剔除,一个字体文件中少说也有3500个字根,我们一个页面用到的也就100-200字最多了,所以有很多冗余的字根我们可以去掉。

Mehr lesen

Java原生API获取网页源码

今天遇到一个需求就是对一个动态的html页面(ajax获取数据进行填充)进行读取源代码然后使用nodejs的npm进行编译,最佳方式是使用httpclient来实现获取源码,但为了最快速来验证下这个需求流程所以下文用Java原生API来实现:

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Test {
public static String getHtmlContent(URL url, String encode) {
StringBuffer contentBuffer = new StringBuffer();
int responseCode = -1;
HttpURLConnection con = null;
try {
con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");// IE代理进行下载
con.setConnectTimeout(60000);
con.setReadTimeout(60000);
// 获得网页返回信息码
responseCode = con.getResponseCode();
if (responseCode == -1) {
System.out.println(url.toString()
+ " : connection is failure...");
con.disconnect();
return null;
}
if (responseCode >= 400) // 请求失败
{
System.out.println("请求失败:get response code: " + responseCode);
con.disconnect();
return null;
}
InputStream inStr = con.getInputStream();
InputStreamReader istreamReader = new InputStreamReader(inStr,
encode);
BufferedReader buffStr = new BufferedReader(istreamReader);
String str = null;
while ((str = buffStr.readLine()) != null)
contentBuffer.append(str);
inStr.close();
} catch (IOException e) {
e.printStackTrace();
contentBuffer = null;
System.out.println("error: " + url.toString());
} finally {
con.disconnect();
}
return contentBuffer.toString();
}
public static String getHtmlContent(String url, String encode) {
if (!url.toLowerCase().startsWith("http://")) {
url = "http://" + url;
}
try {
URL rUrl = new URL(url);
return getHtmlContent(rUrl, encode);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void main(String argsp[]) {
System.out.println(getHtmlContent("www.k-run.cn", "utf-8"));
}
}

Mehr lesen

图片Base64格式转文件

图片的base64编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址。

这样做有什么意义呢?我们知道,我们所看到的网页上的每一个图片,都是需要消耗一个http请求下载而来的(所有才有了csssprites技术的应运而生)。

Mehr lesen

error while loading shared libraries: xxx.so.x

在使用ffmpeg以及soundtouch的过程中遇到了这个错误,字面意思应该是某个共享库的问题.

已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.

所以安装共享库后要注意共享库路径设置问题, 如下:

1) 如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令

Mehr lesen

FatJar插件及nohup的使用

FatJar插件

Eclipse可以安装一个叫Fat Jar的插件,用这个插件打包非常方便。

fat-jar它是sourceforge.net下的一个开源工具从http://sourceforge.net/projects/fjep 地址可以下载该工具。fatJar这插件打包的时候可把用到的第三方的JAR包也一起打到目标JAR中。选择要打包的已编译的class 文件,主要是你写的类文件,先不要选择外部依赖的jar 包,因为你设置了class_path 后只要把依赖的包放到类路径能找到的地方就可以了。

Mehr lesen

Centos6.5下使用ffmpeg进行音频转码

1.安装yasm(支持汇编优化)

从yasm官网下载最新版本[http://yasm.tortall.net/];
然后安装:

Mehr lesen