Solved java.lang.NullPointerExeption - MySQL

Discussion in 'Plugin Development' started by Nerio, Aug 13, 2016.

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

    Nerio

    The error is at MySQL.java in PreparedStatement ps = conn.preparedStatement...

    CMD ERROR:
    Code:
    [17:55:46 WARN]: java.lang.NullPointerException
    [17:55:46 WARN]:        at me.Nerio.MySQL.createData(MySQL.java:76)
    [17:55:46 WARN]:        at me.Nerio.Listeners.PlayerListener.playerLogin(PlayerL
    istener.java:17)
    [17:55:46 WARN]:        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
    ethod)
    [17:55:46 WARN]:        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
    ource)
    [17:55:46 WARN]:        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
    wn Source)
    [17:55:46 WARN]:        at java.lang.reflect.Method.invoke(Unknown Source)
    [17:55:46 WARN]:        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(Jav
    aPluginLoader.java:298)
    [17:55:46 WARN]:        at org.bukkit.plugin.RegisteredListener.callEvent(Regist
    eredListener.java:62)
    [17:55:46 WARN]:        at org.bukkit.plugin.SimplePluginManager.fireEvent(Simpl
    ePluginManager.java:509)
    [17:55:46 WARN]:        at org.bukkit.plugin.SimplePluginManager.callEvent(Simpl
    ePluginManager.java:494)
    [17:55:46 WARN]:        at net.minecraft.server.v1_7_R4.PlayerList.attemptLogin(
    PlayerList.java:448)
    [17:55:46 WARN]:        at net.minecraft.server.v1_7_R4.LoginListener.c(LoginLis
    tener.java:98)
    [17:55:46 WARN]:        at net.minecraft.server.v1_7_R4.LoginListener.a(LoginLis
    tener.java:44)
    [17:55:46 WARN]:        at net.minecraft.server.v1_7_R4.NetworkManager.a(Network
    Manager.java:192)
    [17:55:46 WARN]:        at net.minecraft.server.v1_7_R4.ServerConnection.c(Serve
    rConnection.java:81)
    [17:55:46 WARN]:        at net.minecraft.server.v1_7_R4.MinecraftServer.v(Minecr
    aftServer.java:789)
    [17:55:46 WARN]:        at net.minecraft.server.v1_7_R4.DedicatedServer.v(Dedica
    tedServer.java:307)
    [17:55:46 WARN]:        at net.minecraft.server.v1_7_R4.MinecraftServer.u(Minecr
    aftServer.java:638)
    [17:55:46 WARN]:        at net.minecraft.server.v1_7_R4.MinecraftServer.run(Mine
    craftServer.java:544)
    [17:55:46 WARN]:        at net.minecraft.server.v1_7_R4.ThreadServerApplication.
    run(SourceFile:628)
    MySQL.java:
    Code:
    package me.Nerio;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.UUID;
    
    import org.bukkit.Bukkit;
    
    import me.Nerio.Managers.Ranks;
    import me.Nerio.PEX.PermissionsTypes;
    
    public class MySQL {
     
        Connection conn;
        String table;
        String host;
        Integer port;
        String login;
        String pass;
        String database;
     
        public MySQL(String table, String host, Integer port, String login, String pass, String database)
        {
            this.table = table;
            this.host = host;
            this.port = port;
            this.login = login;
            this.pass = pass;
            this.database = database;
        }
     
        public Connection getConnection()
        {
            return this.conn;
        }
     
        public void tryConnection()
        {
            try {
                conn = DriverManager.getConnection("jdbc:mysql://" + this.host + ":" + this.port + "/" + this.database, this.login, this.pass);
                System.out.println("SUCCESS MySQL: Connection made successfully!");
            } catch (SQLException e) {
                Bukkit.getServer().getConsoleSender().sendMessage("§c" + e.getMessage());
            }
        }
     
        public void createTable(String tableName, String values)
        {
            try {
                executeUpdate("CREATE TABLE IF NOT EXISTS " + tableName + "("+values+")");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
     
        void executeUpdate(String str)
        {
            try {
                PreparedStatement ps = getConnection().prepareStatement(str);
                ps.executeUpdate();
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
     
        void executeQuery(String str)
        {
            try {
                PreparedStatement ps = getConnection().prepareStatement(str);
                ps.executeQuery();
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
     
        public void createData(UUID uuid)
        {
            if(hasData(uuid))
            {
                return;
            }
            try {
                (ERROR LINE) PreparedStatement ps = conn.prepareStatement("INSERT INTO kitpvp VALUES('"+uuid+"', '"+Bukkit.getPlayer(uuid).getName()+"', '0', '0', '0', '0', '"+Ranks.UNRANKED.toString()+"', '"+PermissionsTypes.NORMAL.toString()+"')");  (ERROR LINE)
                ps.executeUpdate();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
     
        public boolean hasData(UUID uuid)
        {
            try {
                PreparedStatement ps = getConnection().prepareStatement("SELECT uuid FROM kitpvp WHERE uuid='"+uuid+"'");
                ResultSet rs = ps.executeQuery();
                if(rs.next())
                {
                    rs.close();
                    ps.close();
                    return true;
                }else{
                    rs.close();
                    ps.close();
                    return false;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return false;
        }
    PlayerListener.java
    Code:
    package me.Nerio.Listeners;
    
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerLoginEvent;
    
    import me.Nerio.Main;
    import me.Nerio.Managers.PlayerAccount;
    import me.Nerio.Managers.Tags;
    
    public class PlayerListener implements Listener {
    
        @EventHandler
        public void playerLogin(PlayerLoginEvent e)
        {
            Main.getMysql().createData(e.getPlayer().getUniqueId());
        }
    }
    
     
    Last edited: Aug 13, 2016
  2. Offline

    N00BHUN73R

    @Nerio
    NullPointer at
    MySQL.java:76

    You said it was conn.prepareStatement()
    That means that your conn variable is null.
    Instead of using static, why not pass through a constructor?
     
Thread Status:
Not open for further replies.

Share This Page