2
mySQL 데이터베이스의 열에 특정 값의 이름을 바꾸는 데 문제가 있습니다. 처음에는 이름 바꾸기에 'AS'를 사용할 수 있다고 생각했지만 실제로 열에있는 값의 이름을 바꾸려고합니다. 내 열은 FoundLost입니다. 이 열에서 I Store 값은 '0'과 '1'입니다. '0'이 발견되고 '1'은 분실입니다.쿼리 내의 값 이름 바꾸기
이 값의 이름을 변경해야하는 이유는이 데이터베이스의 데이터를 사용하여 pieChart를 만들기 때문입니다. .getName 함수는 '0'과 '1'이름을 부여합니다.
누군가 나를 도울 수 있기를 바랬습니다!
public static ObservableList getPChartFoundLost() {
String query = "SELECT FoundLost, concat(round(count(FoundLost) *100/(SELECT count(FoundLost) FROM Luggage))) AS percent FROM Luggage GROUP BY FoundLost";
ObservableList FoundLost = FXCollections.observableArrayList();
Connection connection = DatabaseUtils.connect();
if (connection != null) {
try {
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);
while (resultSet.next()) {
FoundLost.add(new PieChart.Data(resultSet.getString("FoundLost"), resultSet.getInt("percent")));
}
resultSet.close();
statement.close();
} catch (SQLException sqle) {
System.out.println(sqle.getMessage());
}
DatabaseUtils.disconnect(connection);
}
return FoundLost;
}
컨트롤러 :
쿼리와 클래스는 아래 코드
public void clickPChartFoundLost(ActionEvent event) {
//PieChart
ObservableList FoundLost = StatisticsUtils.getPChartFoundLost();
pieChart.setVisible(true);
pieChart.setData(FoundLost);
pieChart.setTitle("Found and Lost luggage");
for (final PieChart.Data data : pieChart.getData()) {
data.getNode().addEventHandler(MouseEvent.ANY,
new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
//Label vullen met data van Observable list uit Database
pieChartValueLable.setText(String.valueOf(data.getName()) + ": "
+ String.valueOf(data.getPieValue()) + "%");
}
});
}
}
감사합니다!
와우 덕분에 효과가있었습니다. –