最近在博客园上,看到经常有人误解动态 SQL 的拼接... 常见的误解有: 1. 只用 ado.net ,无法进行动态 SQL 拼接。 2. 有几个动态参数,代码的重复量就成了这些参数的不同数量的组合数,动态参数越多,重复量越大。

 
 

最近看到一篇“CPQuery, 解决拼接SQL的新方法”(http://www.cnblogs.com/fish-li/archive/2012/09/10/CPQuery.html),由于里面的思路基本是错误的,很担心影响园里的初学者。我在帖子里回复了几次,给博主 fish-li 一点小小的建议,没有想到,这位老兄辩论不过我,就直接删除我的回帖,包含别人在贴中对我的发问,如此恶劣行径,实属罕见。鄙人不才,不能保证每次发帖回帖都正确,也有在园中说错话道歉的时候,但从不删说错的、道歉的贴/回复。

 
 

质疑 OSGi 的作用

2012-07-13 17:09

最近和别人在 cnblogs 上就 OSGi 的作用进行了讨论,由于那里面的人,只会从网上抄袭 n 年以前的网上套话,很少有自己的分析、见解,无法展开讨论。

 
 

前一段时间,我在 cnblogs 别人的博客中,谈到: java 中的引用/指针,与 c++/C# 中的引用/指针不是一个概念. Java 引用,相当于 c++ 指针(fun3)。Java 引用可以赋值 null, 而 c++ 引用 (见 fun2) 不能赋值 null,c++ 指针可以赋值 null(fun3). Java 中,无 c++ 引用(fun2)对应的语法。 结果引起不必要的质疑,特此,写博客,对c++/java/c# 几种编程语言的指针、引用,进行比较,期望引起更多的人,对此有所关注。

 
 

看到很多数书中的代码示例,都在数据库访问函数中使用 try catch,误导初学者,很是痛心。 如果要避免代码“代码中运行出错,界面上却提示:操作成功”的问题,则应该避免在数据库访问函数中使用 try catch。

 
 

我曾经见过很多人用汉语拼音做变量名,包括用在数据库中,比如数据库名、表名、字段名,包括用在 java/c#/c++/javascript 中。

 
 

最近帮别人解决了一个问题,如何判断一个坐标点,是否在多边形区域内(二维)。 在网上搜索了一圈,都是自己写代码,有多种算法,分凸多边形、凹多边形,总之是麻烦。 继续搜索,了解到 Java/dotnet 自带的类库中,都有现成的类函数,可以解决这个问题。 考虑到了解的人不多,特将相关知识共享出来,也许大家以后也用得着。

 
 

近日写程序,使用 apache common net 里的 FTPClient,往 FTP 服务器上,上传文件,以至失败。纠结了两三天,不能解决。 后上网 google 搜索,发现以下网址提到着这件事情:

 
 

在单机版程序的设计中,对于需要较长时间运行的操作,一般都通过后台线程来完成。如果直接用 UI 线程(在 click 事件中) 运行,则 UI 界面长时间得不到机会重新绘制,会造成程序假死的现象(俗称“翻白眼”)。

 
 

近日在博客网站上,回复别人的数据库死锁避免问题,之前也曾经几次答复过同样的内容,觉得很有必要汇聚成一个博客文章,方便大家。 这里的办法,对所有的数据库都适用。 首先说明:数据库的死锁问题,通过巧妙的设计,死锁是可以避免的。

 
 

Hibernate 官方网站瘫痪了,出现一个 Java Exception 出错 stack,并显示了 Web 服务器版本号:JBossWeb/2.0.0.GA_CP 。 按理说,系统瘫痪应该显示一个用户比较容易看得懂页面,显得很不专业

 
 

早期的 EJB 有个“EJB 装配者”的角色,这种实际的工作模式,也许只有 Sun 公司才会有,其它大部分公司都不会有此类角色----大部分公司,都是小型公司,人员分工没有这么细,很多IT系统,连接池参数的调整,是由开发人员完成。 JNDI 也陷入了类似的角色分工问题:很多公司的角色分工与 Sun 公司不一样,Sun 把一个角色分工问题,引入到技术层面,可以想象,问题是很大的。

 
 

近日偶尔看到一个很巧妙的 SQL 技巧,一个简单的 SQL 同时验证帐号是否存在、密码是否正确。之前从未曾想过这么做,也未曾见过别人这么做。虽是奇技淫巧,却真正所谓构思巧妙。