表名和对应的表中的字段信息都从数据表中动态获取
package com.table;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class createTable {
public static void main(String[] args){
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "root";
try {
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, user, password);
if (!conn.isClosed()) {
System.out.println("Succeeded connecting to the Database!");
Statement statement1 = conn.createStatement();
String sql1 = "select name from databasetable where id = 20";
ResultSet rs1 = statement1.executeQuery(sql1);
String name = null;
while (rs1.next()){
name = rs1.getString("name");
}
System.out.println("表名:"+name);
Statement statement2 = conn.createStatement();
String sql2 = "select * from dataitem where tableid = 20";
ResultSet rs2 = statement2.executeQuery(sql2);
String sqlstr = "create table "+name+"(";
while (rs2.next()){
sqlstr = sqlstr + rs2.getString("itemname")+" "+rs2.getString("itemtype")
+"("+rs2.getString("itemlongth")+")"+",";
}
String sql3 = sqlstr.substring(0,sqlstr.length()-1);
sqlstr = sql3 +")";
System.out.println("建表SQL:"+sqlstr);
Statement statement3 = conn.createStatement();
try{
boolean table = statement3.execute(sqlstr);
if (table){
System.out.println("失败");
}else{
System.out.println("成功");
}
}catch (Exception e){
System.out.println("表存在");
}
}
}catch (Exception e){
e.printStackTrace();
}
}
}