2013-01-08 3 views
2

현재 게임용 플러그인을 만들고 SQLite를 사용하고 있습니다 (단, MySQL에서도 작업 할 수있는 솔루션이 필요합니다). 이미 하나의 버전을 출시했지만 새 버전은 테이블을 변경해야합니다.효율적으로 테이블 레이아웃을 확인하고 필요한 경우 업데이트합니다.

테이블의 모든 열이 있는지 확인하고 데이터 손실없이 테이블을 업데이트하지 않으면 Java에서 가장 효율적인 방법은 무엇입니까?

답변

0

당신은 새 버전의 첫 번째 실행에 테이블을 변경, 또는 가능한 많은 다른 솔루션이 있습니다

try { 
    readData(); 
} catch (SQLException e) { 
    // if the cause is missing new columns 
    alterTables(); 
    readData(); 
} 

처럼 뭔가를 할 수 있습니다.

+0

아마도'String' 배열을 포함합니다 테이블의 열 이름을 모두 가져 와서 'ResultSet.getMetaData(). getColumnName (int)'로 모두 반복하면 @jlordo가 제안하는대로 수행합니다. – Logan

0

liquibase을 사용하여 각 버전 이후에 데이터를 생성/마이그레이션 할 수 있습니다. Liquibase는 설정 파일 (.xml)을 기반으로 변경 사항을 생성 한 다음 나중에 설정 파일에 변경 사항을 추가하면 자동으로 이전 데이터베이스를 업데이트합니다.

관련 문제