假定Java 程序中要定期执行 SQL 语句,因需求变更应修改原有 SQL 语句或者加上更多的语句时,不得不修改源代码,然后再次编译。 要是把 SQL 语句写在单独的 SQL 脚本文件中,由 Java 程序来定时加载执行,那么每次改动时仅仅修改 SQL 脚本文件就行了。
Java 没有提供现成的东西,所以自己写了一个这样的 SQL 脚本执行类 SqlFileExecutor。支持通用的 SQL 脚本文件,"--" 作为注释前导符,分号 ";" 分隔语句。不支持 MySQL 的 /*...*/ 形式的注释格式。对于 Windows 和 Linux/Unix 下编辑的脚本文件都测试通过。 这两个系统文件中的换行符不一样,Windows 是 "\r\n",Linux/Unix 是 "\n"。 Read More
我在 Websphere Application Server (WAS) 下配置 JDBC 提供程序时,选择了 Oracle JDBC Driver 确定之后,看到最后一个选项是:oracle.jdbc.pool.OracleConnectionPoolDataSource。
顾名思义,这是一个 DataSource 实现为,就像 DBCP 的 BasicDataSource 一样。那么能不能也像 BasicDataSource 那样,通过 new BasicDataSource(),然后设置各个必须的属性得到一个数据源 DataSource 呢?这个 OracleConnectionPoolDataSource 又是在哪个包里呢? Read More
在上一篇 重定向System.out和System.err到JTextPane,分别用黑色红色显示 中讲了如何把 System.out 和 System.err 重定向到 JTextPane 上,并分不同颜色显示,其中用到了 PipedInputStream、 PipedOutputStream。那个例子还是参考的 《The Java Developers Almanac 1.4》, 翻译出来叫做 《Java 开发者年鉴 1.4》,显得多么的权威啊,我当时还真把它看成官方最佳推荐实现了,太迷信了。
可是现在看来,前面那个实现不仅代码繁琐,而且是 Bug 多多。现在重新对上回的 ConsolePane 来个新的更简洁高效的实现。代码如下: Read More
把 System.out 和 System.err 重定向到 JTextArea 的做法在网上能找到不少,由于 JTextArea 不能用不同的字体分别显示内容。但我还是希望能象 Eclipse 控制台那样,标准输出为黑色,错误信息为红色,于是选择了 JTextPane 作为输出目的地。线程之间通信息用到了 PipedInputStream 、PipedOutputStream 和 SwingUtilities.invokeLater(new Runnable()。
自定义了一个 JScrollPane,类名为 ConsolePane,写成的单例类;使用时只需要在你的面板上加上 ConsolePane组件,例如:getContentPane().add(ConsolePane.getInstance(), BorderLayout.CENTER);
界面截图(黑色和红色分别显示 System.out 和 System.err 定向的输出内容): Read More- 这种情况通常是发生在换了另一份 Eclipse 拷贝之后。之前一般都能正常在 Eclipse 中执行 Ant 脚本,删除了原来的 Eclipse 之后换了另一个拷贝或者是新版本,在其中执行 Ant 脚本时弹出窗口出现以下错误:
---------------------------
Java Virtual Machine Launcher
---------------------------
Could not find the main class. Program will exit.
---------------------------
确定
---------------------------
这种错误对用过 Java 的人来说还是很明白,找不到 Ant 的主类吗。不过说实话也困扰过我一段时间,也没去深究。说开了,症结就是 Eclipse 中的 ANT_HOME 指向不对。 Read More
StrutsConfigHelper 小工具方便你对一个或多个 StrutsConfig 文件按条件查找各要素。 在 《忙里找闲,自写了一个StrutsConfig配置文件条件查找工具》 一文章有对该工具的介绍。
软件为适宜之作,如果它确实对你毫无用处,你大可当它是垃圾,不因作者付出很大的苦劳,而勉强去接受;也许它还能给你带来些便利,那就体现了它的价值。 Read More
工作中有维护 Struts 项目,或看别人项目中代码时,要把访问页面链接与相应处理 Action 类及 FormBean等相关信息对应起来,每每都是打开 Struts 配置文件,Ctrl+F 进行查找,不易准确定位,尤其是项目中有多个 Struts 配置文件时就得这边倒来那边转去的,实为不便。于是乎就为自己写了一个可同时在多个 Struts 配置文件中根据不同条件查找配置信息的小工具,谓之:Struts Config Helper。
这段时间工作上比较的忙,闲暇之间,一点一滴缓慢缀掇而成。也不知对于各位同路人是否有可借鉴之处,张贴出来,希望得到各位的指摘,多给我提些 Bug 出来,不胜感激! Read More- 一般我们查阅 JDK API 都是用的 CHM 版的帮助文件,记得想想刚接触 Java 那时要在网上找个 CHM 版的 JDK 帮助文档都要费几番周折,甚至还经常在线查某个 AP I说明。现在好了,连中文的 JDK API 帮助都能及时出来,要找个 CHM 版的帮助也方便多了。
可是对于大多数的 Java 组件都只提供 HTML 版的 JavaDoc API 帮助,查阅起来很不顺手。没有快速索引查找的功能,而且看不同组件的 API 帮助需要同时打开多个窗口。
下面向大家介绍一款软件,JavaDOCHelper,它不仅能提供像 CHM 文件那般快速索引查找,而且提供一个界面里查阅多个 Java Doc API。该软件未注册版本,只限 30 次的查找功能的使用(不是指索引),现已对该软件完成了破解,并提供更换安装目录时更方便的提示功能,以及免安装,EXE 文件无控制台方式启动。 Read More - 在C/C++中有sizeof()操作,可轻易获知某个类型或实例占用内存大小,sizeof(int) 或者 sizeof(new TestClass)。可是Java中可没有这么直观的方法可用。
因本人看过不少人写代码总爱写成
List userList = new ArrayList(); //注:声明时即初始化一个空 ArrayList
userList = userDao.getAllUsers(); //注:方法getAllUsers()中会生成一个ArrayList的
上面就造成平白多了一个空的 ArrayList(),创建完后即刻就推向GC处置,我就在想这样一个空的 ArrayList 会占用多少内存,于是找来了 Optimizeit 观察后发现一个空的 ArrayList 要占去 24b 内存。那 Java 中有没有更便的捷的方法呢,于是在网上 google "java sizeof",引出不少话题。 Read More - ITracker 是基于 J2EE 的 issue/bug 跟踪系统,支持多用户、多项目、邮件通知等,更多特征请查看http://www.cowsultants.com/features.html 。这里还有一个在线 demo 可以试用,用户名和密码都是 guest。
类似的产品还有 Scarab、ELIPS、Bugtracker、BugRat、Abuky、TrackIt、jTrac、Bugzilla、JTrac、Project Dune.
iTracker确实是个好东西,但对一个东西过熟了,难免期望值就更高了。如果你用 iTracker 作过 Code Review 的话,你就会发现,你贴上去的代码,浏览显示出来的是代码中的空格少了,尤其是没了退格规范显示了。例如,你贴的代码是: Read More