SQLException

Discussão em 'Desenvolvimento de Mods e Plugins' iniciado por WizardlyBump17, 2 Junho 2019.

  1. WizardlyBump17
    Offline

    WizardlyBump17 Membro Ativo

    Afiliado:
    11 Março 2018
    Mensagens:
    758
    Sexo:
    Masculino
    Avaliações:
    +224 / -2
    Apelido no Minecraft:
    WizardlyBump17
    Esse erro sempre acontece quando o plugin vai iniciar. Ele faz nada, só manda essa mensagem mesmo, mas essa mensagem é chata
    Código (Forge Crash):

    [13:08:32 INFO]: [WLogin] Erro:
    [13:08:32 WARN]: java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near "DATABASE": syntax error)
    [13:08:32 WARN]:  at org.sqlite.DB.newSQLException(DB.java:383)
    [13:08:32 WARN]:  at org.sqlite.DB.newSQLException(DB.java:387)
    [13:08:32 WARN]:  at org.sqlite.DB.throwex(DB.java:374)
    [13:08:32 WARN]:  at org.sqlite.NativeDB.prepare(Native Method)
    [13:08:32 WARN]:  at org.sqlite.DB.prepare(DB.java:123)
    [13:08:32 WARN]:  at org.sqlite.PrepStmt.<init>(PrepStmt.java:42)
    [13:08:32 WARN]:  at org.sqlite.Conn.prepareStatement(Conn.java:404)
    [13:08:32 WARN]:  at org.sqlite.Conn.prepareStatement(Conn.java:399)
    [13:08:32 WARN]:  at org.sqlite.Conn.prepareStatement(Conn.java:383)
    [13:08:32 WARN]:  at login.sqlite.SQLite.commandNR(SQLite.java:58)
    [13:08:32 WARN]:  at login.sqlite.SQLite.open(SQLite.java:31)
    [13:08:32 WARN]:  at login.main.Main.onEnable(Main.java:20)
    [13:08:32 WARN]:  at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321)
    [13:08:32 WARN]:  at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340)
    [13:08:32 WARN]:  at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405)
    [13:08:32 WARN]:  at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357)
    [13:08:32 WARN]:  at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317)
    [13:08:32 WARN]:  at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:741)
    [13:08:32 WARN]:  at org.bukkit.Bukkit.reload(Bukkit.java:535)
    [13:08:32 WARN]:  at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25)
    [13:08:32 WARN]:  at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141)
    [13:08:32 WARN]:  at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641)
    [13:08:32 WARN]:  at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627)
    [13:08:32 WARN]:  at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412)
    [13:08:32 WARN]:  at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375)
    [13:08:32 WARN]:  at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654)
    [13:08:32 WARN]:  at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557)
    [13:08:32 WARN]:  at java.lang.Thread.run(Unknown Source)
     
    Código (Forge Crash):

    package login.sqlite;

    import java.io.File;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    import org.bukkit.Bukkit;

    import login.main.Main;

    public class SQLite {
       
       private static Connection con = null;
       
       public static void open() {
         File file = new File(Main.getJavaPlugin().getDataFolder() + "");
         file.mkdir();
         File contas = new File(Main.getJavaPlugin().getDataFolder(), "contas.db");
         String url = "jdbc:sqlite:" + contas;
         try {
           if(!file.exists()) {
             if(file.createNewFile());
           }
           Class.forName("org.sqlite.JDBC");
           con = DriverManager.getConnection(url);
           commandNR("CREATE DATABASE IF NOT EXISTS contas;"); //Linha 31
          commandNR("CREATE TABLE IF NOT EXISTS players (uuid VARCHAR(50) PRIMARY KEY, senha VARCHAR(30));");
         } catch (ClassNotFoundException e) {
           Bukkit.getConsoleSender().sendMessage("[WLogin] §cErro:");
           e.printStackTrace();
         } catch (SQLException e) {
           Bukkit.getConsoleSender().sendMessage("[WLogin] §cErro:");
           e.printStackTrace();
         } catch (IOException e) {
           e.printStackTrace();
         }
       }
       
       public static void close() {
         if(con != null) {
           try {
             con.close();
           } catch (SQLException e) {
             Bukkit.getConsoleSender().sendMessage("[WLogin] §cErro:");
             e.printStackTrace();
           }
         }
       }
       
       public static void commandNR(String cmd) {
         if(con != null) {
           try {
             PreparedStatement stm = con.prepareStatement(cmd); //Linha 58
             stm.execute();
           } catch (SQLException e) {
             Bukkit.getConsoleSender().sendMessage("[WLogin] §cErro:");
             e.printStackTrace();
           }
         }
       }
       
       public static ResultSet commandR(String cmd) {
         ResultSet r = null;
         if(con != null) {
           try {
             Statement s = con.createStatement();
          r = s.executeQuery(cmd);
           } catch (SQLException e) {
             Bukkit.getConsoleSender().sendMessage("[WLogin] §cErro:");
             e.printStackTrace();
           }
         }
         return r;
       }

    }
     
    Se alguem souber resolver esse problema, pf, me ajude
     
  2. Gabriel8579
    Offline

    Gabriel8579 Veterano Veterano VIP Sabotador.com VIP Sabotador.com

    Afiliado:
    18 Janeiro 2016
    Mensagens:
    438
    Sexo:
    Masculino
    Avaliações:
    +253 / -1
    Apelido no Minecraft:
    Gabriel8579
    É simples, você esta tentando criar um database dentro de outro database, o SQLite não suporta comandos como CREATE DATABASE, para você ver se o database existe somente verifique se o arquivo contas.db existe se não existir o crie e insira as tabelas com o comando CREATE TABLE [IF NOT EXISTS]
     

Compartilhe esta Página