如何根据新注册用户的分数实现价值?

时间:2019-04-26 14:09:15

标签: java mysql

我要为我的高级软件项目编写的代码是,一旦用户注册了帐户,该程序就会根据用户的总体评分值将随机整数值填充到我的SQL数据库中。我在如何生成这些值并将其放入数据库中遇到麻烦。

我试图给一个值提供一个在一定范围内的随机数,但是Java Eclipse一直给我错误。

这是我到目前为止的方法代码:

public void setUser(String user, Stage registerStage) throws Exception {

        String userlist = "INSERT INTO users (uid, username, email, password) VALUES(?, ?, ?, ?)";
        String overviewlist = "INSERT INTO user_overview (pid, gamertag, score, wins, goals, saves, shots, assists) VALUES(?, ?, ?, ?, ?, ?, ?, ?)";

        int uid = 1;
        int pid = 1;
        double minScore = 400000.0;
        double maxScore = 10000000.0;
        int minWins = 500;
        int maxWins = 15000;
        int minGoals = 500;
        int maxGoals = 15000;
        int minSaves = 500;
        int maxSaves = 15000;
        int minShots = 500;
        int maxShots = 15000;
        int minAssists = 500;
        int maxAssists = 15000;

        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            // Class.forName("com.mysql.jdbc.Driver");
            System.out.println("Driver is Loaded");

            String strConnect = "jdbc:mysql://localhost/RLDATA";
            Connection connection = DriverManager.getConnection(strConnect,"root","");
            System.out.println("Database connected");

            PreparedStatement userstmt = connection.prepareStatement(userlist, Statement.RETURN_GENERATED_KEYS);

            PreparedStatement overviewstmt = connection.prepareStatement(overviewlist, Statement.RETURN_GENERATED_KEYS);

            String username = tfUsername.getText();
            String email = tfEmail.getText();
            String password = pfCPassword.getText();

            double ranScore = ThreadLocalRandom.current().nextDouble(minScore, maxScore + 1);

            if (ranScore <= 1000000.0) {

            }

            userstmt.setInt(1, uid);
            userstmt.setString(2, username);
            userstmt.setString(3, email);    
            userstmt.setString(4, password);

            overviewstmt.setInt(1, pid);
            overviewstmt.setString(2, username);
            overviewstmt.setDouble(3, ranScore);
            overviewstmt.setString(2, username);
            overviewstmt.setString(2, username);
            overviewstmt.setString(2, username);
            overviewstmt.setString(2, username);
            overviewstmt.setString(2, username);

            ResultSet rs = userstmt.getGeneratedKeys();

            ResultSet rs2 = overviewstmt.getGeneratedKeys();

            if(rs.next()) {
                uid = rs.getInt(1);
            }

            if(rs2.next()) {
                pid = rs2.getInt(1);
            }

            userstmt.executeUpdate();

            Alert alert = new Alert(AlertType.INFORMATION);
            alert.setTitle("Successful Registration");
            alert.setHeaderText("Successful Registration");
            String s = "You have successfuly registered as " + user;
            alert.setContentText(s);
            alert.showAndWait();
            System.out.println("Sucess");
            registerStage.close();

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

这是我的项目的数据库表:

DROP DATABASE IF EXISTS RLData;
CREATE DATABASE RLData;
USE RLData;

DROP TABLE IF EXISTS `overview` ;

CREATE TABLE IF NOT EXISTS `users` (
  `uid` INT NOT NULL,
  `username` VARCHAR(45) NOT NULL,
  `email` VARCHAR(50) NOT NULL,
  `password` VARCHAR(30) NOT NULL,
  PRIMARY KEY (`uid`))
ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `user_overview` (
  `pid` INT NOT NULL,
  `gamertag` VARCHAR(45) NOT NULL,
  `score` DECIMAL(10, 1) NOT NULL,
  `wins` INT(10) NOT NULL,
  `goals` INT(10) NOT NULL,
  `saves` INT(10) NOT NULL,
  `shots` INT(10) NOT NULL,
  `assists` INT(10) NOT NULL,
  PRIMARY KEY (`pid`))
ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `player_overview` (
  `pid` INT NOT NULL,
  `gamertag` VARCHAR(45) NOT NULL,
  `score` DECIMAL(10, 1) NOT NULL,
  `wins` INT(10) NOT NULL,
  `goals` INT(10) NOT NULL,
  `saves` INT(10) NOT NULL,
  `shots` INT(10) NOT NULL,
  `assists` INT(10) NOT NULL,
  PRIMARY KEY (`pid`))
ENGINE = InnoDB;

INSERT INTO users (uid, username, email, password) VALUES
(0, 'sushhhiii', 'rocketleagueuser@gmail.com', 6543654365);

INSERT INTO user_overview (pid, gamertag, score, wins, goals, saves, shots, assists) VALUES
(0, 'sushhhiii', 2688518.2, 3032, 14811, 9918, 28633, 1920);

INSERT INTO player_overview (pid, gamertag, score, wins, goals, saves, shots, assists) VALUES
(1, 'TheCar', 3803677.6, 7744, 25550, 17305, 52249, 6777),
(2, 'Savvy', 5482247.6, 10131, 29975, 24410, 66393, 10946),
(3, 'oKhaliD', 2043555.4, 2480, 8448, 9192, 17931, 2485),
(4, 'xXander', 1631656.8, 5845, 22639, 13709, 43530, 4656),
(5, 'SML', 5372512.7, 11719, 30564, 27461, 71700, 13486),
(6, 'Killerican', 3784957.5, 9597, 42526, 26680, 82977, 8781),
(7, 'Zeldris', 832783.2, 982, 3359, 2311, 6980, 853),
(8, 'mectos', 2761034.4, 3391, 14711, 11522, 29624, 2472),
(9, 'Scrub Killa', 1053493.9, 11791, 40630, 31134, 86571, 12014),
(10, 'kuxir97', 3993712.8, 12911, 43379, 31458, 95550, 15677),
(11, 'Emre', 999486.9, 1396, 3473, 3651, 7434, 1210),
(12, 'BuZayed', 1458886.4, 2175, 7220, 4209, 14018, 1644),
(13, 'kinseh', 711179.4, 943, 4425, 2639, 7799, 367),
(14, 'King Ranny', 5991440.5, 13871, 58022, 37892, 119366, 13149),
(15, 'Brisky', 2067200.1, 2709, 7845, 5804, 17035, 2402),
(16, 'Firstkiller', 3044781.2, 6253, 19687, 20052, 43381, 7180),
(17, 'Mijo.', 4777480.5, 9107, 25237, 19222, 57470, 10461),
(18, 'Tuster', 873322.3, 1044, 4058, 2503, 8277, 890),
(19, 'eekso', 4969356.2, 7904, 31823, 21032, 62533, 7039),
(20, 'DanielAlmelo', 437627.9, 547, 1636, 1623, 3672, 472),
(21, 'Jwols', 3519406.0, 7365, 20147, 17157, 44556, 7551),
(22, 'Roll Dizz', 4865837.5, 10653, 30799, 27807, 67736, 11034),
(23, 'Oghma', 524124.3, 741, 2207, 1777, 4678, 706),
(24, 'OSM', 490561.7, 622, 2493, 1898, 4605, 462),
(25, 'Tx0', 1914821.8, 4948, 13266, 8940, 26778, 4407);

-- Create a user named mgs_user
GRANT SELECT, INSERT, UPDATE, DELETE
ON *
TO mgs_user@localhost
IDENTIFIED BY 'pa55word';

另外,这是我的数据库表,其中包含球员及其得分值:

enter image description here

0 个答案:

没有答案