【问题标题】:Creating table with values in Java Derby在 Java Derby 中创建具有值的表
【发布时间】:2012-06-16 04:01:05
【问题描述】:

我正在尝试使用字符串数组中的值创建一个表。我正在寻找最好的方式来循环它而不必发送一堆查询。这就是我所拥有的,但显然循环不起作用。有人有更好的方法来执行此操作吗?

    public static void createTable(String table, String[] values) throws SQLException{
    try {
        Class.forName(driver);
        conn = DriverManager.getConnection(connectionURL);
        Statement state = conn.createStatement();

        for(int x = 0; x < values.length; x++){

            state.execute("CREATE TABLE" + table + " ( " + values[x] + " );");
        }
        conn.commit();

    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
        try {
            conn.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

【问题讨论】:

  • 这对循环问题没有帮助。不过很好抓。这可能会导致问题。谢谢!有人对循环这个有什么想法吗?
  • 我会检查的。感谢您的建议。

标签: java sql loops derby


【解决方案1】:

连接 Values 数组的元素。

StringBuilder sb=new StringBuilder();
sb.append("CREATE TABLE " + table + " ( ");

 for (int i = 0; i < values.length; i++) {
   sb.append(values[i]);
   if (i >= values.length-1) {break;}
  sb.append(",");
 }
 sb.append(" )");
 state.execute(sb.toString());

【讨论】:

  • 因此,即使该循环表明它每次都会执行“CREATE TABLE”,但它不应该对数据库造成问题,还是只是通过错误?
  • 我似乎也遇到了一个我似乎无法理解的奇怪错误。
  • 现在说得通了!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多