MySQL searching database

Discussion in 'Plugin Development' started by mcdog22, Jan 1, 2015.

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

    mcdog22

    Basically i'm just checking to see if a player exists in a mySQL database, but it keeps throwing errors and such. I'm not sure how to go about doing it.

    When the player logs in it will call the databaseFindPlayer method to see if they exist in the database

    Code:
        @EventHandler
        public void onPlayerLogin(PlayerJoinEvent e) throws SQLException {
            getLogger().info("Player joining.... + TEST");
            if (databaseFindPlayer(e.getPlayer().getName()) == false) {
                getLogger().info("Player does not have data file.. Generating one now");
                databaseCreatePlayer(e.getPlayer().getName());
                databaseFindPlayer(e.getPlayer().getName()); //For debugging
            }
        }
    Code:
    public boolean databaseFindPlayer(String name) throws SQLException {
            getLogger().info("finding players");
            PreparedStatement preparedStatement = c.prepareStatement("show columns from players where field = '" + name + "';");
            preparedStatement.setString(1, name);
    
            ResultSet resultSet = preparedStatement.executeQuery();
    
            if (resultSet.next()) {
                System.out.println("Player exists!");
                return true;
            } else {
                System.out.println("Player doesn't exist!");
                return false;
            }
          
          
        }
    (All the getLogger() calls where for debugging)

    Edit:
    Error message
    Code:
    [18:14:17 ERROR]: Could not pass event PlayerJoinEvent to CustomLeaderboard v0.1
    
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:294) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:501) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:486) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.PlayerList.c(PlayerList.java:251) [craft
    bukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.PlayerList.a(PlayerList.java:138) [craft
    bukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.LoginListener.c(LoginListener.java:76) [
    craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.LoginListener.a(LoginListener.java:42) [
    craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:160
    ) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.ServerConnection.c(SourceFile:134) [craf
    tbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:6
    67) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:2
    58) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:5
    58) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java
    :469) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:6
    28) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
    Caused by: java.sql.SQLException: Parameter index out of range (1 > number of pa
    rameters, which is 0).
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) ~[craf
    tbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) ~[craft
    bukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) ~[craft
    bukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) ~[craft
    bukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3
    709) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3
    693) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:454
    4) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            at com.mcaletheia.customLeaderboard.CustomLeaderboard.databaseFindPlayer
    (CustomLeaderboard.java:88) ~[?:?]
            at com.mcaletheia.customLeaderboard.CustomLeaderboard.onPlayerLogin(Cust
    omLeaderboard.java:69) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0
    _25]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0
    _25]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    .8.0_25]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:292) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
            ... 14 more
     
  2. Offline

    keeper317

    Make sure that you register the event in your onEnable Method.
     
  3. Offline

    timtower Administrator Administrator Moderator

    @keeper317
    Code:
    Could not pass event PlayerJoinEvent to CustomLeaderboard
    That means that it is throwing errors, so registered already.

    @mcdog22
    Code:
    PreparedStatement preparedStatement = c.prepareStatement("show columns from players where field = '" + name + "';");
    preparedStatement.setString(1, name);
    Change that into this:
    Code:
    PreparedStatement preparedStatement = c.prepareStatement("show columns from players where field = ?;");
    preparedStatement.setString(1, name);
     
Thread Status:
Not open for further replies.

Share This Page