2013-10-25 4 views
0

Позвольте мне дать краткое объяснение. В июле я провел 5-недельный курс через компанию на Java. Они охватывали основные вещи, такие как консольное приложение, crud-операции, mysql и n-уровневую архитектуру. Поскольку курс закончился, я не использовал его много, потому что я вернулся к работе, и другие медицинские причины всплыли .... бла-бла.мой метод поиска подходит со всеми нулями

Мне сказали, что компания сделала простую программу, чтобы отразить то, что я узнал. Оказывается, я сохранил очень мало.

Я решил создать программу для видеоигр. Он будет использоваться для просмотра ваших видеоигр, поэтому вам не нужно будет искать ваш книжный шкаф (или как всегда хранить свои игры.)

Это базовое консольное приложение, использующее операции crud с MYSQL. Я не могу заставить свою функцию поиска работать на самом деле. У меня есть 2 слоя уровня представления и уровня логики. Метод поиска позволяет им искать игру по названию. когда я приношу запустить программу и использовать Search, она отображает только заголовок, а остальная часть - null. вот мой Презентация слой:

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 

любая помощь будет принята с благодарностью и спасибо заранее


EDIT: Вот мой код для моего класса игр

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; 
    } 

}

+0

Я бы попытался отладить приложение. Возвращает ли 'rs.getInt (« GameId ») что-нибудь? Есть ли данные в базе данных? – JLe

+0

Да, в моей таблице есть как минимум 4 строки –

+0

И они содержат данные для других полей? Не могли бы вы также опубликовать код для класса «Игры»? – JLe

ответ

0

В SearchGame() вы создаете новый объект Games, то вы используете getTitle() даже без установки названия. В SearchForGame() вы установили заголовок, но вы должны передать свой Games объект SearchGame() и сохранить возвращенный объект. (g в SearchGame() и g в SearchForGame() - это два разных объекта)

Смежные вопросы