您的位置:首页 > 其它

利用hibernate生成建表语句

2017-07-11 00:00 232 查看
##序
不使用jpa的注解,还是想利用hibernate已经做好的适配去生成建表的sql。

##maven

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.11.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.11.Final</version>
</dependency>

##实例

Oracle10gDialect dialect = new Oracle10gDialect();
DatabaseMetadata databaseMetadata = new DatabaseMetadata(dataSource.getConnection(),dialect, null);
TableMetadata tableMetadata = databaseMetadata.getTableMetadata("demotable", "demoschema", "", false);
Field field = FieldUtils.getField(TableMetadata.class,"columns",true);
Map<String,ColumnMetadata> columns = (Map<String, ColumnMetadata>) field.get(tableMetadata);

Table table = new Table("demotable");
columns.values().stream().forEach(e -> {
Column column = new Column(e.getName());
column.setNullable("YES".equals(e.getNullable()));
column.setSqlType(e.getTypeName());
table.addColumn(column);
});
System.out.println("table.sqlCreateString(dialect,null,null,"demoschema"));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Hibernate