Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的搜索方法找到了所有空值_Java_Mysql_Search_Crud - Fatal编程技术网

Java 我的搜索方法找到了所有空值

Java 我的搜索方法找到了所有空值,java,mysql,search,crud,Java,Mysql,Search,Crud,让我快速解释一下。7月份,我在一家公司上了一门为期5周的Java课程。他们介绍了一些基本的东西,比如控制台应用程序、crud操作、mysql和n层架构。课程结束后,我没怎么用它,因为我回去工作了,其他的医疗原因浮出水面……等等 公司让我制作一个简单的程序来反映我所学到的东西。结果我保留了很少 我决定制作一个视频游戏starage程序。它将被用来盯着你的电子游戏,这样你就不必搜索你的书架(或者你如何储存你的游戏) 它是一个基本的控制台应用程序,使用MYSQL的crud操作。我无法让我的搜索功能真正

让我快速解释一下。7月份,我在一家公司上了一门为期5周的Java课程。他们介绍了一些基本的东西,比如控制台应用程序、crud操作、mysql和n层架构。课程结束后,我没怎么用它,因为我回去工作了,其他的医疗原因浮出水面……等等

公司让我制作一个简单的程序来反映我所学到的东西。结果我保留了很少

我决定制作一个视频游戏starage程序。它将被用来盯着你的电子游戏,这样你就不必搜索你的书架(或者你如何储存你的游戏)

它是一个基本的控制台应用程序,使用MYSQL的crud操作。我无法让我的搜索功能真正工作。我有两层:表示层和逻辑层。搜索方法允许他们按标题搜索游戏。当我运行程序并使用搜索时,它只显示标题,其余为空。 这是我的演示层:

private static Games SearchForGame() 
    {
    Logic aref = new Logic();
    Games g = new Games();
    Scanner scanline = new Scanner(System.in);
    System.out.println("Please enter the name of the game you wish to find:");
    g.setTitle(scanline.nextLine());
    aref.SearchGame();
    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());
    return g;
}
这是我的逻辑层

public Games SearchGame() {
     Games g = new Games();
     try {
        Class.forName(driver).newInstance();
        Connection conn = DriverManager.getConnection(url+dbName,userName,password);
        java.sql.PreparedStatement statement = conn.prepareStatement("SELECT GameId,Title,Rating,Platform,Developer FROM games WHERE Title=?");
        statement.setString(1, g.getTitle());
        ResultSet rs = statement.executeQuery();

        while(rs.next()){

        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"));
        statement.executeUpdate();

         }
         } catch (Exception e) {
         e.printStackTrace();
         }
         return g;
}
这也是我最后的结果

Please enter the name of the game you wish to find:
 Skyrim

Game Id:   0
Title:     Skyrim
Rating:    null
Platform:  null
Developer: null
如有任何帮助,我们将不胜感激


编辑:这是我的游戏课代码

 public class Games 
{
    public int GameId;
    public String Title;
    public String Rating;
    public String Platform;
    public String Developer;

    public int getGameId() 
    {
        return GameId;
    }

    public int setGameId(int gameId) 
    {
        return GameId = gameId;
    }

    public String getTitle() 
    {
        return Title;
    }

    public String setTitle(String title) 
    {
        return Title = title;
    }

    public String getRating() 
    {
        return Rating;
    }

    public void setRating(String rating) 
    {
        Rating = rating;
    }

    public String getPlatform() 
    {
        return Platform;
    }

    public void setPlatform(String platform) 
    {
        Platform = platform;
    }

    public String getDeveloper() 
    {
        return Developer;
    }

    public void setDeveloper(String developer) 
    {
        Developer = developer;
    }

}

SearchGame()
中创建一个新的
Games
对象,然后使用
getTitle()
,甚至不设置标题。在
SearchForGame()
中,您确实设置了标题,但是您应该将
Games
对象传递到
SearchGame()
并存储返回的对象。(
SearchGame()中的
g
SearchForGame()中的
g
是两个不同的对象)

我会尝试调试应用程序。
rs.getInt(“GameId”)
是否返回任何内容?数据库中有数据吗?是的,我的表中至少有4行,它们包含其他字段的数据?你能把
游戏
类的代码也贴出来吗?