我是一个程序员,在一家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传上,给那些有需要的人吧。
分享到:
相关推荐
jruby-complete-1.7.19.jar,java版本的ruby解析器
burpsuite插件接口ruby,直接在burp extend option里面添加,就可以在store里面添加需要的插件啦
jruby-console-0.9.2.jar groovy-1.0-beta-2.jar groovy-all-1.8.6.jar bsh-1.3.0.jar
jruby-dist-9.1.15.0-bin.zip JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库 全面集成。 截至2017.12.08最新稳定版 JRuby 官方更新说明:...
jruby-dist-9.1.15.0-bin.tar.gz JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库 全面集成。 截至2017.12.08最新稳定版 JRuby 官方更新...
jruby-src-1.0.zip
jruby-bin-1.3.1.zip 用于jruby语言研发的必要工具
jruby-stdlib-1.7.23.jar
jruby-bin-1.5.5.zip java脚本编程 jruby-bin-1.5.5.zip java脚本编程
JRuby和Rails-让Ruby语言融入于Java项目
Ruby大家不可以不知道吧?这是一个ruby的java实现。
jruby与java使用开发,听说jruby能是swing的调用变为更简单
ActiveRecord-JDBC-Adapter提供对以下各项的完全或几乎完全支持: MySQL , PostgreSQL , SQLite3和MSSQL *(SQLServer)。 除非我们获得更多的贡献,否则我们将不会支持更多的适配器。 请注意,获得另一个适配器...
找不到或无法加载主类org.jruby.Main。 原因是/usr/local/hbase/lib 目录下没有jruby-complete-1.7.19.jar文件.,下载本文件,解压缩后将jar文件直接添加到/usr/local/hbase/lib 目录下。
jruby-src-1.1b1.zip
mod-jdbc-persistor.zip,用于vert.xbusmod persistor的jdbc persistor模块,用于vert.x中的jdbc支持
sbuild-https-plugin.zip,提供https scheme handler的sbuild插件。提供https schemehandler的sbuild插件。
该项目演示了如何在 Servlet 3.1 和 JRuby 中使用非阻塞 IO 要尝试它,请克隆该应用程序,然后运行以下命令: $ bundle install ... Using sinatra 1.4.5 Using warbler 1.4.5 Using bundler 1.7.9 Your bundle is...
jruby-maven-plugins, 以 Maven 方式,Maven 插件用来处理 rubygems 包括对 rspec Rails Cucumber rake等的支持 Maven 插件 gem-工件有 Maven 存储库,torquebox.org 提供了来自 rubygems.org的gem ( 只有 ruby 和...