기본적으로 플레이어가 mySQL 데이터베이스에 있는지를 확인하고 있지만 오류가 계속 발생하고 있습니다. 나는 그것을하는 방법에 대해 가야할지 모르겠다. Java mySQL 쿼리
(이 모든 bukkit API의 수행, 문제는 그러나 단지 SQL입니다)가 데이터베이스에 존재하는 경우에 플레이어의 로그를 볼 수 databaseFindPlayer의 메소드를 호출 할 때
내가 볼 필요가 모든 플레이어가 데이터베이스에 존재 여부를
이@EventHandler
public void onPlayerLogin(PlayerJoinEvent e) throws SQLException {
getLogger().info("Player joining.... + TEST");
if (databaseFindPlayer(e.getPlayer().getName()) == false) {
getLogger().info("Player does not have data file.. Generating one now");
databaseCreatePlayer(e.getPlayer().getName());
databaseFindPlayer(e.getPlayer().getName()); //For debugging
}
}
public boolean databaseFindPlayer(String name) throws SQLException {
getLogger().info("finding players");
PreparedStatement preparedStatement = c.prepareStatement("show columns from players where field = '" + name + "';");
preparedStatement.setString(1, name);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
System.out.println("Player exists!");
return true;
} else {
System.out.println("Player doesn't exist!");
return false;
}
}
(모든 getLogger()가 어디에서 디버깅을 위해 호출하는) 경우입니다
편집 :
,536,913,632 java.sql.SQLException의 : (0 1> 매개 변수의 수) 범위를 벗어난 매개 변수 인덱스 (10)Error message
[18:14:17 ERROR]: Could not pass event PlayerJoinEvent to CustomLeaderboard v0.1
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:294) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:501) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:486) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at net.minecraft.server.v1_7_R4.PlayerList.c(PlayerList.java:251) [craft
bukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at net.minecraft.server.v1_7_R4.PlayerList.a(PlayerList.java:138) [craft
bukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at net.minecraft.server.v1_7_R4.LoginListener.c(LoginListener.java:76) [
craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at net.minecraft.server.v1_7_R4.LoginListener.a(LoginListener.java:42) [
craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:160
) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at net.minecraft.server.v1_7_R4.ServerConnection.c(SourceFile:134) [craf
tbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:6
67) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:2
58) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:5
58) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java
:469) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:6
28) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
Caused by: java.sql.SQLException: Parameter index out of range (1 > number of pa
rameters, which is 0).
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) ~[craf
tbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) ~[craft
bukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) ~[craft
bukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) ~[craft
bukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3
709) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3
693) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:454
4) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
at com.mcaletheia.customLeaderboard.CustomLeaderboard.databaseFindPlayer
(CustomLeaderboard.java:88) ~[?:?]
at com.mcaletheia.customLeaderboard.CustomLeaderboard.onPlayerLogin(Cust
omLeaderboard.java:69) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0
_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0
_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
.8.0_25]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:292) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks]
... 14 more
그래서 명확하게하려면? 이름으로 전달되는 SQL의 변수를 나타 냅니까? – Achilles
예, 메서드 메서드처럼 매개 변수처럼 생각하면'?'는 제공 할'set' 메서드를 사용하는 매개 변수에 대한 예외를 정의하므로 올바른 순서로 설정해야합니다. – MadProgrammer
새로운 문제는 플레이어가 서버에 로그인했지만 데이터베이스에 이미 위치가 있으면 여전히 false를 반환하고 다른 위치를 생성한다는 것입니다. – Achilles