关系数据库表快速转Java对象

最近用SpringBoot重构一个PHP项目,用JPA操作MySQL数据库,由于要维持原来的表结构,应用中就要把许多表转化为Java。

一般的ORM框架可以很方便地把Java类映射为数据库表,但这里显然是它的逆过程,这个好像没有现成的工具和框架,难道我还要对着表一个字段一个字段地写?

要知道,数据库有上百张表,每个表都有很多字段,一个个写还真得花不少精力,而且手写很难保证每个字段名一一对应,一旦出错读写数据就可能出问题,而且还可能影响其他应用。

SQL实现表转Java

最好的办法当然是用程序实现自动转换了,这里我们用SQL来实现这种转换。

基本思路就是根据表名查询出列名,用concat函数拼接修饰符得到Java对象属性列表:

运行结果就是转换好的Java对象属性了,直接复制到类中即可。

封装成存储过程

把上面SQL语句封装成存储过程,使用的时候更方便

调用MySQL存储过程:

循环遍历所有表

数据库中有很多张表,如果我们不想一次次输入表名,通过循环遍历可以一次性得到所有结果。

先查出数据库中所有表名:

然后把结果集通过游标和while循环遍历所有表:

最后,此方法除了可以得到Java类,理论上稍作修改也可以生成Python、PHP、go以及Protobuf 的DSL等多种语言代码。

本文SQL源码:

https://github.com/yunTerry/SQL2Java

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180118G0QQDZ00?refer=cp_1026

扫码关注云+社区