• 使用SQL脚本将表字段生成实体类属性VO


    数据建模之后生成相应的数据库,在开发编程中经常会碰到一件很麻烦的事情,那就是要将表写成相应的实体类,对于开发者来说一个字段一个字段的比对、复制、粘贴……这简直是一件让人抓狂的事情,现在特地将相应的脚本整理出来,已在oracle中测试。脚本如下:

    select 'private ' ||DECODE(T.DATA_TYPE,
                  'VARCHAR2',
                  'String ',
                  'CHAR',
                  'String ',
                  'DATE',
                  'Date ',
                  'NUMBER',
                  'int ',
                  'LONG',
                  'Long',
                  'FLOAT',
                  'Float ' )|| lower(t.COLUMN_NAME) ||';  //'||c.comments
      from user_tab_cols t,user_col_comments c 
     where t.TABLE_NAME='TABLENAME' and c.table_name=t.TABLE_NAME and c.column_name=t.COLUMN_NAME ORDER BY T.COLUMN_ID;

    其中TABLENAME为相应表名。其效果如 图:

     接下来,全列选择复制,然后在相应实体类中粘贴,再相应得使用开发平台中的快速生成代码工具。一个实体类秒秒钟搞定!!!

    补充:考虑到经常用myeclipse生成hibernate实体,且生成规则是碰到有下划线的的时候就不好保证命名的一致性,下面的脚本是去掉下划线,并且下划线后面的第一个字母大写,符合代码的驼峰编写规范:

    select 'private ' || DECODE(T.DATA_TYPE,
                                'VARCHAR2',
                                'String ',
                                'CHAR',
                                'String ',
                                'DATE',
                                'Date ',
                                'NUMBER',
                                'int ',
                                'LONG',
                                'Long',
                                'FLOAT',
                                'Float ') ||
           substr(lower(t.COLUMN_NAME),
                  0,
                  case
                    when instr(lower(t.COLUMN_NAME), '_') > 0 then
                     instr(lower(t.COLUMN_NAME), '_') - 1
                    else
                     length(lower(t.COLUMN_NAME))
                  end) || REGEXP_REPLACE(INITCAP(substr(lower(t.COLUMN_NAME),
                                                        case
                                                          when instr(lower(t.COLUMN_NAME), '_') > 0 then
                                                           instr(lower(t.COLUMN_NAME), '_') + 1
                                                          else
                                                           length(lower(t.COLUMN_NAME)) + 1
                                                        end,
                                                        length(lower(t.COLUMN_NAME)))),
                                         '(w)[_]',
                                         '1') || ';  //' || c.comments
      from user_tab_cols t, user_col_comments c
     where t.TABLE_NAME = 'TABLENAME'
       and c.table_name = t.TABLE_NAME
       and c.column_name = t.COLUMN_NAME
     ORDER BY T.COLUMN_ID;
  • 相关阅读:
    杭州西郊千湖岛-天下第一秀水
    windows phone7 豆瓣FM
    wp7 中 HubTile控件自定义大小。
    wp7 HubTile
    Windows Phone 7之XNA游戏:重力感应
    WP7:模拟开始屏幕Tile漂动效果
    windows 8 项目
    手把手教你 用 wpf 制作metro ProgressRing (Windows8 等待动画)
    windows8 开发教程 教你制作 多点触控Helper可将任意容器内任意对象进行多点缩放
    仿windows8 开始菜单 实现HubTileBase 以及仿鲜果联播实现 PulsingTile(脉冲磁贴)
  • 原文地址:https://www.cnblogs.com/smashed/p/3977063.html
Copyright © 2020-2023  润新知