【发布时间】:2015-08-17 03:52:07
【问题描述】:
出于某种奇怪的原因,我的 hashmap 总是返回一个空值,即使它不应该为空。该行在 mysql 数据库中不为空。我没有收到任何错误我进行了调试测试以查看它打印出来的内容并且它正在返回 null。
auth.java
private String uuid;
private String name;
private int bits;
private String gang;
private String rank;
public auth(String uuid, String name, int bits, String gang, String rank)
{
this.uuid = uuid;
this.name = name;
this.bits = bits;
this.gang = gang;
this.rank = rank;
}
authmanager.java
public HashMap<String, auth> auth = new HashMap<>();
public void saveUser(String uuid, String name, int bits, String gang, String rank)
{
this.auth.put(uuid, new auth(uuid, name, bits, gang, rank));
}
建立连接.java
public void establishProfile(Player p){
String UUID = p.getUniqueId().toString();
String NAME = p.getName();
try
{
ResultSet query = sql.querySQL("SELECT * FROM `profiles` WHERE `UUID`= '" + UUID + "';");
PreparedStatement CREATE = c.prepareStatement("INSERT INTO `profiles` (`UUID`,`Name`, `Bits`, `Bans`, `Gang`, `Rank`) VALUES (?, ?, ?, ?, ?, ?) ");
PreparedStatement LOAD = c.prepareStatement("SELECT * FROM `profiles` WHERE `UUID`= ?");
if ( query.next() )
{
LOAD.setString(1, UUID);
plugin.authmanager.saveUser(query.getString("UUID"), query.getString("Name"), query.getInt("Bits"), query.getString("Gang"), query.getString("Rank"));
LOAD.close();
query.close();
p.sendMessage(tables.PROFILE_LOADED);
Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "[SQL]" +
" has loaded profile for " + NAME + "(" + UUID + ")" );
} else
{
CREATE.setString(1, UUID);
CREATE.setString(2, NAME);
CREATE.setInt(3, 0);
CREATE.setInt(4, 0);
CREATE.setString(5, null);
CREATE.setString(6, "Default");
CREATE.executeUpdate();
CREATE.close();
p.sendMessage(tables.PROFILE_CREATED);
Bukkit.getConsoleSender().sendMessage(ChatColor.YELLOW + "[SQL]" +
" executed a new query for " + NAME + "(" + UUID + "}" + plugin.authmanager.auth.get(0) );
}
} catch (Exception e)
{
e.printStackTrace();
Bukkit.broadcastMessage("Someone's profile has failed to load!\n ERROR: " + e);
}
}
【问题讨论】:
-
你在哪里得到错误?它是在“this.auth.put(uuid, new auth(uuid, name, bits, gang, rank));”中吗??
-
@2Hash 您好,您是如何在
Player对象中创建UUID的?