Hallo,
ich habe mir eine kleine MySQL Klasse geschrieben. Allesfunktioniert wunderbar, bis auf das abfragen von Daten.
Die MySQL-Klasse:
Das Problem besteht nun darin, dass ich immer eine NullPointerException ausgeworfen bekomme. Stimmt etwas am SQL Code nicht?
Wie immer vielen Dank im Voraus für eure Hilfe!![:)](https://www.vb-paradise.de/wcf/images/smilies/smile.png)
GermanElectronix
ich habe mir eine kleine MySQL Klasse geschrieben. Allesfunktioniert wunderbar, bis auf das abfragen von Daten.
Die MySQL-Klasse:
Java-Quellcode
- package de.germanelectronix.coins.sql;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import org.bukkit.entity.Player;
- import de.germanelectronix.coins.Main;
- public class SQL {
- private static Connection con;
- public static void closeConnection() {
- try {
- if (con != null && !con.isClosed()) {
- con.close();
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public synchronized static void openConnection() {
- try {
- con = DriverManager.getConnection("jdbc:mysql://"
- + Main.sql_host
- + ":"
- + Main.sql_port
- + "/"
- + Main.sql_db
- + "?user="
- + Main.sql_user
- + "&password="
- + Main.sql_pass
- + "&autoReconnect=true");
- con.createStatement().execute("CREATE TABLE IF NOT EXISTS coins_user (uuid TEXT,coins INT)");
- System.out.println("[Coins] Successfully connected to MySQL Database!");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public synchronized static void close() {
- try {
- con.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public synchronized static boolean containsPlayer(Player p) {
- try {
- PreparedStatement sql = con.prepareStatement("SELECT * FROM coins_user WHERE uuid=?;");
- sql.setString(1, p.getUniqueId().toString());
- ResultSet rs = sql.executeQuery();
- boolean contains = rs.next();
- sql.close();
- rs.close();
- return contains;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
- // ----- CUSTOM METHODS ----- \\
- public static void createAccount(Player p) {
- openConnection();
- try {
- if(containsPlayer(p) == false){
- PreparedStatement newPlayer = con.prepareStatement("INSERT INTO coins_user values(?,0);");
- newPlayer.setString(1, p.getUniqueId().toString());
- newPlayer.execute();
- newPlayer.close();
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- close();
- }
- }
- public static Integer getCoins(Player p){
- if(containsPlayer(p) == true){
- Integer coins = 0;
- try {
- PreparedStatement sql = con.prepareStatement("SELECT coins FROM coins_user WHERE uuid=?;");
- sql.setString(1, p.getUniqueId().toString());
- ResultSet result = sql.executeQuery();
- result.next();
- coins = result.getInt("coins");
- sql.close();
- result.close();
- return coins;
- } catch (SQLException e) {
- e.printStackTrace();
- return 0;
- }
- }
- return null;
- }
- }
Das Problem besteht nun darin, dass ich immer eine NullPointerException ausgeworfen bekomme. Stimmt etwas am SQL Code nicht?
Wie immer vielen Dank im Voraus für eure Hilfe!
![:)](https://www.vb-paradise.de/wcf/images/smilies/smile.png)
GermanElectronix
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „GermanElectronix“ ()