我在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)
是否存在已存在的东西,这有什么用呢?
答案 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中的声明性表继承没有常见的模式。