数据库表生成实体类文件字段代码

数据库表生成实体类文件字段代码

代码编写时,经常创建完表后,就是根据表里的字段创建对应的实体类,这个操作通常比较繁琐,此文是不依赖插件,借用sql脚本生成实体类代码,这里借用oracle举例,同时奉上mysql脚本实例。

1.创建测试表

-- Create table
create table T_TEST
(
  "c_test1" VARCHAR2(1),
  "d_test1" date
);
-- Add comments to the columns 
comment on column T_TEST."c_test1"
  is '测试String';
comment on column T_TEST."d_test1"
  is '测试日期';

2 执行脚本

2.1 oracle脚本

select '		/**
* ' || ucc.comments || '
*/
private ' || case
          when utc.data_type = 'DATE' then
           'Date'
          else
           'String'
        end || ' ' || ucc.column_name || ';' col
  from user_col_comments ucc
  left join user_tab_columns utc
    on ucc.column_name = utc.column_name
   and ucc.table_name = utc.table_name
 where ucc.table_name = 'T_TEST'

执行完脚本(注意表名T_TEST大写),复制查询出的结果就是代码,这里oracle有个问题就是它自动的在前后加上双引号,可以复制到idea里面,将所有的双引号替换掉,还有另外一个问题就是这里没有将下划线转驼峰,尝试过sql解决,最终失败了,其实放在idea或者notePad++里,用正则替换更加简单,最后如果格式有问题,在idea里面格式化一样就完美了。

查询结果

"		/**
* 测试String
*/
private String c_test1;"
"		/**
* 测试日期
*/
private Date d_test1;"

idea下划线转驼峰

正则:(\w*)(_)(\w*)
 
替换:$1\u$3

替换后结果

    /**
     * 测试String
     */
    private String cTest1;
    /**
     * 测试日期
     */
    private Date dTest1;

2.2 mysql脚本

	SELECT
	concat(
		'		/**
		* ',
		concat( t.COLUMN_COMMENT ),
		'
		*/
    private ',
		concat( CASE WHEN t.data_type = 'datetime' THEN 'Date' WHEN t.data_type = 'date' THEN 'Date'  
		WHEN t.data_type = 'decimal' THEN 'BigDecimal' ELSE 'String' END ),
		' ',
		concat( t.column_name ),
		';'  
) col
FROM
	information_schema.COLUMNS t 
WHERE
	t.TABLE_NAME = '{你的数据库表名小写}'
	AND t.table_schema = '{你的数据库实例名小写}' 
ORDER BY
	t.ORDINAL_POSITION
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值