使用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传上,给那些有需要的人吧。

你可能感兴趣的:(数据结构,mysql,jdbc,Ruby,jruby)