2011-01-10 5 views
1

나는 안드로이드 SDK와 데이터베이스에 상당히 익숙하며 꽤 오랫동안이 해답을 찾고있다.안드로이드 플랫폼에서 sqlite 데이터베이스의 확장 액세스

데이터베이스 내에 여러 테이블이있는 앱을 만들려고합니다. 예 : 무기, 갑옷 등을위한 것.

그러나 DatabaseHelper 내부 클래스를 생성하고 데이터를 채우는 모든 테이블을 처리하는 내 DatabaseManager 클래스는 높은 유지 관리가 필요한 매우 큰 클래스를 위해 생성됩니다. 테이블 열을 추가하거나 제거 할 때마다 상당 부분 코드를 변경해야합니다. - 데이터가있는 해당 테이블의 행 추가에 대한 모든 참조 - 위 메서드가 호출하는 방법 - 메서드 은 확실히 어쩌면 데이터베이스 ISN을 사용하여,이 시스템을 코딩의 더 좋은 방법이있을 : - 테이블 을 만드는 헬퍼 클래스의 코드 - 데이터베이스 행 을 모두 반환 어떤 특정 업데이트 방법

내 질문은 이것이다 최선의 방법은 아닙니다. 아니면 대학에서 Java를 배우고 400-600 줄의 코드로 구성된 가장 큰 수업을하는 등 큰 수업에는 익숙하지 않습니다.

도움 주셔서 감사합니다.

+1

질문과는 다소 다른 메모가 있는데, 나는 400-600 줄의 코드를 가진 수업이 그만큼 커야한다고 말하고 싶습니다. 수업이 커지기 시작할 때 리팩토링에 대해 생각해보십시오. – dhaag23

답변

0

소스 코드 생성을 사용할 수 있습니다. jOOQ에 의해 제공되는 것. examples page을 참조하십시오. 개발 데이터베이스에서 소스 코드를 생성 할 때 기본 데이터베이스에 액세스하는 Java 코드가 항상 최신 상태인지 확인할 수 있습니다. 구조적으로 데이터베이스의 내용이 변경되면 관련된 모든 장소에서 컴파일 오류가 발생합니다. 그렇게하면 아무 것도 잊지 않을 수 있습니다.

반면에 테이블에 필드를 추가하고 해당 테이블에 삽입/업데이트하려는 경우 해당 필드는 모든 삽입/업데이트 문에서 자동으로 고려됩니다.

위의 이점 외에도 원하는 IDE (예 : Eclipse)를 사용하여 SQL 문을 자동 완성하도록 할 수 있습니다.

SQLite에 대한 지원은 여전히 ​​jOOQ에서 약간 실험적입니다. 모든 의견을 환영합니다!

+0

프로젝트가 SQLite를 위해 얼마나 멀리 개발 되었습니까? 이것은 흥미로 웠고 확실히 이것을 보게 될 것입니다! 고맙습니다. – mscriven

+0

내 모든 통합 테스트가 원활하게 실행되며 SQLite에도 적합합니다. 즉, 개발 스키마에서 소스 코드를 생성하고 중첩 된 선택 항목, 유니온 등을 포함한 모든 CRUD 작업을 실행할 수 있다는 것을 의미합니다. "실험적"이란 SQLite의 느슨한 유형 시스템에 대한 많은 경험이 없다는 의미입니다. jOOQ는 다른 RDBMS와 마찬가지로 SQLite에 엄격한 유형의 시스템을 적용합니다. 즉 숫자 열에 문자열이 있거나 그 반대 인 경우 jOOQ에 문제가 발생할 수 있습니다. 앞으로도 계속 지원할 계획입니다. –

관련 문제