当前位置: 首页 > 知识库问答 >
问题:

在mysql中从java根创建用户其他

桑睿识
2023-03-14

我试图使用java代码在Mysql数据库中创建一个新用户,但代码不起作用。这是一个数据库类,用于初始化数据库连接、创建用户、设置密码等。

package app;

import com.mysql.cj.jdbc.MysqlDataSource;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

public class Database {

    public static MysqlDataSource dataSource;

    public static void InitializeData() {
        dataSource = new MysqlDataSource();
        dataSource.setUser("Quiz");
        dataSource.setPassword("Give the quiz");
        dataSource.setServerName("localhost");
        dataSource.setPort(3306);
        dataSource.setDatabaseName("QUIZDATA");


        Connection con = Main.getConnection();
        try {
            Statement st2 = con.createStatement();
            st2.execute("CREATE TABLE IF NOT EXISTS Subject1(Question VARCHAR, Option1  VARCHAR, Option2 VARCHAR, Option3 VARCHAR, Option4 VARCHAR, Answer VARCHAR)");
        } 
            catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

这是我的主课。

package app;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonType;
import javafx.stage.Stage;    
import java.sql.Connection;
import java.sql.SQLException;

public class Main extends Application {

    @Override
            public void start(Stage stage) throws Exception
            {
                Parent scene = FXMLLoader.load(getClass().getResource("quiz.fxml"));
                stage.setTitle("Quiz");
                stage.setScene(new Scene(scene));
                stage.show();
            }

    public static void main(String[] args)
    {
        launch(args);
        Database.InitializeData();
    }


    public static Connection getConnection()
    {
        Connection con = null;
        try
        {
            con = Database.dataSource.getConnection();
        }
        catch (SQLException e)
        {
            Alert alert = new Alert(Alert.AlertType.ERROR, "Database error", ButtonType.OK);
            alert.showAndWait();
        }

        return con;
    }

}

但是当我在Mysql工作台中扫描任何新服务器时,它不会显示任何新服务器。

添加:-当我右键单击空白区域(Mysql Workbench)时,有一个选项“从剪贴板添加连接”(虽然我不知道它在做什么),它返回一个错误:-“无法从字符串“Give the quick”(这是密码)解析连接参数”

共有1个答案

宿淳
2023-03-14

但是,当我在Mysql工作台中扫描任何新服务器时,它并没有显示任何新服务器

这与您的程序无关。首先,您需要确保您的MySQL数据库正在运行,然后尝试执行您的程序。

除此之外,虽然一旦您确保您的MySQL服务器启动并运行,您将能够运行您的程序,但您的程序设计得并不好,例如您应该考虑以下几点:

  1. MysqlDataSource dataSource应该标记为私有,然后您应该有公共getter
  2. Connection getConnection()应该在您的类数据库
  3. 中定义
  4. 您应该在类Database
  5. 中拥有构造函数、字段获取器和设置器

请注意,上述几点只是一些建议,并不是一个完整的列表。我建议您充分理解OOPS概念,并将其应用到所有程序中。

 类似资料:
  • 问题内容: 以root用户身份登录后,在 MySQL 命令行客户端中键入: 现在在 Java中 ,我使用驱动程序使用admin userid成功连接到数据库。 为什么插入命令有效,但授权命令却无法通过Java工作? 请帮忙。 问题答案: 在这里,您只能执行MySQL查询,但 不是MySQL查询,它只是MySQL的命令。

  • 我有一个< code>_payments数据库,其中有一个< code>users表,表中有< code>id 、< code >用户名 、< code >密码。密码使用散列盐。我的开发人员不可用,我需要创建一个新用户。为此,我应该运行什么查询?

  • 主要内容:1. 使用CREATE USER语句创建用户,2. 使用 INSERT 语句新建用户,3. 使用GRANT语句新建用户MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。 在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通常创建一些具有适当权限的用户,尽可能地不用或少用 root 用户登录系统,以此来确保数据的安全访问。 MySQL 提供了以下 3 种方法创建用户。 使用 CREAT

  • 问题内容: 您能帮忙解决这个问题吗? 我正在尝试创建然后使用一个名为TIGER的数据库。 如果我在MySQL中创建数据库并且运行完美,我没有问题。 我想做的是从Java创建它。这样,当首次运行代码时,它将在初始启动过程中创建数据库。如果可能的话,我想用一种干净的方法将其装箱。 有人可以告诉我您实际将代码放置在哪里 这是代码 这是创建数据库的代码 在此先感谢,感谢您的帮助。 因为我是一个长期读者但还

  • 问题内容: 我想执行一条语句,但是仅当用户不存在时才执行。 最好的方法是什么? 问题答案: 如果要创建用户,则还需要创建一个授权。如果授权不存在,则该授权会隐式创建一个用户(这就是为什么鼓励您在创建授权时包括密码,以防万一它们不存在的原因)。参见http://dev.mysql.com/doc/refman/5.1/en/grant.html 因此,一种选择是仅创建授予(使用密码),然后隐式创建用

  • 如何生成存根或创建此文件夹?