mysql读取表字段生成对应的java变量

根据MySQL数据库表字段,自动生成对应的Java实体类属性,包括不同数据类型的默认初始值,如String、BigDecimal、boolean等,并能生成SQL插入语句、setter方法、编辑窗格输入框、EasyUI表格列配置、MyBatis结果映射等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#读取表字段生成对应的java变量,无初始值

例:String column ;// 注释

SELECT 

CONCAT('private ',(CASE 

WHEN (DATA_TYPE='CHAR'||DATA_TYPE='VARCHAR'||DATA_TYPE='LONGVARCHAR') THEN 'String' 

WHEN (DATA_TYPE='NUMERIC'||DATA_TYPE='DECIMAL') THEN 'BigDecimal'

WHEN DATA_TYPE='BIT' THEN 'boolean'

WHEN (DATA_TYPE='TINYINT'||DATA_TYPE='SMALLINT'||DATA_TYPE='INTEGER'||DATA_TYPE='INT') THEN 'int'

WHEN DATA_TYPE='BIGINT' THEN 'long'

WHEN DATA_TYPE='REAL' THEN 'float'

WHEN DATA_TYPE='DOUBLE' THEN 'double'

WHEN DATA_TYPE='DATE' THEN 'Date'

WHEN (DATA_TYPE='DATE'||DATA_TYPE='TIME'||DATA_TYPE='datetime'||DATA_TYPE='TIMESTAMP') THEN 'Date'

ELSE '-------------'

END),' ',column_name,';// ',column_comment)

FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA='fish' AND TABLE_NAME='yy_dayreport' 

 

#读取表字段生成对应的java变量,有初始值

例:String column = "";// 注释

SELECT 

CONCAT('private ',(CASE 

WHEN (DATA_TYPE='CHAR'||DATA_TYPE='VARCHAR'||DATA_TYPE='LONGVARCHAR') THEN 'String' 

WHEN (DATA_TYPE='NUMERIC'||DATA_TYPE='DECIMAL') THEN 'BigDecimal'

WHEN DATA_TYPE='BIT' THEN 'boolean'

WHEN (DATA_TYPE='TINYINT'||DATA_TYPE='SMALLINT'||DATA_TYPE='INTEGER'||DATA_TYPE='INT') THEN 'int'

WHEN DATA_TYPE='BIGINT' THEN 'long'

WHEN DATA_TYPE='REAL' THEN 'float'

WHEN DATA_TYPE='DOUBLE' THEN 'double'

WHEN DATA_TYPE='DATE' THEN 'Date'

WHEN (DATA_TYPE='DATE'||DATA_TYPE='TIME'||DATA_TYPE='datetime'||DATA_TYPE='TIMESTAMP') THEN 'Date'

ELSE '-------------'

END),' ',column_name,' = ',(CASE 

WHEN (DATA_TYPE='CHAR'||DATA_TYPE='VARCHAR'||DATA_TYPE='LONGVARCHAR') THEN '""' 

WHEN (DATA_TYPE='NUMERIC'||DATA_TYPE='DECIMAL') THEN '0'

WHEN DATA_TYPE='BIT' THEN 'false'

WHEN (DATA_TYPE='TINYINT'||DATA_TYPE='SMALLINT'||DATA_TYPE='INTEGER'||DATA_TYPE='INT') THEN '0'

WHEN DATA_TYPE='BIGINT' THEN '0L'

WHEN DATA_TYPE='REAL' THEN '0f'

WHEN DATA_TYPE='DOUBLE' THEN '0.0'

WHEN DATA_TYPE='DATE' THEN 'null'

WHEN (DATA_TYPE='DATE'||DATA_TYPE='TIME'||DATA_TYPE='datetime'||DATA_TYPE='TIMESTAMP') THEN 'null'

ELSE '-------------'

END),';// ',column_comment)

FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA='fish' AND TABLE_NAME='yy_dayreport' 

 

#生成添加sql语句

#例:insert into (id,channelCode)values(#{id},#{channelCode})

SELECT 

CONCAT('insert into (',group_concat(column_name),') values (',group_concat(CONCAT('#{',column_name,'}')),')')

FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA='fish' AND TABLE_NAME='yy_dayreport' 

 

#生成对应的set语句:

#例:dayReportVo.setId(id);

SELECT 

CONCAT('dayReportVo.set',UPPER(LEFT(column_name,1)),right(column_name,LENGTH(column_name)-1),'(',column_name,');// ',column_comment)

FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA='fish' AND TABLE_NAME='yy_dayreport' 

 

 

#输出编辑窗格需要的列:

#例:

/*<div class="fitem">

<label>主键ID:</label>

<input name="id" class="easyui-textbox">

</div>*/

SELECT CONCAT('<div class="fitem">\n\t<label>',column_comment,':</label>\n\t<input name="',column_name,'" class="easyui-textbox">\n</div>') FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA='fish' AND table_name='yy_dayreport'

 

#输出easyui的列:

#例:{ field:'xzyh',sortable:true,title:'新增用户',width:fixWidth(0.2),resizable:true},

SELECT CONCAT('{ field:\'',column_name,'\',sortable:true,title:\'',column_comment,'\',width:fixWidth(0.2),resizable:true},') FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA='fish' AND table_name='yy_dayreport'

 

#输出mysql的集合列:

#例:<result column="id" jdbcType="BIGINT" property="id" />

SELECT CONCAT('<result column="',column_name,'" jdbcType="',upper(CASE 

WHEN (DATA_TYPE='CHAR'||DATA_TYPE='VARCHAR'||DATA_TYPE='LONGVARCHAR'||DATA_TYPE='BIT'||DATA_TYPE='INTEGER'||DATA_TYPE='BIGINT'||DATA_TYPE='DOUBLE') THEN DATA_TYPE

WHEN (DATA_TYPE='NUMERIC'||DATA_TYPE='DECIMAL'||DATA_TYPE='INT'||DATA_TYPE='TINYINT'||DATA_TYPE='SMALLINT') THEN 'INTEGER'

WHEN DATA_TYPE='REAL' THEN 'FLOAT'

WHEN (DATA_TYPE='DATE'||DATA_TYPE='TIME'||DATA_TYPE='datetime'||DATA_TYPE='TIMESTAMP') THEN 'DATE'

ELSE '-------------'

END),'" property="',column_name,'" />') FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA='fish' AND table_name='yy_monthreport';

 

 

#输出表中所有字段:

#例:id,sendUserId,receiveUserId,itemId,itemName,itemNum,crateTime

SELECT GROUP_CONCAT(column_name) FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA='fish' AND table_name='t_send_log';

#输出表中所有#{字段}:

#例:#{id},#{sendUserId},#{receiveUserId},#{itemId},#{itemName},#{itemNum},#{crateTime}

SELECT GROUP_CONCAT(CONCAT('#{',column_name,'}')) FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA='fish' AND table_name='t_send_log';

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值