如何在Java中动态创建表定义?

时间:2014-02-20 03:48:01

标签: java mysql jdbc

我正在尝试在java中创建一个MySql create table语句。然而,我面临的挑战是我的表的列名存储在用户输入的字符串数组中。如果我知道列名,那么直接运行,但这次我试图根据我在String数组中收到的数据动态创建一个表

如何将其动态添加到create table语句中?任何帮助/提示?

下面的创建表是静态的。

    static String[] StopNamesForDB;

    Set<String> set = new LinkedHashSet<String>(StopNames);
    StopNamesForDB = new String[set.size()];

        for (String string : set) {


            StopNamesForDB[i] = string;
            i++;
        }


    String sql = "CREATE TABLE Route3 "+
              "(id INTEGER not NULL, " + 
              " first VARCHAR(255), " +
              " last VARCHAR(255), " + 
              " age INTEGER, " +
              " PRIMARY KEY ( id ))";
     stmt.executeUpdate(sql);

1 个答案:

答案 0 :(得分:0)

     StringBuilder sql = new StringBuilder();

     sql.append("create table route3(");

     for(String name : StopNamesForDB)
     {
         sql.append(name).append(",");
     }

     sql.append("PRIMARY KEY (").append(StopNamesForDB[0]).append(")");

     sql.append(")");

     stmt.executeUpdate(sql.toString());