Solved Problem with SQLibrary!

Discussion in 'Plugin Development' started by skipperguy12, Jun 27, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    skipperguy12

    Hello! I'm really annoyed that PatPeters SQLibrary doesn't seem to work for me. It keeps giving me errors, and I'm sure I set everything up correctly.
    I don't know what the error means, but it looks like the libraries problem, not mine:
    https://github.com/PatPeter/SQLibra...tPeter/SQLibrary/Factory/DatabaseFactory.java

    Can someone please explain how to rid of this error? I don't understand it fully...
    ... here's my setup:
    Code:Java
    1. public lib.PatPeter.SQLibrary.Database db; // It's not just Database because I'm working in a class called Database
    2.  
    3. public DatabaseConfig dbconfig;
    4.  
    5. public void onEnable() {
    6.  
    7. // Initialize classes
    8.  
    9. // DB instances
    10.  
    11. dbconfig = new DatabaseConfig();
    12.  
    13. // SqlMethods = new SqlMethods();
    14.  
    15. // Handle database type
    16.  
    17. try {
    18.  
    19. if (DBMS.valueOf(getConfig().getString("Database.type")).equals(DBMS.MySQL)) {
    20.  
    21. dbconfig.setType(DBMS.MySQL);
    22.  
    23. dbconfig.setParameter(Parameter.PORTNMBR, getConfig().getString("database.port", "3306"));
    24.  
    25. } else if (DBMS.valueOf(getConfig().getString("Database.type")).equals(DBMS.Mongo)) {
    26.  
    27. dbconfig.setType(DBMS.Mongo);
    28.  
    29. dbconfig.setParameter(Parameter.PORTNMBR, getConfig().getString("database.port", "27017"));
    30.  
    31. } else
    32.  
    33. disablePlugin("Database engine defined in config not supported! Supported types: {MySql, Mongo}");
    34.  
    35. dbconfig.setParameter(Parameter.HOSTNAME, getConfig().getString("database.hostname", "localhost"));
    36.  
    37. dbconfig.setParameter(Parameter.DATABASE, getConfig().getString("database.database", "lr"));
    38.  
    39. dbconfig.setParameter(Parameter.USERNAME, getConfig().getString("database.user", "root"));
    40.  
    41. dbconfig.setParameter(Parameter.PASSWORD, getConfig().getString("database.password", ""));
    42.  
    43. dbconfig.setLog(Bukkit.getLogger());
    44.  
    45. dbconfig.setParameter(Parameter.PREFIX, "Database");
    46.  
    47. db = DatabaseFactory.createDatabase(dbconfig);
    48.  
    49. } catch (InvalidConfigurationException e) {
    50.  
    51. disablePlugin("Error accessing database: " + e.getMessage());
    52.  
    53. }
    54.  
    55. }


    Here's the error:
    Code:
    [SEVERE] Error occurred while enabling Database v0.0.1 (Is it up to date?)
    lib.PatPeter.SQLibrary.DatabaseException: Password cannot be null or empty.
        at lib.PatPeter.SQLibrary.Delegates.HostnameDatabaseImpl.setPassword(HostnameDatabaseImpl.java:64)
        at lib.PatPeter.SQLibrary.MySQL.setPassword(MySQL.java:153)
        at lib.PatPeter.SQLibrary.MySQL.<init>(MySQL.java:120)
        at lib.PatPeter.SQLibrary.Factory.DatabaseFactory.createDatabase(DatabaseFactory.java:26)
        at me.skipperguy12.database.Database.onEnable(Database.java:92)
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
        at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugin(CraftServer.java:284)
        at org.bukkit.craftbukkit.v1_5_R3.CraftServer.enablePlugins(CraftServer.java:266)
        at org.bukkit.craftbukkit.v1_5_R3.CraftServer.reload(CraftServer.java:607)
        at org.bukkit.Bukkit.reload(Bukkit.java:275)
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
        at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:525)
        at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchServerCommand(CraftServer.java:514)
        at net.minecraft.server.v1_5_R3.DedicatedServer.an(DedicatedServer.java:262)
        at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:227)
        at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:467)
        at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:403)
        at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
    
    And here's my config.yml:
    Code:
    Database:
        type: MySQL
        host: localhost
        port: 3306
        database: lr
        user: root
        password: [REMOVED]
    
     
  2. Offline

    slayr288

    skipperguy12
    Use pastebin and copy+paste the entire class for help with errors.
     
  3. Offline

    skipperguy12

    slayr288
    I cannot. This is my Database plugin, it contains sensitive information, what exactly do you need? Everything referring to SQLibrary is there, it's an error in onEnable(), I've given my entire onEnable().

    slayr288
    Anyways, here's the only other place it's used:
    Code:
    PreparedStatement preparedStatement = Database.get().db.getConnection().prepareStatement(QUERYHERE);
                    if (Database.get().db.query(preparedStatement).wasNull()) { // The rest of the code simply gives a boolean, nothing fancy
    But the code doesn't reach that far.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 2, 2016
  4. Offline

    slayr288

    skipperguy12
    Well, copy and paste the line where the error occurs, because the lines don't correspond with the stacktrace without the entire class.
     
  5. Offline

    skipperguy12

    slayr288
    Ah, I see, sorry!
    Here's all the lines which correspond to the stack trace:
    Line 92 or Database.java:
    Code:
        db = DatabaseFactory.createDatabase(dbconfig);
    Basically it' just using the DatabaseConfig which I set the parameters for to set the Database variable.

    That's really it, everything else is from patpeters packages, and NMS packages.
     
  6. Offline

    slayr288

    skipperguy12
    You're default value is empty if not found, the error is says that your password can't be null/empty.
    So, I'm guessing that your password is not found when getting from config.

    Edit: Your issue is not capitalizing the D in database in some of your paths.
     
  7. Offline

    skipperguy12

    slayr288 Sometimes I hate YAML... solved, I wrote database rather than Database! D:
     
  8. Offline

    slayr288

    skipperguy12
    Just edited my post as soon as you replied. ;P
     
Thread Status:
Not open for further replies.

Share This Page