使用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传上,给那些有需要的人吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值