从SQL DDL语句创建Java对象

时间:2014-08-08 16:57:27

标签: java sql parsing sybase

我在java中寻找一些能够解析SQL DDL语句的现有库,它能够做到这一点:

说我有一张表如下:

create table emp
(
  name varchar(20),
  empid int,
  date_of_joining date
);

然后,我想要一个具有以下构造函数的类:

Emp(String name, int empid, Date date_of_joining)

现在,如果有人按如下方式更改表的架构:

alter table emp 
add salary double;

Emp(String name, int empid, Date date_of_joining, double salary)

alter table emp 
modify empid varchar(6);

Emp(String name, String empid, Date date_of_joining, double salary)

是否存在已存在的东西,这有什么用呢?

1 个答案:

答案 0 :(得分:1)

使用Hibernate Tools逆向工程。

它不会解析原始SQL文件,但可以连接到SQL数据库,并从架构中生成Java POJO。

http://docs.jboss.org/tools/4.1.0.Final/en/hibernatetools/html_single/index.html#refeng_codegen

它不会为您提供开箱即用的参数化构造函数,但您可以自定义其模板,或使用Lombok:

http://projectlombok.org/features/Constructor.html

坦率地说,我会采用其他方式。从Java POJO更新数据库模式。为什么?数据库表继承。使用JPA很容易声明,但SQL中的声明性表继承没有常见的模式。