gpt4 book ai didi

java - 如何使用Java为MySQL创建新用户?

转载 作者:行者123 更新时间:2023-11-29 18:57:37 26 4
gpt4 key购买 nike

我想从 NetBeans 为 MySQL 数据库创建一个新用户,但我不知道它的核心代码。

我已经尝试过:

try {

String query = "CREATE USER = '?' @'localhost' IDENTIFIED BY = '?'; ";

con = DriverManager.getConnection(url, uname, pwd);
PreparedStatement pstmnt = con.prepareStatement(query);

pstmnt.setString(1, newUser[0]);
pstmnt.setString(2, newUser[3]);

pstmnt.execute();
pstmnt.close();

} catch (SQLException ex) {
ex.printStackTrace();
}

输出为:

java.sql.SQLException: 
Parameter index out of range (1 > number of parameters, which is 0).

我知道在 MySQL 中您可以使用以下命令创建新用户:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

最佳答案

蒂姆·索罗 How To have Dynamic SQL in MySQL Stored Procedure声明在5.0.13之后,在存储过程中,您可以使用

dynamic sql 

奥梅什 MySQL CREATE USER with a variable?使用动态SQL创建新用户并授予权限

我的混合物使用

stored procedures + dynamic sql

生成以下用于创建新用户的答案:

CREATE DEFINER=`root`@`localhost` PROCEDURE `new_procedure`(IN username VARCHAR(250), IN pwd VARCHAR (100))
BEGIN

SET @s = CONCAT('CREATE USER "',username,'"@"localhost" IDENTIFIED BY "',pwd,'"');
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END

关于java - 如何使用Java为MySQL创建新用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44063610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com