- 浏览: 458599 次
- 性别:
- 来自: Runner
文章分类
- 全部博客 (97)
- commons (3)
- EJB3 (5)
- liferay (1)
- 设计模式 (1)
- JBoss (1)
- 常用 (6)
- guice (4)
- JAX-WS (1)
- 持久层处理 (3)
- 单元测试 (3)
- jmesa (6)
- mongodb (3)
- View显示 (6)
- lucene (1)
- struts2 (2)
- spring security (2)
- spring (4)
- hibernate (1)
- mysql (1)
- ruby (21)
- python (2)
- ubuntu (1)
- ibatis (2)
- javascript (3)
- 数据库 (1)
- swing (1)
- java基础 (2)
- dojo (1)
- android (9)
最新评论
-
BigHanson:
写得非常棒,醍醐灌顶 可以转发吗
spring security验证流程 -
背后的光:
spring security验证流程 -
hanlongjie:
commons-lang(time应用) -
litianpeng:
虽然是2009年写的帖子 不过还是要请问一下先生 我按照你的 ...
Ajax Fancy Capcha -
蔡小鱼:
ibatis总结
java开发的很多代码都是可以通过工具来生成的,虽然eclipse在这方面有些帮助,但其能力还是太有限,在本人学习ruby期间发现使用ruby来写个自动化的生成工具确实是个很不错的主意。由于公司使用的oracle+ibatis的持久层开发,所以本人开始的时间只是想生成一下ibatis的sqlmap的XML文件就可以了,但后来一想,其实service、dao、controller甚至JSP都可以完成大部分的有效生成。但即便如此,这个工具的代码量还是很小的,几乎是相当的容易。
由于本人主要是做JAVA的,所以ruby这个东西过段时间就忘了,可能再到以后再要想搞这么个工具,又得从头再来,所以决定把大体思路写下来。
其中涉及到的东西主要有几下几个:
1.读取配置文件。由于windows下的tcl/tk非常的难用(是本人目前用过的最难用的API之一),所以觉得还是用配置文件算了。XML不错,但结构有点复杂,所以本人使用的是yaml格式配置文件,感觉其与json有点相似。大体格式如下:
由于yaml是ruby标准库自带的,所以不需要再安装gem,只要在使用时用require引入即可。
2.连接数据库组件。连接oracle时,除了需要dbi以外,还需要oci8这个gem,因此这个得自己手动安装。
3.将ruby程序打包成exe文件,这个需要个叫exerb的组件,其用法可见下面文章:
http://jimmykuu.iteye.com/blog/51526
4.生成java需要的技术。生成xml文件是可以使用rexml,这个在本人以前的博客中也讲过,生成java文件时,除了可以使用普通的puts "xxxx"输出到文件以外,还可以使用erb模版技术,本人也两种都试了下,感觉erb模版方法可能更好一些。
除了上面这些问题外,就剩下写代码了,下面贴出生成文件的主要结构代码:
这个文件是生成java代码的主文件,具体的生成代码在相关的模块里面,总体来说,用ruby在做自动生成工具相当的方便,而且ruby本身的设计也相当的优秀。虽然本人以前也学过一段时间的rails,可惜只做过例子,并没有做出什么有实际帮助的东西来。但个人对ruby与rails评价还是很高的,都是些很不错的东西,希望以后能再有机会用到它们。
另外,本人开发使用的scite这个工具。
由于本人主要是做JAVA的,所以ruby这个东西过段时间就忘了,可能再到以后再要想搞这么个工具,又得从头再来,所以决定把大体思路写下来。
其中涉及到的东西主要有几下几个:
1.读取配置文件。由于windows下的tcl/tk非常的难用(是本人目前用过的最难用的API之一),所以觉得还是用配置文件算了。XML不错,但结构有点复杂,所以本人使用的是yaml格式配置文件,感觉其与json有点相似。大体格式如下:
#tnsnames.ora, yaml要求冒号后面要有空格,仅用于测试数据库 tns : ORCL181 table : PAY_WAY_COL domain_pack: com
由于yaml是ruby标准库自带的,所以不需要再安装gem,只要在使用时用require引入即可。
2.连接数据库组件。连接oracle时,除了需要dbi以外,还需要oci8这个gem,因此这个得自己手动安装。
3.将ruby程序打包成exe文件,这个需要个叫exerb的组件,其用法可见下面文章:
http://jimmykuu.iteye.com/blog/51526
4.生成java需要的技术。生成xml文件是可以使用rexml,这个在本人以前的博客中也讲过,生成java文件时,除了可以使用普通的puts "xxxx"输出到文件以外,还可以使用erb模版技术,本人也两种都试了下,感觉erb模版方法可能更好一些。
除了上面这些问题外,就剩下写代码了,下面贴出生成文件的主要结构代码:
=begin dao service controller domain sqlmap ... =end $LOAD_PATH.unshift(File.dirname(__FILE__)) unless $LOAD_PATH.include?(File.dirname(__FILE__)) require 'dbi' require 'oci8' require "yaml" require "sqlmap" require "domain" require "dao_service" require "xml_service" require "controller" require "bean_util" require "list" require "form_jsp" class CrudModel def initialize(tns,table,dpack,crud_pack,author) @tns = tns @table=table @clazz=BeanUtils.class_name(table) @name=BeanUtils.bean_name(table) #domain package @dpack=dpack #service dao controller package @crud_pack=crud_pack @author=author DBI.connect("DBI:OCI8:#{@tns}","qaa","qaajkwin") do |dbh| #查询表的主键 rs_id = dbh.execute("select ucc.column_name as ID from user_cons_columns ucc, user_constraints uc where ucc.constraint_name = uc.constraint_name and uc.constraint_type = 'P' and uc.table_name = upper('#{@table}')") @primary_key = rs_id.fetch_hash["ID"] @id=BeanUtils.field_to_attr(@primary_key) #获取表的基本信息 rs = dbh.execute("select * from "+@table) rs_seq = dbh.execute("select count(*) as seqcount from all_sequences where sequence_name='#{@table}_SEQUENCE'") sqlmap = SqlMapXml.new(rs_seq,rs,@table,@clazz,@name,@dpack,@primary_key,@id) sqlmap.write() domain = Domain.new(rs,@table,@clazz,@dpack) domain.write() dao_service = DaoService.new(@clazz,@name,@dpack,@crud_pack,@author) dao_service.write() xml_service = XmlService.new(@clazz,@name,@crud_pack) xml_service.write() controller = Controller.new(@clazz,@name,@id,@dpack,@crud_pack,@author) controller.write() #获取表的列注释 rs_comments = dbh.execute("select column_name as columnName,comments from user_col_comments where table_name=upper('#{@table}')") column_comment = Hash.new while(column = rs_comments.fetch_hash) do column_comment.store(column["COLUMNNAME"],column["COMMENTS"]) end #ListView.new(column_comment,@clazz,@name,@id,@dpack).write() FormJsp.new(column_comment,@name,@id).write() end end end config = YAML.load_file("database.yaml") CrudModel.new(config["tns"],config["table"],config["domain_pack"],config["crud_pack"],config["author"])
这个文件是生成java代码的主文件,具体的生成代码在相关的模块里面,总体来说,用ruby在做自动生成工具相当的方便,而且ruby本身的设计也相当的优秀。虽然本人以前也学过一段时间的rails,可惜只做过例子,并没有做出什么有实际帮助的东西来。但个人对ruby与rails评价还是很高的,都是些很不错的东西,希望以后能再有机会用到它们。
另外,本人开发使用的scite这个工具。
- crud.zip (6.5 KB)
- 下载次数: 5
发表评论
-
ruby的require加载
2011-11-15 10:18 3265ruby没有像java那种严格的包管理机制,因此引用起来就有些 ... -
windows上使用mysql2
2011-11-14 14:47 1411想在windows上做ruby应该的可能很底,ruby服务器在 ... -
rexml 中增加CDATA
2011-10-14 14:14 2361最近想用ruby写个能生成 ... -
ruby处理未定义的方法
2010-10-08 17:52 1596关于未定义的方法,《ruby编程语言》上面说得比较詳細了,所以 ... -
rails3的删除问题
2010-08-25 00:38 1689Rails 3所做的很大一个改进就是:Unobtrusive ... -
ROR+mysql的中文问题
2010-08-24 15:28 2314环境: os: ubuntu 10.04 ru ... -
Ubuntu上搭建ruby1.9.2 on rails3rc
2010-08-20 13:34 2253linux的分支不同使用起来还是有很多差别的,最近想用一下比较 ... -
rails3之ActionController
2010-07-29 21:36 3660rails3中有许多变化,现 ... -
windows运行rails3
2010-07-29 11:19 3369虽然rails3的beta版已经出来很久了,但一直没正式版,最 ... -
ruby之enumerator
2010-07-22 00:25 3586由于版本的变更,1.8与1.9在许多地方是不一样的,API变化 ... -
ror中属性值存储的处理
2010-07-19 02:11 1341今天细看了quakewang的那 ... -
一个简单rails应用的开发过程
2010-07-03 16:06 1640基本环境: rails2.3.8 ruby ... -
windows 上使用mongrel
2010-06-30 19:04 2932由于ruby自带了一个webrick的嵌入式服务器,所以以前都 ... -
redmine 一个不错的ror开源项目管理系统
2010-06-30 01:19 2676学了一段时间的ruby,想做点东西,折腾了一下wxruby,但 ... -
ruby的时间与日期
2010-06-04 10:22 4402最近心情稍微好一点,正好现在难得的清闲,于是看了一下ruby的 ... -
ruby的模块
2010-05-20 17:16 1889模块的定义跟类非常相似,只是用module关键字取代class ... -
ruby方法
2010-05-19 15:29 1928没事做,写着玩的。不过ruby的block,proc,闭包或l ... -
ruby 创建基本的类
2010-05-18 11:15 1187由于ruby的语法很多,看 ... -
ruby编程题
2010-05-15 23:43 1867学了一段时间ruby后,又学了段时间python,学了pyth ... -
ruby on rails入门基础
2010-04-10 01:33 3210最近有想学一下ruby on rails的冲动,JAVA这东西 ...
相关推荐
标题中的“网页自动生成JAVA/SQL等代码的JS代码文件”指的是使用JavaScript(JS)编写的代码库,这种库能够帮助网页开发者在网页上展示多种编程语言的代码,包括JAVA和SQL,通常以高亮显示的形式,使得代码更易于...
将 Java 文件转换为 Ruby 文件的工具。 这是第一个版本。 只翻译下一个功能: 包声明。 类声明。 属性类。 有或没有返回的方法。 相等运算符和简单的说明。 调用方法。 toString 方法。 建设者。 印刷。 ...
5. **生成Java代码框架**:最后,根据ERb模板匹配的结果,生成可执行的Java代码框架。这一框架应包含基本的类结构、方法定义等,为后续的具体实现打下坚实的基础。 #### 技术优势与应用前景 通过上述设计与实现,...
YARD是一种流行的Ruby文档生成工具,Cane确保每个公开的方法都有相应的文档,以便其他开发者能轻松理解代码功能。 4. **代码覆盖率**:虽然Cane自身并不直接提供代码覆盖率报告,但可以通过与其他工具如SimpleCov...
- 对于更复杂的需求,例如博客或文档站点,Java社区还开发了一些静态站点生成器,如Jekyll(虽然主要是Ruby实现,但有Java版本)、JekyIIr和Pebble。这些工具接受Markdown或其他格式的输入,转换为静态HTML页面。 ...
Java+Selenium资源文件是用于实现Web自动化测试的重要工具集合,主要涵盖了Selenium IDE与Java的集成,以及多种编程语言的格式支持。Selenium是一个广泛使用的开源自动化测试框架,它允许开发者编写脚本来模拟用户在...
`javac`是Java源代码的编译器,它将开发者写的.java文件转换为平台无关的.class文件,这些文件可以在任何安装了JRE的系统上运行。`JVM`则是执行这些.class文件的引擎,它实现了Java的“一次编写,到处运行”的理念。...
本资源包含的"dtangler-master"可能是一个用于处理和分析依赖结构矩阵的项目,可能是用Java或Ruby实现的一个工具。 在Java中,DSM通常用于大型项目,通过分析类与类、包与包之间的依赖关系,找出高耦合的部分并进行...
总的来说,Ruby-2.6.9.tar.gz是一个为开发者准备的软件包,包含了在不同平台上编译和使用Ruby 2.6.9所需的所有资源,特别是对于那些希望在Java环境中使用Ruby的开发者来说,这是一个重要的工具。通过了解这个版本的...
代码生成文档高亮显示工具是一种实用的编程辅助软件,它能够帮助开发者将各种源代码转换成带有行号和语法高亮的HTML文件。这个过程在技术领域被称为代码高亮(Syntax Highlighting)或语法着色,是提升代码可读性和...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程...
Rake则是Ruby社区中一个非常重要的工具,它是一个构建自动化工具,类似于C++中的make或者Java中的Ant。Rake通过定义一系列的任务(tasks),并为这些任务指定依赖关系,使得开发者可以方便地管理和执行项目构建过程...
尽管Ruby的市场份额可能不如其他语言如Java或Python那么大,但其在Web开发领域,尤其是敏捷开发和快速原型构建中仍然具有显著优势,对于追求高效开发和代码质量的团队来说,Ruby不失为一个优秀的选择。
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
不过,值得注意的是,压缩包中的"keygen.exe"文件通常是一个密钥生成器,这可能涉及到版权问题。在软件开发和学习过程中,应遵循合法和道德的原则,尊重知识产权,不使用未经授权的工具或软件。 在实际开发中,你...