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

Помогите Медленная запись в SQLite.

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Вот мой метод выполнения запросов:
    Код:
        public synchronized static boolean executeQuery(String query) {
    
            if (query == null || query.equals("")) {
                Logger.getLogger("Невозможно выполнить запрос! Он равен null или пуст!").error();
                return false;
            }
    
            try {
                statement.execute(query);
                statement.close();
                closeConnection();
                openConnection();
                return true;
            } catch (SQLException e) {
                Logger.getLogger(e.getMessage()).error();
                return false;
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
                return false;
            }
        }
     
  2. Exception_Prototype

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

    Баллы:
    96
    Ткни меня носом, где тут асинхрон?
     
  3. Akame

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

    Баллы:
    76
    Имя в Minecraft:
    Akame
    Java машина не в силе осиливать сторонний функционал, который написан на другом программном языке.
     
  4. alexandrage

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

    Баллы:
    173
    Почти прозрачно. Она кешируется в озу.
     
  5. alexandrage

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

    Баллы:
    173
    Проблема в другом. У sqlite нет кеша вообще.
     
  6. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Опустим момент сравнения. Я опять наткнулся на те же грабли, как и в прошлый раз - подключение. При попытке подключения я ловлю тонны исключений.
    [20:00:56 WARN]: java.util.zip.ZipException: ZIP_Read: error reading zip file
    [20:00:56 WARN]: at java.util.zip.ZipFile.read(Native Method)
    [20:00:56 WARN]: at java.util.zip.ZipFile.access$1400(Unknown Source)
    [20:00:56 WARN]: at java.util.zip.ZipFile$ZipFileInputStream.read(Unknown Source)
    [20:00:56 WARN]: at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(Unknown Source)
    [20:00:56 WARN]: at java.util.zip.InflaterInputStream.read(Unknown Source)
    [20:00:56 WARN]: at java.io.FilterInputStream.read(Unknown Source)
    [20:00:56 WARN]: at java.io.FilterInputStream.read(Unknown Source)
    [20:00:56 WARN]: at java.io.PushbackInputStream.read(Unknown Source)
    [20:00:56 WARN]: at java.util.zip.ZipInputStream.readFully(Unknown Source)
    [20:00:56 WARN]: at java.util.zip.ZipInputStream.readLOC(Unknown Source)
    [20:00:56 WARN]: at java.util.zip.ZipInputStream.getNextEntry(Unknown Source)
    [20:00:56 WARN]: at org.h2.util.Utils.loadResource(Utils.java:447)
    [20:00:56 WARN]: at org.h2.util.Utils.getResource(Utils.java:427)
    [20:00:56 WARN]: at org.h2.message.DbException.<clinit>(DbException.java:41)
    [20:00:56 WARN]: at org.h2.engine.ConnectionInfo.getName(ConnectionInfo.java:388)
    [20:00:56 WARN]: at org.h2.engine.Engine.openSession(Engine.java:50)
    [20:00:56 WARN]: at org.h2.engine.Engine.openSession(Engine.java:179)
    [20:00:56 WARN]: at org.h2.engine.Engine.createSessionAndValidate(Engine.java:157)
    [20:00:56 WARN]: at org.h2.engine.Engine.createSession(Engine.java:140)
    [20:00:56 WARN]: at org.h2.engine.Engine.createSession(Engine.java:28)
    [20:00:56 WARN]: at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:351)
    [20:00:56 WARN]: at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
    [20:00:56 WARN]: at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103)
    [20:00:56 WARN]: at org.h2.Driver.connect(Driver.java:69)
    [20:00:56 WARN]: at java.sql.DriverManager.getConnection(Unknown Source)
    [20:00:56 WARN]: at java.sql.DriverManager.getConnection(Unknown Source)
    [20:00:56 WARN]: at ru.lisenochek.cc.sql.SQL.openConnection(SQL.java:20)
    [20:00:56 WARN]: at ru.lisenochek.cc.sql.SQLManager.initSQL(SQLManager.java:15)
    [20:00:56 WARN]: at ru.lisenochek.cc.Boostrapper.initPlugin(Boostrapper.java:35)
    [20:00:56 WARN]: at ru.lisenochek.cc.Main.onEnable(Main.java:12)
    [20:00:56 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264)
    [20:00:56 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337)
    [20:00:56 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:403)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:381)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:330)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:752)
    [20:00:56 WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:525)
    [20:00:56 WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27)
    [20:00:56 WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:648)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(CraftServer.java:634)
    [20:00:56 WARN]: at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java:444)
    [20:00:56 WARN]: at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:407)
    [20:00:56 WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679)
    [20:00:56 WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577)
    [20:00:56 WARN]: at java.lang.Thread.run(Unknown Source)
    [20:00:56 WARN]: java.util.zip.ZipException: ZIP_Read: error reading zip file
    [20:00:56 WARN]: at java.util.zip.ZipFile.read(Native Method)
    [20:00:56 WARN]: at java.util.zip.ZipFile.access$1400(Unknown Source)
    [20:00:56 WARN]: at java.util.zip.ZipFile$ZipFileInputStream.read(Unknown Source)
    [20:00:56 WARN]: at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(Unknown Source)
    [20:00:56 WARN]: at java.util.zip.InflaterInputStream.read(Unknown Source)
    [20:00:56 WARN]: at java.io.FilterInputStream.read(Unknown Source)
    [20:00:56 WARN]: at java.io.FilterInputStream.read(Unknown Source)
    [20:00:56 WARN]: at java.io.PushbackInputStream.read(Unknown Source)
    [20:00:56 WARN]: at java.util.zip.ZipInputStream.readFully(Unknown Source)
    [20:00:56 WARN]: at java.util.zip.ZipInputStream.readLOC(Unknown Source)
    [20:00:56 WARN]: at java.util.zip.ZipInputStream.getNextEntry(Unknown Source)
    [20:00:56 WARN]: at org.h2.util.Utils.loadResource(Utils.java:447)
    [20:00:56 WARN]: at org.h2.util.Utils.getResource(Utils.java:427)
    [20:00:56 WARN]: at org.h2.message.DbException.<clinit>(DbException.java:48)
    [20:00:56 WARN]: at org.h2.engine.ConnectionInfo.getName(ConnectionInfo.java:388)
    [20:00:56 WARN]: at org.h2.engine.Engine.openSession(Engine.java:50)
    [20:00:56 WARN]: at org.h2.engine.Engine.openSession(Engine.java:179)
    [20:00:56 WARN]: at org.h2.engine.Engine.createSessionAndValidate(Engine.java:157)
    [20:00:56 WARN]: at org.h2.engine.Engine.createSession(Engine.java:140)
    [20:00:56 WARN]: at org.h2.engine.Engine.createSession(Engine.java:28)
    [20:00:56 WARN]: at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:351)
    [20:00:56 WARN]: at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
    [20:00:56 WARN]: at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103)
    [20:00:56 WARN]: at org.h2.Driver.connect(Driver.java:69)
    [20:00:56 WARN]: at java.sql.DriverManager.getConnection(Unknown Source)
    [20:00:56 WARN]: at java.sql.DriverManager.getConnection(Unknown Source)
    [20:00:56 WARN]: at ru.lisenochek.cc.sql.SQL.openConnection(SQL.java:20)
    [20:00:56 WARN]: at ru.lisenochek.cc.sql.SQLManager.initSQL(SQLManager.java:15)
    [20:00:56 WARN]: at ru.lisenochek.cc.Boostrapper.initPlugin(Boostrapper.java:35)
    [20:00:56 WARN]: at ru.lisenochek.cc.Main.onEnable(Main.java:12)
    [20:00:56 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264)
    [20:00:56 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337)
    [20:00:56 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:403)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:381)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:330)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:752)
    [20:00:56 WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:525)
    [20:00:56 WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27)
    [20:00:56 WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:648)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(CraftServer.java:634)
    [20:00:56 WARN]: at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java:444)
    [20:00:56 WARN]: at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:407)
    [20:00:56 WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679)
    [20:00:56 WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577)
    [20:00:56 WARN]: at java.lang.Thread.run(Unknown Source)
    [20:00:56 INFO]: [CreativeControl] [Ошибка] Что-то пошло не так и произошло исключение:
    [20:00:56 WARN]: org.h2.jdbc.JdbcSQLException: (Message 90011 not found) [90011-197]
    [20:00:56 WARN]: at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
    [20:00:56 WARN]: at org.h2.message.DbException.get(DbException.java:179)
    [20:00:56 WARN]: at org.h2.message.DbException.get(DbException.java:155)
    [20:00:56 WARN]: at org.h2.engine.ConnectionInfo.getName(ConnectionInfo.java:388)
    [20:00:56 WARN]: at org.h2.engine.Engine.openSession(Engine.java:50)
    [20:00:56 WARN]: at org.h2.engine.Engine.openSession(Engine.java:179)
    [20:00:56 WARN]: at org.h2.engine.Engine.createSessionAndValidate(Engine.java:157)
    [20:00:56 WARN]: at org.h2.engine.Engine.createSession(Engine.java:140)
    [20:00:56 WARN]: at org.h2.engine.Engine.createSession(Engine.java:28)
    [20:00:56 WARN]: at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:351)
    [20:00:56 WARN]: at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
    [20:00:56 WARN]: at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103)
    [20:00:56 WARN]: at org.h2.Driver.connect(Driver.java:69)
    [20:00:56 WARN]: at java.sql.DriverManager.getConnection(Unknown Source)
    [20:00:56 WARN]: at java.sql.DriverManager.getConnection(Unknown Source)
    [20:00:56 WARN]: at ru.lisenochek.cc.sql.SQL.openConnection(SQL.java:20)
    [20:00:56 WARN]: at ru.lisenochek.cc.sql.SQLManager.initSQL(SQLManager.java:15)
    [20:00:56 WARN]: at ru.lisenochek.cc.Boostrapper.initPlugin(Boostrapper.java:35)
    [20:00:56 WARN]: at ru.lisenochek.cc.Main.onEnable(Main.java:12)
    [20:00:56 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264)
    [20:00:56 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337)
    [20:00:56 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:403)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:381)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:330)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:752)
    [20:00:56 WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:525)
    [20:00:56 WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27)
    [20:00:56 WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:648)
    [20:00:56 WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(CraftServer.java:634)
    [20:00:56 WARN]: at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java:444)
    [20:00:56 WARN]: at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:407)
    [20:00:56 WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679)
    [20:00:56 WARN]: at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577)
    [20:00:56 WARN]: at java.lang.Thread.run(Unknown Source)
    Не знаю, я выставил ему URL, но он его не принимает.
     
  7. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Хорошо. Ассинхронного метода тут нет, но как его реализовать?
     
  8. Akame

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

    Баллы:
    76
    Имя в Minecraft:
    Akame
    Это и есть другая проблема, а основа из-за java машины
     
  9. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Питание сервака у тебя оффнится и все
     
  10. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Каждый раз открываешь и закрываешь конект, потом удивляешься а почему ито медлена делаится?
    Ну а чтобы это выполнять асинхроно тебе уже скинули метод с шедулером
     
  11. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Без шедулера вообще никак?
     
  12. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Что я делаю не так?
     
  13. Exception_Prototype

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

    Баллы:
    96
    никак
     
  14. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Ну вот я сделал ассинхронный метод, но осталась проблема с H2. Как правильно то указать URL? Я указывал путь до папки плагина, а он ссылал кучу исключений непонятного характера.
    Код:
       
    public synchronized static void executeQuery(String query) {
    
        Bukkit.getScheduler().runTaskLaterAsynchronously(Main.plugin, (Runnable) () -> {
    
            if (query == null || query.equals("")) {
                Logger.getLogger("Невозможно выполнить запрос! Он равен null или пуст!").error();
                return;
            }
    
            try {
                statement.execute(query);
                statement.close();
                statement = connection.createStatement();
            } catch (SQLException e) {
                Logger.getLogger("Что-то пошло не так и при запросе появилось исключение:").error();
                Logger.getLogger(e.getMessage()).error();
            }
        }, 1L);
    }
    
     
    Последнее редактирование: 21 авг 2018
  15. alexandrage

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

    Баллы:
    173
    H2 m = new H2(this.getDataFolder().getAbsoluteFile()+"/name");
     
  16. Andoroid

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

    Баллы:
    76
    В чём приемущество
    Над обычным Thread?
     
  17. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Не знаю. Что первое пришло в голову.
     
  18. _Nanit_

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

    Баллы:
    76
    Имя в Minecraft:
    _Nanit_
    CompletableFuture еще, но суть в итоге одна и та же. Асинхрон из ведра проще даже будет.
     
  19. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Я не могу импортнуть такой класс, хотя в либах джарник базы есть.
     
  20. alexandrage

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

    Баллы:
    173
    Соедени его со своим плагином и все.
     
Статус темы:
Закрыта.

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