`
renzhen
  • 浏览: 248117 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用jruby和jdbc-wrapper访问mysql数据库

阅读更多
  我是一个程序员,在一家CRM软件公司做开发,工作使用PHP语言开发,使用Ruby作为脚本语言,进行一些自动化处理。
  最近在做一个项目,需要和金蝶的K3进行集成,采用了十分原始的互相写入对方数据库的方式,于是对方K3的开发者向我们索要产品等模块的数据字典,由于我们CRM是基于vtiger CRM改造而来,有如下特点:
   1.它支持自定义字段,同一个模块数据存在不同的表中。
   2.所有结构信息保存在fields表中。
   于是我就想通过读取fields表来自动生成结构信息,然后再加点注释,一个数据字典不就完成了吗,说干就干,首先要解决数据库连接,基于一些原因,我没有使用ruby的DBI,而是使用了jruby调用jdbc,而activerecord-jdbc太重量级了,于是上网搜索,发现了一个简单的jdbc封装jdbc-wrapper。
  可通过gems来安装这个库:jruby -S gems jdbc-wrapper
  说到简单,他实在简单,仅支持JDBC中最常用的20%功能(如:Connection、Statement、PreparedStatement等)不支持存储过程等 高级选项,否则就要hack一下了,这个不是个大问题。
  它使用类似activerecord-jdbc一样的adapter建立数据库连接,而不是jdbc的url地址。内置了许多开源的数据库adapter。
  不过它不支持使用jruby的require来导入jdbc驱动jar包,需要把jar添加到classpath路径,这个可不好,于是我hack了一下,让它支持jruby的require,同时加入了Sql Server的adapter。使用这个包建立数据库连接很简单:
 JDBC::DB.start(:mysql,"localhost","3306","username","password","tablename") do |db|
 ......
 end

jdbc支持很多数据库,只要将:mysql,改成其它adapter,就可以支持其它不同的数据库,话不多说了,现把我hack的jdbc-wrapper传上,给那些有需要的人吧。
2
0
分享到:
评论
1 楼 DyGan 2013-01-30  
谢谢分享。

相关推荐

Global site tag (gtag.js) - Google Analytics