현재 게임용 플러그인을 만들고 SQLite를 사용하고 있습니다 (단, MySQL에서도 작업 할 수있는 솔루션이 필요합니다). 이미 하나의 버전을 출시했지만 새 버전은 테이블을 변경해야합니다.효율적으로 테이블 레이아웃을 확인하고 필요한 경우 업데이트합니다.
테이블의 모든 열이 있는지 확인하고 데이터 손실없이 테이블을 업데이트하지 않으면 Java에서 가장 효율적인 방법은 무엇입니까?
현재 게임용 플러그인을 만들고 SQLite를 사용하고 있습니다 (단, MySQL에서도 작업 할 수있는 솔루션이 필요합니다). 이미 하나의 버전을 출시했지만 새 버전은 테이블을 변경해야합니다.효율적으로 테이블 레이아웃을 확인하고 필요한 경우 업데이트합니다.
테이블의 모든 열이 있는지 확인하고 데이터 손실없이 테이블을 업데이트하지 않으면 Java에서 가장 효율적인 방법은 무엇입니까?
당신은 새 버전의 첫 번째 실행에 테이블을 변경, 또는 가능한 많은 다른 솔루션이 있습니다
try {
readData();
} catch (SQLException e) {
// if the cause is missing new columns
alterTables();
readData();
}
처럼 뭔가를 할 수 있습니다.
liquibase을 사용하여 각 버전 이후에 데이터를 생성/마이그레이션 할 수 있습니다. Liquibase는 설정 파일 (.xml)을 기반으로 변경 사항을 생성 한 다음 나중에 설정 파일에 변경 사항을 추가하면 자동으로 이전 데이터베이스를 업데이트합니다.
아마도'String' 배열을 포함합니다 테이블의 열 이름을 모두 가져 와서 'ResultSet.getMetaData(). getColumnName (int)'로 모두 반복하면 @jlordo가 제안하는대로 수행합니다. – Logan