0
메신저가 java로 sqlite에 txt 파일을 만들려고 시도하고있다.InputMismatchException? 나는 아직도 그것을 이해할 수 없다.
(ID, 이름, 카테고리 XCOORDINATE, y 좌표, 길이, 폭, FLOOR)
유형 질서 INTEGER 텍스트 문자이다 INT INT INT INT. (나는 AUTOINCREMENT에 의해 ID를 만들 수 있습니다.) 여기
maleToilet room -58 0 58 48 9
femaleToilet room -58 -48 58 48 9
메인 코드 처럼예는 다음과 같습니다
import java.sql.*; import java.io.*; import java.util.*; class Read{ public Scanner input; public void openFile() { try { input = new Scanner(new File("D:\\room.txt")); } catch (FileNotFoundException fileNotFoundException) { System.err.println("Error opening file."); System.exit(1); } } public void closeFile() { if (input!=null) input.close(); } } public class TxtToSqlite { public static void main(String args[]) { Read r = new Read(); Connection c = null; Statement stmt = null; try { Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:test.db"); c.setAutoCommit(false); stmt = c.createStatement(); //create the schema /*String sql = "CREATE TABLE ROOM " + "(ID INTEGER PRIMARY KEY AUTOINCREMENT," + " NAME TEXT NOT NULL, "+ " CATEGORY TEXT NOT NULL, "+ " XCOORDINATE REAL NOT NULL, "+ " YCOORDINATE REAL NOT NULL, "+ " LENGTH REAL NOT NULL, "+ " WIDTH REAL NOT NULL, "+ " FLOOR INT NOT NULL)";*/ r.openFile(); String sql = null; int i = 1; while(r.input.hasNext()){ sql = "INSERT INTO ROOM (NAME,CATEGORY,XCOORDINATE,YCOORDINATE,LENGTH,WIDTH,FLOOR) " + "VALUES ("+"'"+r.input.next()+"', '"+r.input.next()+"', "+ r.input.nextInt()+", "+r.input.nextInt()+", "+ r.input.nextInt()+", "+r.input.nextInt()+", "+r.input.nextInt()+");"; stmt.executeUpdate(sql); i++; } r.closeFile(); stmt.close(); c.close(); } catch (InputMismatchException e) { System.out.print("Input Error!"); } catch (Exception e) { System.err.println(e.getClass().getName() + ": " + e.getMessage()); System.exit(0); }
} }
하지만 발생 InputMismatchException. 그럼 누구도 도와 줄 수 있습니까? 감사합니다 :)
가 BTW, 내가 http://www.tutorialspoint.com/sqlite/sqlite_java.htm 에서 SQLite는-JDBC-3.7.2.jar를 다운로드하여 참조 라이브러리로합니다.
'exception'을 위해 얻고있는'stacktrace'를 추가하십시오. 또한 어떻게 당신이 테이블을 만드는 당신'sql schema'을 추가 하시겠습니까? – Smit
이 예외 (http://docs.oracle.com/javase/7/docs/api/java/util/InputMismatchException.html)는 다음과 같은 조건에서 스캐너 개체로부터 가져옵니다. "검색된 토큰은 예상 유형의 패턴과 일치하지 않거나 토큰이 예상 유형의 범위를 벗어남 * " –
각 필드의 데이터 유형이 주된 이유입니까? REAL의 경우 XCOORDINATE와 비슷하지만 nextInt()를 사용합니까? – newman