【问题标题】:Java : Create Table in DatabaseJava:在数据库中创建表
【发布时间】:2014-09-05 14:36:01
【问题描述】:

我一直在尝试在数据库中创建一个表。该代码没有显示错误并且运行良好,但最终没有在数据库中创建表。请帮忙。

public void createTable(){

    try {

    String host = "jdbc:derby://localhost:1537/fypDB";
    String uname = "test";
    String pword = "test";
    Connection con = DriverManager.getConnection( host, uname, pword );
    Statement stmt = con.createStatement();

   //username is valid variable from main class 
    String SQL = "CREATE TABLE "+username+" (classId VARCHAR(255), "+"PRIMARY KEY ( classId ))";
    stmt.executeUpdate( SQL );
    System.out.println(SQL);

    } catch (SQLException err){
        System.out.println(err.getMessage());
    }
}

【问题讨论】:

  • 是否启用了自动提交?
  • 您不应该为每个用户创建一个表。有一个表,并使用户名成为该表中的一个字段。
  • 根据stackoverflow.com/questions/11962028/…,您缺少分号:String SQL = "CREATE TABLE "+username+" (classId VARCHAR(255), "+"PRIMARY KEY ( classId ));";
  • 在终端打印你的SQL并尝试直接在mysql上运行看看会发生什么。

标签: java mysql


【解决方案1】:

应该这样做

Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection con = DriverManager.getConnection("jdbc:derby://localhost:1537/fypDB", 
                                                  "yourUsername", "ypurPassword");
Statement stmt = con.createStatement();
stmt.execute( SQL );

不要忘记将derbyclient.jar 放在你的类路径中并关闭连接

【讨论】:

    猜你喜欢
    • 2013-10-01
    • 2013-10-01
    • 2023-03-18
    • 2011-12-18
    • 2021-08-17
    • 2012-08-15
    • 2013-05-14
    • 2014-12-26
    • 2012-04-09
    相关资源
    最近更新 更多