`
yadsun
  • 浏览: 181383 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Vim实战——利用vim生成EntityBean(上)

阅读更多

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

 

(下)

5
0
分享到:
评论
7 楼 xu_ch 2009-08-14  
6 楼 yadsun 2009-08-12  
dkmilan 写道
这么做生成的bean中的属性还都是varchar/number等数据库的数据类型。
应该继续替换,把这些number(\d+)都换成int之类的吧

是的啊,因为太长写不下了,所以分成了两篇,在Vim实战——利用vim生成EntityBean(下) 中我有写的
5 楼 dkmilan 2009-08-12  
这么做生成的bean中的属性还都是varchar/number等数据库的数据类型。
应该继续替换,把这些number(\d+)都换成int之类的吧
4 楼 tedeyang 2009-08-10  
yadsun 写道
tedeyang 写道
辛苦辛苦,这么多贴图还要测试。
1.不过实际中遇到这种重用度很高的需求,我们一般是做代码生成器,从jdbc里抽信息。
2.或者把整个过程写一个shell,或者用sed。
3.不过用jEdit的话其实很简单,因为jEdit的替换是支持beanshell的,端的强大无比。
譬如可以这样写正则替换:
搜索   ^(.*)\s(.*)$
替换为 _1.subString(0,1).toUpperCase()+_1.subString(1)



1.怎么用代码生成器,能不能稍微讲一下?
2.我没在unix平台下做过开发所以不熟
3.我以前都是在UltraEdit用正则,不过我是分好几步来的,没有你这么干净利落
呵呵,其实不管什么方法自己用的熟了顺手了就好,毕竟都是为了方便开发嘛

1.用JDBC查询可以得到数据库表的元信息(也就是表名/字段名称/字段定义/注释等等),ResultSet.getMetaData()大概是这样?好久不写记不太清楚了。根据这个核心API再配合velocity等模板引擎可以自动生成指定表的对应java文件,做一个通用的代码生成器是很容易的。hibernate,ibatis等orm/sqlmap框架都有大量对应的代码生成器,我也写过一个,自己内部使用使用。有的用ant运行,有的有强大的gui界面,有的命令行,有的作为IDE插件使用,太多了。
2.sed/awk我其实也不熟,哈哈。
3.UE我常用,遇到这种情况我可能会启动列模式,配合macro写写,懒得去想怎么用regex,因为UE的regex有ultraedit,unix等三种,都和java有些区别,烦!
比较佩服你的努力,我现在懒得宣传这个,疾呼那个了,心态老了。
3 楼 yadsun 2009-08-09  
tedeyang 写道
辛苦辛苦,这么多贴图还要测试。
1.不过实际中遇到这种重用度很高的需求,我们一般是做代码生成器,从jdbc里抽信息。
2.或者把整个过程写一个shell,或者用sed。
3.不过用jEdit的话其实很简单,因为jEdit的替换是支持beanshell的,端的强大无比。
譬如可以这样写正则替换:
搜索   ^(.*)\s(.*)$
替换为 _1.subString(0,1).toUpperCase()+_1.subString(1)



1.怎么用代码生成器,能不能稍微讲一下?
2.我没在unix平台下做过开发所以不熟
3.我以前都是在UltraEdit用正则,不过我是分好几步来的,没有你这么干净利落
呵呵,其实不管什么方法自己用的熟了顺手了就好,毕竟都是为了方便开发嘛
2 楼 lijunjie 2009-08-09  
看得出楼主vim很厉害
1 楼 tedeyang 2009-08-09  
辛苦辛苦,这么多贴图还要测试。
1.不过实际中遇到这种重用度很高的需求,我们一般是做代码生成器,从jdbc里抽信息。
2.或者把整个过程写一个shell,或者用sed。
3.不过用jEdit的话其实很简单,因为jEdit的替换是支持beanshell的,端的强大无比。
譬如可以这样写正则替换:
搜索   ^(.*)\s(.*)$
替换为 _1.subString(0,1).toUpperCase()+_1.subString(1)

相关推荐

    CodeBlocks 的 Vim 插件——cbVide

    CodeBlocks 的 Vim 插件——cbVide,codeblocks 16.01,wxWidgets 2.8.12,tgm-gcc-32 5.1.0

    我的一个vim脚本——增强closetag.vim自动闭合功能

    为了充分利用`closetag.vim`,你需要了解一些基本的使用技巧和快捷键: - **开启/关闭插件功能**:在Vim中,可以使用`:ClosetagEnable`和`:ClosetagDisable`命令来临时启用或禁用插件功能。 - **自定义快捷键**:...

    vim教程——学习Linux的优质资料

    **vim教程——学习Linux的优质资料** 在深入探讨Linux世界时,掌握Vim编辑器是不可或缺的技能之一。Vim,全称为“Vi IMproved”,是经典的Vi编辑器的增强版,以其高效、灵活和强大的功能深受程序员和系统管理员的...

    vim配置文件——vim配置教程

    vim配置文件——vim配置教程

    vimd-design——最新内核_Qz_blankooq_vimd.ahk_

    在AutoHotkey这一强大平台上,vimd设计实现了对最新内核的充分利用,确保了程序的稳定性和兼容性。AutoHotkey是一种开源的脚本语言,允许用户创建自定义的快捷键、热字符串和各种自动化任务。vimd.ahk和class_vimd....

    vim环境的配置——模仿sourceInsight功能的Tlist

    Vim是一款强大的文本编辑器,深受程序员喜爱,尤其在Linux环境下。Tlist是Vim的一个插件,它能提供类似于Source Insight的功能,帮助用户在代码导航方面提高...希望这个配置教程能帮助你更好地利用Vim进行软件开发。

    普通人的编辑利器——VIM

    普通人的编辑利器——VIM_(for_windows)

    Vim实战:使用Vim实现图像分类任务

    Vim作为一种高效的视觉模型,具有计算和内存效率高、处理高分辨率图像能力强等优点。这使得Vim成为下一代视觉基础模型的理想选择。 本文使用Vim模型实现图像分类任务,模型选择最小的vim_tiny_patch16_224_...

    程序员的编辑器——VIM(zz) - 饮水思源

    - “程序员的编辑器——VIM”可能是对VIM的特定使用场景或者进阶技巧的讲解。 7. **自定义配置**: VIM允许用户在~/.vimrc文件中定制个人的配置,包括快捷键、颜色主题、自动完成等设置。 8. **学习曲线**: ...

    我的Vim,我做主——给初学者准备的礼物

    1. Vim的安装与启动:初学者通常需要知道如何在不同操作系统(如Linux、macOS或Windows)上安装Vim,并学会如何启动编辑器。 2. Vim的基本模式:Vim有三种主要模式:正常模式、插入模式和可视模式。文章可能详细...

    Vim 8.2 PDF 中文参考手册(最新)

    ### Vim 8.2 中文参考手册核心知识点详解 #### 一、Vim 8.2 概述 - **版本信息**:本手册适用于 Vim 8.2 版本,发布日期为 2020 年 1 月 7 日,最近更新时间为 2019 年 12 月。 - **手册来源**:手册来源于 GitHub...

    vim-configure.tar.gz_vim_vim_configure

    "vim-configure.tar.gz_vim_vim_configure" 是一个包含了 Vim 配置文件的压缩包,旨在帮助用户优化 Vim 的使用体验,提供自动提示、补全功能以及代码高亮等特性。 在 Vim 中配置这些功能,可以使编辑效率大幅提升。...

    vim(gvim)插件——PHP语言自动补全

    在IT行业中,文本编辑器是开发者的重要工具,而Vim作为一个功能强大的命令行文本编辑器,因其高效的操作方式和丰富的可扩展性深受程序员喜爱。GVim则是Vim的图形界面版本,同样支持各种插件来增强其功能。本篇文章...

    用vim写程式快n倍——Linux

    ### 使用Vim编写程序效率倍增 —— Linux #### 概述 Vim(Vi Improved)作为一款功能强大的文本编辑器,在Linux系统中扮演着极其重要的角色。掌握Vim不仅能够提升开发效率,还能帮助程序员更好地适应Linux环境。...

    vim plugin vim changes to ide update

    【vim plugin vim changes to ide update】这一主题表明我们将探讨如何使用Vim插件来提升其作为集成开发环境(IDE)的功能。在这个过程中,我们将重点分析新增的三个插件:wintagexplorer.vim、echofunc.vim以及vimrc...

    Vim实用技巧 文字版 完整全本 pdf

    Vim,全称Vi IMproved,是一款强大的文本编辑器,深受程序员和系统管理员的喜爱。它在传统的Vi编辑器基础上进行了大量的改进和扩展,提供了丰富的功能和高度可定制性。《Vim实用技巧》这本书旨在帮助用户掌握Vim的...

    笨方法学 Vim Script

    《笨方法学 Vim Script》是一本专为 Vim 用户编写的指南,旨在帮助用户深入理解并掌握 Vim 的内置脚本语言——Vim Script。通过实践和探索,你可以逐步提升在 Vim 编辑器中的效率和定制化能力。Vim Script 是 Vim ...

    Pro Vim英文版

    **Vim——高级文本编辑器的艺术** Vim,全称Vi IMproved,是Bill Joy在1976年创建的Vi编辑器的增强版本。它是一款功能强大的、高度可配置的文本编辑器,广泛用于程序员、系统管理员以及任何对效率有高要求的用户。...

Global site tag (gtag.js) - Google Analytics