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