gpt4 book ai didi

java - 需要帮助在java控制台中显示mysql表

转载 作者:行者123 更新时间:2023-11-30 01:09:11 25 4
gpt4 key购买 nike

我正在为这家公司制作一个控制台应用程序,以展示我通过 5 周类(class)所学到的知识。它是一个控制台应用程序,使用 MySQL 数据库进行增删改查操作。这是一个基本的视频游戏存储。

我有两层。表现和逻辑。我的问题是我似乎无法让我的 View 方法发挥作用。首先它只查看表中的一行,然后我添加了一个 for 循环,现在它什么也不显示。

这是我的表示层:

public static void ViewAll() {

List<Games> gamelist = new ArrayList<Games>();
Logic aref = new Logic();
aref.ViewAllGames();
for(Games g : gamelist){
System.out.println();
System.out.println("Game Id: " + g.getGameId());
System.out.println("Title: " + g.getTitle());
System.out.println("Rating: " + g.getRating());
System.out.println("Platform: "+ g.getPlatform());
System.out.println("Developer: "+ g.getDeveloper());
}
}

这是我的逻辑层:

public static List<Games> ViewAllGames() {
List<Games> game = new ArrayList<Games>();
try {
Class.forName(driver).newInstance();
Connection conn = DriverManager.getConnection(url+dbName,userName,password);
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM games");
while(rs.next()){
Games g = new Games();
for(Games gamelist : game){
g.setGameId(rs.getInt("GameId"));
g.setTitle(rs.getString("Title"));
g.setRating(rs.getString("Rating"));
g.setPlatform(rs.getString("Platform"));
g.setDeveloper(rs.getString("Developer"));
game.add(g);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return game;

}

任何帮助将不胜感激,并提前致谢。

<小时/>

编辑:所以我让它打印多行,现在它打印最后一行。结果如下:

游戏 ID:10名称: 黄金眼007评级:M平台:任天堂 64开发商:RockStar

游戏 ID:10名称: 黄金眼007评级:M平台:任天堂 64开发商:RockStar

游戏 ID:10名称: 黄金眼007评级:M平台:任天堂 64开发商:RockStar

游戏 ID:10名称: 黄金眼007评级:M平台:任天堂 64开发商:RockStar

游戏 ID:10名称: 黄金眼007评级:M平台:任天堂 64开发商:RockStar

最佳答案

aref.ViewAllGames()返回游戏列表,但您没有对其执行任何操作。 for因此,循环是在一个空列表上循环。试试这个:

public static void ViewAll() {

Logic aref = new Logic();
List<Games> gamelist = aref.ViewAllGames();
for(Games g : gamelist){
System.out.println();
System.out.println("Game Id: " + g.getGameId());
System.out.println("Title: " + g.getTitle());
System.out.println("Rating: " + g.getRating());
System.out.println("Platform: "+ g.getPlatform());
System.out.println("Developer: "+ g.getDeveloper());
}
}

响应您的编辑:

for循环输入ViewAllGames()不属于那里。您应该只迭代您正在执行的结果集,但只需在每次迭代时将一个新游戏添加到列表中即可:

while(rs.next()){
Games g = new Games();
g.setGameId(rs.getInt("GameId"));
g.setTitle(rs.getString("Title"));
g.setRating(rs.getString("Rating"));
g.setPlatform(rs.getString("Platform"));
g.setDeveloper(rs.getString("Developer"));
game.add(g);
}

关于java - 需要帮助在java控制台中显示mysql表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19571080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com