Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java编写用于MySQL的CREATETABLE语句,其中表的名称是字符串?_Java_Mysql - Fatal编程技术网

如何使用Java编写用于MySQL的CREATETABLE语句,其中表的名称是字符串?

如何使用Java编写用于MySQL的CREATETABLE语句,其中表的名称是字符串?,java,mysql,Java,Mysql,我的问题很简单。我只是想知道如何使用Java语句为MySQL编写CREATETABLE语句,其中表的名称是字符串 我知道如何使用Java插入字符串值作为冒号的值。我试过那种方法,但做不到。我将向您展示我的代码: String table = "CREATE TABLE table_name'" + "(SL. No INT not NULL AUTO_INCREMENT, " +

我的问题很简单。我只是想知道如何使用Java语句为MySQL编写CREATETABLE语句,其中表的名称是字符串

我知道如何使用Java插入字符串值作为冒号的值。我试过那种方法,但做不到。我将向您展示我的代码:

String table = "CREATE TABLE table_name'" +
                               "(SL. No INT not NULL AUTO_INCREMENT, " +
                               " NAME VARCHAR(100), " + 
                               " YEAR INT not NULL, " + 
                               " IMDB INT not NULL)"; 
这里我想输入一个字符串变量,而不是表名。变量名为s2

现在,Insert into table值如下所示:

myStmt.executeUpdate("insert into l1(id,email,usname,pwd)value('"+(i)+"','"+s1+"','"+s2+"','"+s5+"')");

这里s1、s2、s5是字符串值。但该方法不适用于CREATETABLE,并且显示语法错误。正确的代码是什么?

您应该删除附加的
符号,并将SL的名称更改为其他名称。没有列,因此它看起来像

String table = "CREATE TABLE table_name" +
            "(slno INT not NULL AUTO_INCREMENT, " +
            " NAME VARCHAR(100), " +
            " YEAR INT not NULL, " +
            " IMDB INT not NULL)"
如果您的表字符串是正确的,您可以使用字符串上的replace方法或只使用函数为每个表使用新名称替换表_名称

public static String getCreateTableQuery(String tableName) {
    String table = "CREATE TABLE table_name" +
            "(slno INT not NULL AUTO_INCREMENT, " +
            " NAME VARCHAR(100), " +
            " YEAR INT not NULL, " +
            " IMDB INT not NULL)";

    String createTableWithNewNameQuery = table.replaceFirst("table_name'", tableName);
    return createTableWithNewNameQuery;
}

“CREATE TABLE_name'”+
这里有一个不需要的单引号。您应该使用准备好的语句来避免SQL注入。您可以像处理插入字符串一样处理表字符串。