1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Помогите с MySQL :D

Тема в разделе "Разработка плагинов для новичков", создана пользователем EnderBro3D, 19 фев 2017.

Статус темы:
Закрыта.
  1. Автор темы
    EnderBro3D

    EnderBro3D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    Дело в том что мне срочно нужно сделать поддержку MySQL. Не получается.

    Желательно чтобы в комментарии написали как это сделать:

    создать таблицу Economy с столбцами: PlayerName и Balance (PlayerName в Java - String, a Balance - Integer)

    в отдельном методе нужно будет отправлять Query-запрос на заполнение. Например
    public static void put(String PlayerName, Integer Balance);

    Также обязательно мне нужен метод как подключаться к базе MySQL

    P.S С MySQL никогда не работал. Не знаю как и что делать.
    P.S.S Гугл и тому подобное не предлагайте. Т.к на Русском там мало чего полезного.
     
  2. Forest_SD

    Forest_SD Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Forest_SD
    https://bukkit.org/threads/using-mysql-in-your-plugins.132309/ это метод который подключается к базе MySQL
    желательно чтобы тебе весь готовый код написали но увы, думай. Со статьей разберешься ибо там разжевано и довольно доступно=)
     
  3. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    76
    Вот тебе CRUD с привязкой к конфигу, под себя уже, думаю, доделаешь.

    Код:
       private static final String host = config.getString("database.mysql.connectivity.host");
        private static final String databaseName = config.getString("database.mysql.connectivity.databasename");
        private static final int port = config.getInt("database.mysql.connectivity.port");
    
        private static final String URL = "jdbc:mysql://" + host + ":" + port + "/" + databaseName;
        private static final String LOGIN = config.getString("database.mysql.connectivity.login");
        private static final String PASSWORD = config.getString("database.mysql.connectivity.password");
    
        private static Connection connection;
        private static Statement statement;
        private static ResultSet resultSet;
    
        public static void reloadMySQLConnection() throws SQLException, ClassNotFoundException {
            connection.close();
            statement.close();
            if (resultSet != null)
                resultSet.close();
            connection = null;
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection(URL, LOGIN, PASSWORD);
            statement = connection.createStatement();
        }
    
        public static void createMySQLDBConnection() throws SQLException, ClassNotFoundException {
            connection = null;
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection(URL, LOGIN, PASSWORD);
        }
    
        public static void createMySQLDBTable() throws SQLException {
            statement = connection.createStatement();
            statement.execute("CREATE TABLE blocks(`location` varchar(50) NOT NULL)ENGINE=InnoDB DEFAULT CHARSET=latin1");
        }
    
        public static boolean hasMySQLDBValue(String location) throws SQLException {
            resultSet = statement.executeQuery("SELECT location FROM blocks WHERE location=" + location);
            return resultSet.next();
        }
    
        public static void deleteFromMySQLDB(String location) throws SQLException {
            statement.executeUpdate("DELETE FROM blocks WHERE location=" + location);
        }
    
        public static void writeToMySQLDB(String location) throws SQLException {
            statement.executeUpdate("INSERT INTO 'blocks' ('location') VALUES ('" + location + "');");
        }
    
        public static void closeMySQLDBConnection() throws SQLException {
            connection.close();
            statement.close();
            if (resultSet != null)
                resultSet.close();
        }
    А вообще, я не знаю как ты собираешься дальше что-то делать без английского.Вот, целая тонна информации, которой хватит с головой, что бы работать с MySQL, но на английском.
     
  4. Автор темы
    EnderBro3D

    EnderBro3D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    Спасибо. Английский учить буду и разбираться с этим кодом
    Делал проверку на обычной Java, не BukkitAPI. Выдаёт ошибку Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
     
  5. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    76
    Коннектор jdbc подключил?
     
  6. Автор темы
    EnderBro3D

    EnderBro3D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
     
  7. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    76
  8. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    Как бы тоже потребовалось научиться работать с базой.
    А для чего это?
    Код:
    Class.forName("com.mysql.jdbc.Driver");
    
     
  9. niki96

    niki96 Старожил Пользователь

    Баллы:
    123
     
  10. DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Всегда писал это, тоже не понимая зачем:confused:. Наверное, чтобы словить ClassNotFoundException и понять, что коннектор не найден (но это не точно)
     
  11. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Чтоб нативку залоадить, но смысла это делать 2 раза конечно же нет.
     
Статус темы:
Закрыта.

Поделиться этой страницей