通过ODBC连接MySql
由于需要共享EA项目,而暂时发现EA仅支持ODBC连接数据库,所以要解决通过ODBC连接MySql的问题了。
Windows默认是没有MySql的ODBC驱动的,首先要下载ODBC驱动。Google到MySql官网上有,但是需要注册,继续Google到一个下载镜像:http://mirror.cogentco.com/pub/mysql/Connector-ODBC/5.1/,选择了Windows x64的MSI版本下载,因为我的系统是Windows7 x64。下载下来才发现,x64的版本里还包含了x32的。
安装驱动后,在ODBC数据源管理里的“用户DNS”或“系统DNS”点击“Add”按钮,就可以看到了:

选中“MySql DOBC 5.1 Driver”,点击“Finish”,就可以添加一个MySql数据源了:

填完各输入框点“OK”,在列表里就可以看到刚才添加的数据源了:

只谈技术,莫谈国是?
JavaEye发布的信息:http://www.javaeye.com/news/9991-protect-javaeye
今天下午JavaEye网站被和谐了,原因是多次出现“有害”信息!如果再次出现“有害”信息,我们可能会被和谐很长时间。
在这个特殊的时期,为了保护JavaEye网站还能够继续“存在”下去,为了大家还能有一个高质量的交流场所,我们呼吁每个JavaEye会员:
1、只谈技术,莫谈国是!
2、凡是发现涉及社会敏感事件的热点话题,政治话题,军事话题,请立刻在JavaEye站务论坛向我们举报!
3、请自律自己的行为,只要我们发现任何人发布任何政治话题和敏感事件的文章,帖子,博客,评论,甚至闲聊,统统直接删除用户ID和用户所有JavaEye资料,不给任何通知和解释。
能怪JavaEye不?
不能!
该怪JavaEye不?
该!
无语……
把MyEclipse项目转为WTP项目
马上要进入另一个项目组了,新项目所用的IDE是MyEclipse。我已不习惯了庞大的MyEclipse,而习惯了WTP并且想试验一下新的Eclipse3.5,因此需要把MyEclipse项目转换为WTP项目。(PS:不遵守团队开发规范是不正确的行为!)
1.在Eclipse里导入MyEclipse项目到工作空间。
2.编辑.project文件,在<natures></natures>中加入
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
在<buildSpec></buildSpec>节点加入
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
3.在Eclipse中刷新项目。
4.右击项目–>Properties—>Project Facets,在右边勾选Java与Dynamic Web Module,应用。
5.如果你的项目源代码文件夹不是WTP默认的src,则需要到Java Build Path中去添加相应源代码文件夹。
6.如果你的项目Web文件夹不是WTP默认的WebContent,则需要文件文件 <项目目录>/.settings/org.eclipse.wst.common.component,找到
<wb-resource deploy-path="/" source-path="/WebContent"/>
并修改,如
<wb-resource deploy-path="/" source-path="/webapp"/>
当BeanUtils的拷贝遇上java.util.Date
BeanUtils是apache基金会下的一个开源项目,主要用于对Java Bean的操作。在一个项目中,经常要用到Bean属性拷贝,使用了org.apache.commons.beanutils.BeanUtils.copyProperties(dest, orgi)。由于此方法声明了抛出异常,在项目中为了方便,便对此作了简单封装,把异常处理了:
public static void copy(Object dest, Object orgi) {
try {
BeanUtils.copyProperties(dest, orgi);
} catch (Exception e) {
log.error("Bean属性拷贝出错。", e);
}
}
后来却发现,当源对象orgi中某个java.util.Date类型的属性为null时,copy会失败(虽然异常被处理了),目标对象dest中部分非Date类型的属性也为空,虽然源对象中这些属性是有值。原因就是上BeanUtils在处理属性值为null的Date类型时出错了,便抛出了异常,后面的属性便不会再复制。
后来在JavaEye搜到了答案:为BeanUtils注册一个日期类型转换器:使用org.apache.commons.beanutils.ConvertUtils,注册org.apache.commons.beanutils.converters.DateConverter。下面的代码是放在copy方法所在的类:
static{
ConvertUtils.register(new DateConverter(), Date.class);
}