我正在使用Java以及sql library。我正在尝试执行我使用此库从另一个类创建的更新函数。这是我的代码;
主类:
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
Player player = (Player)sender;
if (command.getName().equalsIgnoreCase("testvote")) {
try {
this.mysql.updatePlayer(player);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
return false;
}
这应该可以正常工作,但是 this.mysql.updatePlayer(player); 只有在我向其他类中的代码添加静态时才会起作用:
public void updatePlayer(Player p) throws SQLException{
String pname = p.getDisplayName().toLowerCase();
Statement statement = this.db.getConnection().createStatement();
int tokens = this.getTokens(p);
if(tokens!=0){
statement.executeUpdate("UPDATE 'tokens' SET 'tokens'='"+(tokens+1)+"' WHERE 'username'='"+pname+"'");
}else{
statement.executeUpdate("INSERT INTO 'tokens' ('username', 'tokens') ('"+pname+"','1');");
}
}
但是,将静态标记添加到此公共空白将导致此标记中断,因为静态不允许这样做。 如何在不添加静态的情况下从其他类运行此函数?如果这有点模糊,我道歉,但如果您有任何疑问,请询问。