oracle 利用sql生成hibernate配置文件以及VO

--1、将表中字段名转换成VO属性名
SELECT 'private ' || COMM || ' ' || COL || '; //' || COMMENTS
  FROM (SELECT F_REP_COL_UPER(A.COLUMN_NAME) COL,
               B.COMMENTS,
               CASE
                 WHEN A.DATA_TYPE IN ('CHAR', 'VARCHAR2') THEN
                  'String'
                 WHEN A.DATA_TYPE = 'NUMBER' AND A.DATA_SCALE > 0 THEN
                  'Double'
                 WHEN A.DATA_TYPE = 'NUMBER' AND A.DATA_SCALE = 0 THEN
                  'Long'
                 WHEN A.DATA_TYPE = 'DATE' THEN
                  'Date'
               END COMM
          FROM USER_TAB_COLUMNS A, USER_COL_COMMENTS B
         WHERE A.TABLE_NAME = '表名'
           AND A.TABLE_NAME = B.TABLE_NAME
           AND A.COLUMN_NAME = B.COLUMN_NAME
         ORDER BY A.COLUMN_ID) AA;

--2、生成VO对应的hibernate.xml配置文件
SELECT DECODE(DATA_TYPE,
              'NUMBER',
              '<property name="' || NME || '" type="' || TYPE_NME ||
              '"><column name="' || COLUMN_NAME || '" precision="' ||
              DATA_PRECISION || '" scale="' || DATA_SCALE ||
              '" /></property>',
              '<property name="' || NME || '" type="' || TYPE_NME ||
              '"><column name="' || COLUMN_NAME || '" length="' ||
              DATA_LENGTH || '" /></property>')
  FROM (SELECT T.COLUMN_NAME,
               F_REP_COL_UPER(T.COLUMN_NAME) NME,
               T.DATA_LENGTH,
               T.DATA_PRECISION,
               T.DATA_SCALE,
               T.DATA_TYPE,
               CASE
                 WHEN T.DATA_TYPE IN ('CHAR', 'VARCHAR2') THEN
                  'java.lang.String'
                 WHEN T.DATA_TYPE = 'NUMBER' AND T.DATA_SCALE > 0 THEN
                  'java.lang.Double'
                 WHEN T.DATA_TYPE = 'NUMBER' AND T.DATA_SCALE = 0 THEN
                  'java.lang.Long'
                 WHEN T.DATA_TYPE = 'DATE' THEN
                  'java.util.Date'
               END TYPE_NME
          FROM USER_TAB_COLUMNS T
         WHERE T.TABLE_NAME = '表名'
         ORDER BY T.COLUMN_ID) AA;
 

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值