显示出 Hibernate 查询语句的绑定参数值

在使用 Hibernate 进行数据库操作的时候可以显示出所执行的 SQL 语句,相信用 Hibernate 的兄弟姐妹们都知道怎么设置。就设置 hibernate.show_sql  或者 show_sql 属性为 true 就行,在 hibernate.cfg.xml 或者与 Spring 集成时配置在 Spring 的配置文件中。再就是要让显示的 SQL 语句是格式化的,就配置 hibernate.format_sql 或是 format_sql 为 true,否则总在一行中执行。Hibernate 显示的 SQL 语句好像是通过 System.out.println() 直接输出的。

Hibernate 大部份时候是通过 PreparedStatement 来执行 SQL 语句的,它的好处是可预处理、被缓存,可防止注入。只是这样让 Hibernate 执行的 SQL 语句输出到控制台是带问号的,如: 阅读全文 >>

两个非常实用的获取 Spring Bean 的 Struts Action 基类方法

我们在实际的 Spring+Struts 的项目中一般都会定义一个 Struts Action 基类。基类中当然是提供一些公共的方法了,用上了 Spring 的话,里面放几个 getBean() 方法就会方便许多。Web 项目多数时候我想还是在 Action 中有经常性的获取 Bean 实例,如果有用在别处的话,也可以借鉴。

在没有泛型支持下,我们从 Spring Context 中获取 Bean 要强型转换类型,如:

SomeClass some = (SomeClass)context.getBean("someClass");

上面对应的方法原型是 Object getBean(String beanName);

从 jdk 1.5 开始有泛型了,可以加一个泛型,省却了转型步骤,看起来要舒服一些,如: 阅读全文 >>

Maven使用第三方jar文件的两种方法

在Maven中,使用第三方库一般是通过pom.xml文件中定义的dependency从远程repository中下载该库。但是如果库文件是公司内部的库,或者在本地而不能通过远程repository下载,这种情况下,有两种方法可以满足需求。

方法一:

将本地的jar文件安装到本地repository中,具体步骤如下:
1、准备好本地的jar文件
2、使用如下命令安装jar文件
      mvn install:install-file -Dfile=abc.jar
     -DgroupId=com.mycompany.myproduct -DartifactId=abc
     -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true
    其中,-Dfile制定jar文件的位置。执行完该命令后,会在本地repository(通常是$HOME\.m2目录)中出现一个目录(com),在其下会有一个abc-1.0.jar的文件和一个自动产生的pom文件。 阅读全文 >>

语法加亮插件 SyntaxHighlighter 的好伴侣,轻便的 TinyMCE 工具按钮

用 SyntaxHighlighter 有一段时间了,版本从 1.x、2.x,到现在的最新版本是 3.0.83,1.x 和 2.x 相差较大,2.x 到 3.x 未感觉多大的变化。SyntaxHighlighter 原来是在 google 中的项目,http://code.google.com/p/syntaxhighlighter/,现在由 DbNetLink 赞助,项目移至:http://alexgorbatchev.com/SyntaxHighlighter/

在 WordPress 中关于应用 SyntaxHighlighter 进行语法加亮有众多的插件支持,搜索 SyntaxHighlighter 就知道了。但是为 TinyMCE 辅助的工具按钮却未找到一个较好用的,之前也有介绍过:给 TinyMCE 添加一个语法加亮插件的工具按钮,也是根据某个插件进行修改的。不如之处就是点击按钮后还需与服务端作一次交互,这对于使用国外较慢的空间有些受不了。 阅读全文 >>

Web开发者必知的12款jQuery插件

jQuery插件能够增强网站的可用性,有效地改善用户体验,还可以大大减少创建一个新站点的开发时间。现在的jQuery插件很多,尽可以根据您的项目 要求来选择,不过也有一些插件很好用,几乎各种项目都能够用得上。这里就为您介绍12款开发中最常用的jQuery插件。

1.jQuery BBCode Editor

下载地址:http://www.w3theme.com/jquery-bbedit/

Bbcode简单易用,它是BBS、论坛、Blog等网络应用上的一种常用输入语法。jQuery BbCode Editor提供自定义设置,可以打造出很个性化的bbcode编辑器,它的源代码都可以根据需求灵活修改。 阅读全文 >>

如何让 Map 中的值按放入顺序输出

笔者致: 当你打开这个页面的时候, 基本就无需再看后面的内容了, 因为直接用 LinkedHashMap 就能满足您的需求.  文中对这个问题的探索只是不知道别人早已过河了, 仍然在河里摸着石头. LinkedHashMap 是 JDK 1.4 加进来的, 之所以有 apache-commons ListOrderedMap 大约是因为它最早所处的是 JDK 1.4 之前的年代.


在使用 Java 的 Hashmap 时,输出 Map 中的值如何使之按放入的顺序输出来,像 List 那样保持顺序。这里的顺序不是说对集合中的数据进行的排序,要是的话用 TreeMap,像 TreeSet 一样就行。 我们看个例子:

阅读全文 >>

Slf4j + Logback 怎么过滤掉第三方包中的日志显示

其实这跟 Slf4J 通用日志框架没什么关系,单单是 Logback 的事,把 Slf4J 扯进来只因它们是对黄金组合。

我们在 log4j 中想要不显示第三方包的非常冗余的日志输出时,只要在 log4j.properties 中写上:

这样在 hibernate 里的日志级别在 ERROR 以下的 TRACE、DEBUG、WARN 和 INFO 将不被输出,控制台会比较的干净。

Logback 的配置文件是 logback.xml,曾经在里面给 <appender> 加的 <pattern> 是: 阅读全文 >>

iText 用 HTMLWorker 转换 HTML 为 PDF 时可设置表格列宽度

生成 pdf 的方式有多种,直接用 iText 编码控制产生,fop 转换,不过我觉得很方便的一种方法就是用 iText 的 HTMLWorker 类直接把 HTML 转换成相应的 PDF 文档,HTMLWorker 可支持图片和表格,一定数量的样式控制。这样可以让我们关注到 HTML 页面设计上,至于转换出来的效果就要看母版 HTML 的设计功底了。要知道这个 HTML 中的样式要让 HTMLWorker 可理解的,并非说能支持 CSS2 还是 CSS3。HTMLWorker 能支持的样式还是非常有限,并且还未文档化的,有些多试试,能看看源代码是自然可以让胸中更有数了。

项目中有一个比较迫切的问题是把 HTML 中的表格转换成 PDF 的 PdfPTable 时,无论是在 <td> 上用 width="xxx" 或是 style="width:xxx" 时都看不到宽度的设置效果,iText 总是让生成的 PdfPTable 平均分配单元格宽度的。这对于单元格宽度有过于悬殊的需求是无法妥协的,所以要一种办法来支持自定义单元格宽度,让 width="xxx"  或是 style="width:xxx" 有一种控制能力就行。又得改源代码了,网上找到了是支持 iText 2.1.7 的改法,本篇是针对 iText 5.0.4 的做法,使支持 width="10%" 百分比来控制单元格宽度。 阅读全文 >>

Windows 下推荐使用的端口转发(映射/重定向)工具:PassPort

前一篇里 Windows 和 Linux 平台下的端口转发工具 介绍 Windows 下的端口重定向工具有 rinited 和 FPipe,rinited 可以同时应用多个规则,FPipe 一个命令一个规则,它们都是命令行的。

本文中介绍另一款更好用的端口重定向工具 PassPort, 它是免费开源的,图形界面的,支持 TCP/UDP、配置简单,可配置多组映射规则,可作为 Windows 系统服务运行。

下载地址是:http://sourceforge.net/projects/pjs-passport/。安装后运行界面如下: 阅读全文 >>

Windows 和 Linux 平台下的端口转发工具

这里记录一下我曾经使用过的几个端口转发工具,即端口映射、端口重定向,和 NAT 也是差不多的概念。

Linux 下用过 iptables,rinetd;Windows 下用过某个防火墙的 NAT 功能、RemoteAnywhere 的端口重定向、FPipe,还有最近刚找到的 PassPort。试着去设置一下 Windows 2000 的 NAT  功能,但未成功,还是特定的软件简单易用,下面介绍逐一介绍下。

iptables 的功能当然强大,但理解与设置却有点抽象,曾用它进行过透明代理上网,见:Linux 下仅用 iptables 实现为透明代理服务器。真要用它进行端口重定向太麻烦,会用它当然很方便的,在 Linux  平台下是开箱即用的,很多机器都安装了它。 阅读全文 >>