我正在用java做游戏,我想制作一个适合十个最高分的屏幕。我有一个数据库,我认为最好用数据填充数组。
这是连接到数据库的类的代码:
public Jugador[] buscarDiez() {
Jugador[] diez = new Jugador[9];
try {
orden = conexion.createStatement();
String sql = "SELECT user, score FROM player ORDER BY score LIMIT 9";
rs = orden.executeQuery(sql);
int i = 0;
while (rs.next()) {
diez[i].setUser(rs.getString("user"));
diez[i].setScore(rs.getInt("score"));
i = i + 1;
}
}
}
我可能做错了什么?
答案 0 :(得分:1)
为什么不创建Object,填充此对象并将其添加到Array中,例如:
public Jugador[] buscarDiez() {
Jugador[] listDiez = new Jugador[9];//<<---------Array
try {
orden = conexion.createStatement();
String sql = "SELECT user, score FROM player ORDER BY score LIMIT 9";
rs = orden.executeQuery(sql);
int i = 0;
Jugador dier;//<<------------Create your object
while (rs.next()) {
dier = new Jugador();//<<------Initialize your object
diez.setUser(rs.getString("user"));//<<--set attributes
diez.setScore(rs.getInt("score"));
listDiez[i] = diez;//<<----------Add your object to your array
i++;
}
}
return listDiez;//<<------return your array
}
注意强>
但我建议改用List,它更有用,为什么?
如果你的查询返回少于9,那么你的数组中会得到很多null,而这根本不是练习
答案 1 :(得分:1)
创建新的数组对象
public Jugador[] buscarDiez() {
Jugador[] diez = new Jugador[9];
try {
orden = conexion.createStatement();
String sql = "SELECT user, score FROM player ORDER BY score LIMIT 9";
rs = orden.executeQuery(sql);
int i = 0;
while (rs.next()) {
diez[i] = new Jugador();// create new object instance
diez[i].setUser(rs.getString("user"));
diez[i].setScore(rs.getInt("score"));
i = i + 1;
}
}
return diez;
}