JConnector를 실행하여 데이터베이스에서 데이터를 가져옵니다 (mysql 사용). Secure Shell에서 쿼리를 실행하여 데이터를 검사했는데 정상적으로 작동했습니다. 그러나, 내 프로그램을 실행할 때 NullPointerException 던져, 첫 번째 행을 읽습니다. 나는 한 달 동안 자바를 배웠다. 그래서 내 질문이 너희들에게 이상하게 들리더라도 미안하다. 이것은 내가 내 테이블 생성 쿼리입니다executeQuery()를 실행하는 동안 발생할 수있는 예외는 무엇입니까
private void loadNodesFromDatabase()
{
Statement stmt = Database.connect();
String query = "SELECT * FROM Node";
ResultSet res;
try
{
res = stmt.executeQuery(query);
while(res.next())
{
Integer id = res.getInt("Id");
String position = res.getString("Position");
String rule = res.getString( "RuleOnMap");
Integer foodTax = res.getInt( "FoodTax");
boolean mapValue = res.getBoolean("MapValue");
Node n = new Node(id, PointOnGraph.parse(position), Node.RuleOnMap.valueOf(rule), foodTax, mapValue);
System.out.println(n);
nodes.add(n);
}
res.close();
}
catch(Exception e)
{
System.out.println("Selection Error: " + e);
}
}
: 이 내 코드입니다
mysql> CREATE TABLE Node (Id INT(3), Position VARCHAR(12), RuleOnMap VARCHAR(6), FoodTax INT(2), MapValue TINYINT(1), PRIMARY KEY(Id));
는 그리고 이것은 이클립스에서 오류 메시지입니다 :
(1, '20,20,88', PAY, 10, false)
Selection Error: java.lang.NullPointerException
...
감사합니다,
e.printStackTrace()를 호출 한 후;
(1, '20,20,88', PAY, 10, true)
Selection Error: java.lang.NullPointerException
java.lang.NullPointerException
at Game.Game.loadNodesFromDatabase(Game.java:177)
at Game.Game.<init>(Game.java:31)
at Test.GameLoadDatabseTest.loadNodesTest(GameLoadDatabseTest.java:30)
at Program.main(Program.java:39)
Exception in thread "main" java.lang.NullPointerException
at Test.GameLoadDatabseTest.loadNodesTest(GameLoadDatabseTest.java:32)
at Program.main(Program.java:39)
안부,
처음n
과 같은
안녕하세요, Chan 님, 예외가 발생하는 행을 알 수 있습니까? 메시지에 표시되어야합니다 (그렇지 않으면 예외의 처음 몇 줄을 여기에 게시하십시오). 또한 하나의 노드를 읽은 후 또는 전에 노드가 throw 된 예외입니까? – Joel
안녕하세요 Joe, 독서에 감사드립니다. 첫번째 루프를 읽은 후 (즉, while 루프에서) 예외가 발생했습니다. – Chan
아니요, 그는 예외를 잡아 내고'System.out.println (...) '을 사용하여 인쇄합니다.'System.out.println (...)'메소드는 클래스 이름과 메시지를 기본으로하는'Exception.toString()'메소드 만 호출합니다. 스택 추적을 포함하십시오. 스택 트레이스를 출력하고 싶다면'e.printStackTrace()'를 사용해야한다. – Reboot