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

Помогите Как подключить мой плагин к MySQL?

Тема в разделе "Разработка плагинов для новичков", создана пользователем Artemka2008, 5 апр 2019.

  1. Автор темы
    Artemka2008

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

    Баллы:
    66
    Имя в Minecraft:
    ArCoderMine
    Вот я создал плагин, мне нужно подключить его к MySQL. Нужно чтобы автоматически создалась таблица, в которой есть: Время | Игрок | Действие |
    События: Вход/Выход (пока-что только эти). Потом если надо я сам добавлю, по данному вами примеру.
     
  2. alexandrage

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

    Баллы:
    173
    Код:
    package Example.db;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.ArrayList;
    
    public class MySQL {
        private Connection conn;
        private Statement statmt;
        private PreparedStatement preparedStatement = null;
    
        public MySQL(String url, String dbName, String user, String pass) {
            try {
                Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager.getConnection(
                        "jdbc:mysql://" + url + "/" + dbName + "?useUnicode=true&characterEncoding=utf8&autoReconnect=true",
                        user, pass);
                statmt = conn.createStatement();
                statmt.execute(
                        "CREATE TABLE IF NOT EXISTS `users` (`user` varchar(16) PRIMARY KEY,`pass` varchar(32) NOT NULL,`ip` varchar(16) NOT NULL,`time` varchar(32) NOT NULL)");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public void insert(String user, String pass, String ip, Long time) {
            try {
                PreparedStatement e = conn.prepareStatement(
                        "INSERT INTO users (user,pass,ip,time) VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE pass = ?, ip = ?, time = ?;");
                e.setString(1, user);
                e.setString(2, pass);
                e.setString(3, ip);
                e.setLong(4, time);
                e.setString(5, pass);
                e.setString(6, ip);
                e.setLong(7, time);
                e.executeUpdate();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public ArrayList<String> select(String user) {
            try {
                preparedStatement = conn.prepareStatement("SELECT user,pass,ip,time FROM users WHERE user = ?;");
                preparedStatement.setString(1, user);
                ResultSet e = preparedStatement.executeQuery();
                ArrayList<String> item = new ArrayList<String>();
                if (e.next()) {
                    item.add(e.getString("user"));
                    item.add(e.getString("pass"));
                    item.add(e.getString("ip"));
                    item.add(e.getString("time"));
                    e.close();
                    return item;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    }
     
  3. Автор темы
    Artemka2008

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

    Баллы:
    66
    Имя в Minecraft:
    ArCoderMine
    А как мне сделать, чтобы логин, пароль, хост, порт брал из конфига (config.yml).
     
  4. DeethzzCoder

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

    Баллы:
    76
    Ну это уже совсем)
     
  5. alexandrage

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

    Баллы:
    173
    Код:
            MySQL db = new MySQL(this.getConfig().getString("ip"),this.getConfig().getString("dbname"), this.getConfig().getString("user"),this.getConfig().getString("pass"));
    
     
  6. Автор темы
    Artemka2008

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

    Баллы:
    66
    Имя в Minecraft:
    ArCoderMine
    Спасибо
     
  7. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Жестишь
     

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