Java 无法创建数据库jdbc

Java 无法创建数据库jdbc,java,mysql,jdbc,Java,Mysql,Jdbc,我试图用java jdbc创建一个数据库,并使用一个方法,所以我将数据库的名称类型字符串作为参数传递给数据库,但我面临的问题是,您的SQL语法中有一个错误;检查与MySQL服务器版本相对应的手册,以获得第1行使用near代数的正确语法 使用createDbStat.SetString时,名称;它将创建如下查询: CREATE DATABASE IF NOT EXISTS 'databasename' //----------------------------^____________^ 这是

我试图用java jdbc创建一个数据库,并使用一个方法,所以我将数据库的名称类型字符串作为参数传递给数据库,但我面临的问题是,您的SQL语法中有一个错误;检查与MySQL服务器版本相对应的手册,以获得第1行使用near代数的正确语法

使用createDbStat.SetString时,名称;它将创建如下查询:

CREATE DATABASE IF NOT EXISTS 'databasename'
//----------------------------^____________^
这是一个错误的语法,正确的应该是:

CREATE DATABASE IF NOT EXISTS databasename
要解决您的问题,您只需使用:

String createDbSql = String.format("CREATE DATABASE IF NOT EXISTS `%s`", name);
//                                                                ^^^^
PreparedStatement createDbStat = connection.prepareStatement(createDbSql);
//createDbStat.setString(1,name); no need for this
createDbStat.executeUpdate();
出于安全原因 出于安全原因,为了避免SQL注入,请确保数据库名称与以下内容匹配:

if(name.matches("^[a-zA-Z_][a-zA-Z0-9_]*$")){
   //Correct name
}
有关更多详细信息,请在使用createDbStat.setString1,name;它将创建如下查询:

CREATE DATABASE IF NOT EXISTS 'databasename'
//----------------------------^____________^
这是一个错误的语法,正确的应该是:

CREATE DATABASE IF NOT EXISTS databasename
要解决您的问题,您只需使用:

String createDbSql = String.format("CREATE DATABASE IF NOT EXISTS `%s`", name);
//                                                                ^^^^
PreparedStatement createDbStat = connection.prepareStatement(createDbSql);
//createDbStat.setString(1,name); no need for this
createDbStat.executeUpdate();
出于安全原因 出于安全原因,为了避免SQL注入,请确保数据库名称与以下内容匹配:

if(name.matches("^[a-zA-Z_][a-zA-Z0-9_]*$")){
   //Correct name
}

有关详细信息,请阅读此

您不能将参数1绑定到数据库名称- 在这种情况下,必须使用字符串连接

你的问题也类似于


无法将参数1绑定到数据库名称- 在这种情况下,必须使用字符串连接

你的问题也类似于