java - 如何在mysql服务器中动态分配表名

标签 java mysql jdbc netbeans dynamic-tables

我正在尝试在 mysql 中动态创建表并使用用户提供的电子邮件地址为其分配名称。但是每当我尝试动态分配表名称时,它都会显示错误,并且我不知道有任何其他方法来满足我的要求。

这是我编写的代码

String TableName = Email.getText();
try {

    String myTableName = "CREATE TABLE '" + TableName + "' "
            + "(id INTEGER not NULL, "
            + " first VARCHAR(255), "
            + " last VARCHAR(255), "
            + " age INTEGER, "
            + " PRIMARY KEY ( id ))";;

    Class.forName(m.RegisterationString);
    java.sql.Connection con;
    con = DriverManager.getConnection(m.URL, m.UserName, m.Password);
    Statement State = con.createStatement();
    //This line has the issue
    State.executeUpdate(myTableName);
    System.out.println("Table Created");
}

最佳答案

在MySQL中,表的名称不应该在''之间,它可以在:

String myTableName ="CREATE TABLE `" + tableName + "`"
//--------------------------------^-----------------^
<小时/>

注意为了保持良好的习惯,不要以大写字母开头变量名称,例如 StateTableNameEmail

关于java - 如何在mysql服务器中动态分配表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45478343/

相关文章:

java - 获取Set中的多个连接数据

mysql - 本地服务器上的数据库 url

maven - ClassNotFoundException 与 com.mysql.cj.jdbc.Driver、MySQL 连接器和 IntelliJ IDEA

java - JMX 和 Tomcat : create and use MBeans in a servlet

java - 静态函数和异常

java - 使用 android 获取 JSON 值

Mysql如何从一个表中选择列值不是X和Y的所有记录

java - Graal native 图像中缺少属性文件

php - 从 select 语句中查找重叠时间

mysql - 对将日期字段与文字进行比较感到困惑