根据java数据源生成oralce建表ddl
时间: 2023-10-11 17:13:00 浏览: 161
生成 Oracle 建表 DDL 的步骤如下:
1. 创建数据源并连接到数据库。
2. 获取数据库元数据信息,包括表名、列名、数据类型、长度、精度等。
3. 根据元数据信息,生成建表语句。
4. 将建表语句输出到文件或者直接执行。
下面是一个示例代码,可以根据该代码生成 Oracle 建表 DDL:
```java
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class OracleDDLGenerator {
public static void main(String[] args) {
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String username = "username";
String password = "password";
String schema = "schema_name";
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, username, password);
DatabaseMetaData meta = conn.getMetaData();
ResultSet tables = meta.getTables(null, schema, null, new String[] { "TABLE" });
while (tables.next()) {
String tableName = tables.getString("TABLE_NAME");
System.out.println("Table: " + tableName);
ResultSet columns = meta.getColumns(null, schema, tableName, null);
StringBuilder sb = new StringBuilder();
sb.append("CREATE TABLE ").append(tableName).append(" (");
while (columns.next()) {
String columnName = columns.getString("COLUMN_NAME");
String typeName = columns.getString("TYPE_NAME");
int columnSize = columns.getInt("COLUMN_SIZE");
int decimalDigits = columns.getInt("DECIMAL_DIGITS");
sb.append(columnName).append(" ").append(typeName).append("(").append(columnSize);
if (decimalDigits > 0) {
sb.append(",").append(decimalDigits);
}
sb.append("),");
}
sb.deleteCharAt(sb.length() - 1);
sb.append(");");
System.out.println(sb.toString());
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
```
其中,`url`、`username`、`password` 分别是数据库连接的 URL、用户名、密码,`schema` 是数据库的 schema 名称。可以根据实际情况修改这些参数。
该程序会获取数据库中所有表的元数据信息,并输出对应的建表语句。可以将输出结果保存到文件中,或者直接执行。
阅读全文