任务: 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 // 将数据类型放到属性名的前面