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