任务: Ejb 开发,根据数据库中已经建好的表创建 EntityBean ,如果数据库中的字段不多还好办,一个一个写就是了,那如果碰到字段很多的情况怎么办呢?像下表中的有59个字段的,一个一个写恐怕要写到猴年马月了。
| 字段名 | 数据类型 |
| object_rrn | number(19) |
| org_rrn | number(19) |
| is_active | varchar2(1) |
| created | date |
| created_by | number(19) |
| updated | date |
| updated_by | number(19) |
| lock_version | number(19) |
| material_id | varchar2(32) |
| name | varchar2(128) |
| description | varchar2(128) |
| comments | varchar2(512) |
| material_category | varchar2(32) |
| material_type | varchar2(32) |
| bom_rrn | number(19) |
| refernect_price | number(19) |
| specification | varchar2(32) |
| model | varchar2(32) |
| weight | number(19) |
| volume | number(19) |
| inventory_uom | varchar2(32) |
| purchase_uom | varchar2(32) |
| qty_min | number(10,4) |
| qty_max | number(10,4) |
| inventory_property | varchar2(32) |
| abc_category | varchar2(32) |
| is_lot_control | varchar2(1) |
| lot_type | varchar2(32) |
| is_jit | varchar2(1) |
| is_virtual | varchar2(1) |
| is_purchase | varchar2(1) |
| is_mrp | varchar2(1) |
| is_issue_mo | varchar2(1) |
| stock_capability | number(19) |
| qty_initial | number(10,4) |
| qty_in | number(10,4) |
| qty_out | number(10,4) |
| qty_difference | number(10,4) |
| qty_transit | number(10,4) |
| qty_allocation | number(10,4) |
| reference_doc | varchar2(512) |
| production_cycle | varchar2(32) |
| workcenter_rrn | number(19) |
| buyer_id | varchar2(32) |
| planner_id | varchar2(32) |
| keeper_id | varchar2(32) |
| iqc_id | varchar2(32) |
| stand_cost | number(19) |
| actrual_cost | number(19) |
| bom_version | number(19) |
| state | varchar2(32) |
| bom_id | varchar2(32) |
| pur_inv_conversion | number(10,4) |
| is_sale | varchar2(1) |
| is_product | varchar2(1) |
| stand_time | number(19) |
| process_name | varchar2(32) |
| qty_min_product | number(10,4) |
| is_share | varchar2(1) |
这时就要借助Vim的强大功能了。首先声明,看本文需要结合实际操作看每一步的效果对您才能有所帮助(当然如果你是一个vim高手,当然本文中的内容实在是小菜一碟了,那就另当别论了),如果您对文中的文字描述没有多大兴趣,那么您也可以选择只看每一步操作的命令(文中斜体加粗部分)而跳过其他内容,笔者建议您还是耐心看完,毕竟完成此文笔者是花了心思的,权当尊重笔者的辛勤劳动吧,呵呵,废话不多说了!
首先, 将字段复制到 vim 中

输入 :set list // 显示特殊字符

输入 :set nu // 显示行号
:g/./normal yyp // 将每一行重复一遍
Normal 状态下按 gg
qm // 记录宏
输入 :s/^I\(\S*$\)/ // 将 ^I 与 $ 之间的内容删除(本文中的 ^I 均为normal状态下的 Tab 符,下文不再赘述)
j // 到下一行
q // 结束记录
100@m
输入 :g/./if line(“.”)%2==1|normal gU$ // 将奇数行转为大写
输入 :g/./if line(“.”)%2==1|s/^/@Column(name=” // 奇数行行头加上 @Column 关键字
输入 :g/./if line(“.”)%2==1|s/$/”) // 在奇数行末尾加上 ”)
输入 :g/_\a/if line(".")%2==0|s/_\a/\U&/g // 将偶数行中 ’_’ 后的第一个字母大写,下一步就是把 ’_’ 删掉,以符合 java bean 的命名规则
输入 : g/_\a/if line(".")%2==0|s/_//g // 把 ’_’ 删掉
接下来就是将数据类型移到前面去,这里要用到一个相对复杂的命令,替换字段位置
输入 : s/\(\S*\)^I\(\S*\)/\2^I\1 // 将数据类型放到属性名的前面
本文介绍如何利用Vim编辑器快速从数据库字段生成EJB(Enterprise JavaBeans)。面对含有大量字段的数据表,手动编写EntityBean将非常耗时。通过Vim的一系列巧妙操作,如宏记录、正则替换等,可以高效地转换字段信息。
517

被折叠的 条评论
为什么被折叠?



