可将数据库表字段转换为Java代码驼峰字段SQL的实现

简介: 经常要将数据库表字段映射到实体对象,除了逆向工程,还可以通过SQL的方式将表字段列转换为Java代码驼峰字段。

通过SQL的方式将表字段列转换为Java代码驼峰字段的SQL脚本:
select colName,case when line=0 then colName else head||upper end field from
(
select lower(column_name) as colName, instr(lower(column_name),'_') line,
substr(lower(column_name),0,instr(lower(column_name),'_')-1) head,
replace(initcap(substr(lower(column_name),instr(lower(column_name),'_')+1)),'_','') upper
from user_tab_columns where lower(table_name) = 'XXX'
);

生成java代码:
select colName,case when line=0 then dataType || colName || ';' else dataType || head||upper ';' end field from
(
select lower(column_name) as colName, instr(lower(column_name),'_') line,
substr(lower(column_name),0,instr(lower(column_name),'_')-1) head,
replace(initcap(substr(lower(column_name),instr(lower(column_name),'_')+1)),'_','') upper,
case when data_type = 'NUMBER' then 'private Integer ' when data_type='VARCHAR2' then 'private String ' when data_type = 'TIMESTAMP(0)' then 'private DateTime ' else data_type end dataType
from user_tab_columns where lower(table_name) = 'XXX'
);

生成java代码包括列注释:

select colName,

   '/**' || comments || '*/' || chr(9) || (case
     when line = 0 then
      dataType || colName || ';'
     else
      dataType || head || upper ';'
   end) field,
   comments

from (select lower(t1.column_name) as colName,

           instr(lower(t1.column_name), '_') line,
           substr(lower(t1.column_name),
                  0,
                  instr(lower(t1.column_name), '_') - 1) head,
           replace(initcap(substr(lower(t1.column_name),
                                  instr(lower(t1.column_name), '_') + 1)),
                   '_',
                   '') upper,
           case
             when t1.data_type = 'NUMBER' then
              'private Integer '
             when t1.data_type = 'VARCHAR2' then
              'private String '
             when t1.data_type = 'TIMESTAMP(0)' then
              'private DateTime '
             else
              t1.data_type
           end dataType,

t2.comments

      from user_tab_columns t1
      left join user_col_columns t2 on t1.table_name = t2.table_name
                                   and t1.column_name = t2.column_name
     where lower(t1.table_name) = 'XXX');
相关文章
|
16天前
|
SQL 关系型数据库 MySQL
MySQL日期函数的SQL代码示例和使用场景
MySQL日期函数的SQL代码示例和使用场景
12 0
|
19天前
|
SQL 数据库
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
15 0
|
19天前
|
SQL 网络协议 Java
【Java+SQL Server】前后端连接小白教程
【Java+SQL Server】前后端连接小白教程
8 0
|
20天前
|
设计模式 Java 程序员
优雅整洁的 Java 代码命名技巧,风之极·净化
优雅整洁的 Java 代码命名技巧,风之极·净化
88 0
|
21天前
|
Java
用Java编写一个代码实现计算器功能
【1月更文挑战第17天】用Java编写一个代码实现计算器功能
15 0
|
22天前
|
Java PHP
php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)
php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)
php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)
拿php写个原生增删改查案例出来(提供全部代码+sql)
拿php写个原生增删改查案例出来(提供全部代码+sql)
拿php写个原生增删改查案例出来(提供全部代码+sql)
|
22天前
|
Java
数据结构 AVL树概念以及实现插入的功能(含Java代码实现)
数据结构 AVL树概念以及实现插入的功能(含Java代码实现)
26 0
|
22天前
|
Java API 数据处理
如何在Java中使用Lambda表达式提高代码效率
Lambda表达式是Java 8的新特性,它可以大大提高代码的效率和可读性。本文将介绍Lambda表达式的基本语法和常见用法,让您轻松掌握这一高效工具。
|
25天前
|
设计模式 算法 Java
Dating Java8系列之通过行为参数化传递代码
Dating Java8系列之通过行为参数化传递代码
18 0

热门文章

最新文章