最近用SpringBoot重构一个PHP项目,用JPA操作MySQL数据库,由于要维持原来的表结构,应用中要把许多表转化为Java类,一般的ORM框架可以很方便地把Java类映射为关系数据库表 ,但这里显然是它的逆过程,这个好像没有现成的工具和框架,难道要对着表一个字段一个字段地写?
要知道,数据库有几十张表,每张表都有很多字段,一个个写还真得花不少精力,而且手写还很容易出错。
最好的办法当然是用程序实现自动转换了,这里我们用SQL来实现这种转换。
SQL实现表转Java
基本思路就是根据表名查询出列名,用concat函数拼接修饰符得到Java对象属性列表:
SELECT concat('public ', CASE
WHEN data_type IN ('varchar', 'char', 'text') THEN 'String'
WHEN data_type IN ('int', 'tinyint') THEN 'Integer'
WHEN data_type IN ('bigint') THEN