petclinic(compass+jdbc+mysql版)配置笔记

系统 1708 0
首先希望版主删除我前2天发的帖子:compass+jdbc+mysql跑自带例子petclinic报错。帖子提问的有误,实属垃圾,呵呵。

由于compass自带的petclinic例子中jdbc数据访问层的数据库使用的是hsql db(至发帖时也没有jdbc+mysql的例子),本人照猫画虎终于跑起来compass+jdbc+mysql版的petclinic,配置见下面。由于把例子刚跑起来,也没有看compass的源码(内力有限,呵呵),很可能还有别的错误,大家就不要吝啬手中的鸡蛋石头了:)

环境:
tomcat:5.0.28 zip
mysql:5.1.22-rc-community(发帖时最新)
mysql驱动:connectorj 5.1.5(发帖时最新)


配置:
1  petclinic(jdbc+hsql版)的配置请参考文档。


2  修改jdbc.properties中的jdbc.url,我的是:jdbc:mysql://localhost:3306/petclinic?generateSimpleParameterMetadata=true。
要增加generateSimpleParameterMetadata=true参数,compass自动更新索引时(ResultSetJdbcGpsDevice [line: 337] - performMirroring())只有generateSimpleParameterMetadata=true时才行,否则会抛“java.sql.SQLException: Parameter metadata not available for the given statement”,因为mysql驱动默认generateSimpleParameterMetadata=false(参考ConnectionPropertiesImpl类953行).这里有2个方法解决,修改compass源码,或增加这个参数(笨人首选后者 )

3  修改applicationContext-jdbc.xml中selectQuery,versionQuery中的sql(4处)。
举一个说明:我把原来针对hsql的“COALESCE(t.version, convert('1970-01-01', timestamp)) as type_version”改成
“cast(coalesce(t.version,cast('2000-1-21' as datetime)) as datetime) as type_version”。
这里的sql有点长,应该有好的写法。

至此,OK啦!先试试,插入数据后搜索速度嗖嗖的

还有一点小问题:搜索结果页面中点owner链接有问题,我还没来的及看,不过这个不影响

最后希望各位看看我的有什么问题,说说自己用compass的体会,谢谢!

petclinic(compass+jdbc+mysql版)配置笔记


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论