Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
插入MySQL Java_Java_Mysql_Intellij Idea - Fatal编程技术网

插入MySQL Java

插入MySQL Java,java,mysql,intellij-idea,Java,Mysql,Intellij Idea,我的mysql设置语句有问题。我正试图将一个用户设置为禁止进入数据库,但它向我抛出了一个“连接关闭后不允许进行任何操作”。有人能帮我吗 它会在屏幕上抛出一个错误 statement.setString(3, reason); 在setBanned代码中 当前设置扫描代码: public boolean setBanned(Player player, boolean state, String reason){ Connection conn = null; Prepa

我的mysql设置语句有问题。我正试图将一个用户设置为禁止进入数据库,但它向我抛出了一个“连接关闭后不允许进行任何操作”。有人能帮我吗

它会在屏幕上抛出一个错误

statement.setString(3, reason);
在setBanned代码中

当前设置扫描代码:

    public boolean setBanned(Player player, boolean state, String reason){
    Connection conn = null;
    PreparedStatement statement = null;
    String setBanned = "INSERT INTO `test_bans` (UUID, BANNED, REASON) VALUES ( ?, ?, ?)";
    String setUnbanned = "UPDATE `test_bans` SET BANNED= ? WHERE UUID= ?";
    try{
        conn = MySql.getConnection();
        if(isBanned(player) && state == false){
            statement = conn.prepareStatement(setUnbanned);
            statement.setBoolean(1, state);
            statement.setString(2, player.getUniqueId().toString());
            statement.executeUpdate();
        } else {
            statement = conn.prepareStatement(setBanned);
            statement.setString(1, player.getUniqueId().toString());
            statement.setBoolean(2, state);
            statement.setString(3, reason);
            statement.executeUpdate();
        }
    } catch (SQLException e){
        e.printStackTrace();
    } finally {
        if(statement != null){
            try{
                statement.close();
            } catch (SQLException e){
                e.printStackTrace();
            }
        }
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e){
                e.printStackTrace();
            }
        }
    }
    return false;
}
    public boolean isBanned(Player player){
    Connection conn = null;
    PreparedStatement statement = null;
    ResultSet result = null;
    String query = "SELECT BANNED FROM `test_bans` WHERE UUID= ?";
    try{
        conn = MySql.getConnection();
        statement = conn.prepareStatement(query);
        statement.setString(1, player.getUniqueId().toString());
        result = statement.executeQuery();
        return result.next();
    } catch (SQLException e){
        e.printStackTrace();
    } finally {
        if (result != null){
            try{
                result.close();
            } catch (SQLException e){
                e.printStackTrace();
            }
        }
        if(statement != null){
            try{
                statement.close();
            } catch (SQLException e){
                e.printStackTrace();
            }
        }
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e){
                e.printStackTrace();
            }
        }
    }
    return false;
}
禁止使用的代码:

    public boolean setBanned(Player player, boolean state, String reason){
    Connection conn = null;
    PreparedStatement statement = null;
    String setBanned = "INSERT INTO `test_bans` (UUID, BANNED, REASON) VALUES ( ?, ?, ?)";
    String setUnbanned = "UPDATE `test_bans` SET BANNED= ? WHERE UUID= ?";
    try{
        conn = MySql.getConnection();
        if(isBanned(player) && state == false){
            statement = conn.prepareStatement(setUnbanned);
            statement.setBoolean(1, state);
            statement.setString(2, player.getUniqueId().toString());
            statement.executeUpdate();
        } else {
            statement = conn.prepareStatement(setBanned);
            statement.setString(1, player.getUniqueId().toString());
            statement.setBoolean(2, state);
            statement.setString(3, reason);
            statement.executeUpdate();
        }
    } catch (SQLException e){
        e.printStackTrace();
    } finally {
        if(statement != null){
            try{
                statement.close();
            } catch (SQLException e){
                e.printStackTrace();
            }
        }
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e){
                e.printStackTrace();
            }
        }
    }
    return false;
}
    public boolean isBanned(Player player){
    Connection conn = null;
    PreparedStatement statement = null;
    ResultSet result = null;
    String query = "SELECT BANNED FROM `test_bans` WHERE UUID= ?";
    try{
        conn = MySql.getConnection();
        statement = conn.prepareStatement(query);
        statement.setString(1, player.getUniqueId().toString());
        result = statement.executeQuery();
        return result.next();
    } catch (SQLException e){
        e.printStackTrace();
    } finally {
        if (result != null){
            try{
                result.close();
            } catch (SQLException e){
                e.printStackTrace();
            }
        }
        if(statement != null){
            try{
                statement.close();
            } catch (SQLException e){
                e.printStackTrace();
            }
        }
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e){
                e.printStackTrace();
            }
        }
    }
    return false;
}
编辑:MySQL类

public class MySql {

private static String DATABASE_NAME ="testing_database";
private static String DATABASE_IP   ="localhost:3306";
private static String connection    ="jdbc:mysql://"+DATABASE_IP+"/"+DATABASE_NAME;
private static String username      ="root";
private static String password      ="pass";

private static Connection conn;

public static void handleConnection(){
    Bukkit.getServer().getLogger().info("Establishing connection to MySQL Database....");
    try{
        conn = DriverManager.getConnection(connection, username, password);
        if(!conn.isClosed()){
            Bukkit.getServer().getLogger().info("Successfully synced with MySQL!");
            return;
        }
        return;
    }
    catch (SQLException e){
        e.printStackTrace();
        return;
    }
}

public static void disconnectConnection(){
    Bukkit.getServer().getLogger().info("Disconnecting from MySQL Databse....");
    try{
        conn.close();
        if(conn.isClosed()){
            Bukkit.getServer().getLogger().info("Successfully Disconnected");
        }
        return;
    }
    catch(SQLException e){
        e.printStackTrace();
        return;
    }
}

public static boolean setupTables(){
    try{
        System.out.println("Checking Tables");
        conn.prepareStatement("CREATE TABLE IF NOT EXISTS test_ranks (UUID VARCHAR(255), RANK VARCHAR(25));").executeUpdate();
        conn.prepareStatement("CREATE TABLE IF NOT EXISTS test_bans (UUID VARCHAR(255), BANNED BOOLEAN, REASON TEXT);").executeUpdate();
        return true;
    }
    catch(SQLException e){
        e.printStackTrace();
        return false;
    }
}

public static boolean checkConnection(){
    try{
        if((conn != null) && (!conn.isClosed())){
            return true;
        }
        return false;
    }
    catch(SQLException e){
        e.printStackTrace();
        return false;
    }
}

public static Connection getConnection(){
    try {
        if(conn.isClosed()){
            connectMySQL();
            return conn;
        }
        if(conn == null){
            connectMySQL();
            return conn;
        }
    } catch (SQLException e){
        e.printStackTrace();
    }
    return conn;
}

public static void connectMySQL(){
    try {
        conn = DriverManager.getConnection(connection, username, password);
        return;
    } catch(SQLException e){
        e.printStackTrace();
    }
}

}你的问题不清楚

没有任何类MySql。如果其自定义类…请提供其代码段

使用Mysql JDBC连接的实际方式

Class.forName("com.mysql.jdbc.Driver");
Connection conn = null;
conn = DriverManager.getConnection("jdbc:mysql://hostname:port/dbname","username", "password");

//Create statement

//Execute statement
//Iterate over results  
//close statement  
conn.close(); // close connection

你的问题不清楚

没有任何类MySql。如果其自定义类…请提供其代码段

使用Mysql JDBC连接的实际方式

Class.forName("com.mysql.jdbc.Driver");
Connection conn = null;
conn = DriverManager.getConnection("jdbc:mysql://hostname:port/dbname","username", "password");

//Create statement

//Execute statement
//Iterate over results  
//close statement  
conn.close(); // close connection
在这一行
if(isbanked(player)&&state==false)
{您正在调用isbanked(),在该方法执行之后,该行中的连接关闭

 conn.close();
在isBannedMethod()中

因此,当连接到else部分时,连接已经关闭

你需要另一个连接 加

在这一行
if(isbanked(player)&&state==false)
{您正在调用isbanked(),在该方法执行之后,该行中的连接关闭

 conn.close();
在isBannedMethod()中

因此,当连接到else部分时,连接已经关闭

你需要另一个连接 加


你的
连接连接总是空的吗?url在哪里?@bmarkham是自定义类。你的
连接连接总是空的吗?url在哪里?@bmarkham是自定义类。我添加了我的MySQL类。我知道如何使用JDBC连接。我添加了我的MySQL类。我知道如何使用JDBC连接。