2011-06-11 3 views
3

일부 사람들은 내 Android 오픈 소스 소프트웨어를 Blackberry 및 PC (또한 SQLite 사용)로 이식하려고합니다.SQLite OS- 추상화 계층?

도메인/데이터베이스 코드에서 UI 코드를 분리했습니다. 그러나 다음 문제는 도메인/데이터베이스 코드에 다음과 같은 수입이 포함되어 있습니다.

import android.database.Cursor; 

... 휴대용이 아닙니다.

다른 많은 개발자들도 같은 문제가 있다고 생각합니다. 따라서 SQLite OS- 추상화 레이어가 어딘가에 존재해야합니다. 너는 무엇을 제안 하겠는가?

참고 : SQLite 관련 기능을 사용하므로 ORM 또는 데이터베이스 추상화 계층이 수행하지 않습니다.

답변

3

현재 Android 용 특히 ORM 프로젝트를 개발 중입니다.

https://github.com/ahmetalpbalkan/orman

당신은 SQLite는 고유의 어떤 기능을 사용합니까?

어쩌면 당신은, 인터페이스를 만들려면 코드

Database db = null;  
if (environment is android){ 
    db = new AndroidSQLiteDatabaseImpl(); 
} else { 
    db = new MyBlackberrySQLiteImpl(); 
} 

두 클래스는 동일한 인터페이스를 구현할 때, 당신은되지 않습니다처럼 뭔가를 할 수 있도록 모두 android.jarthe_jar_for_blackberry.jar로 컴파일 할 수 있습니다 문제가 생겼다. 당신이

import android.database.Cursor

AndroidSQLiteDatabaseImpl.java과 전혀 초기화하지 않으면 말하는 경우에 때문에, 예외가 발생되지 않습니다.

우리 프로젝트의 소스 코드를 볼 수 있습니다. 빌드시에는 android.jar으로 컴파일하지만, 단일 jar 파일 만 출하하면 모든 데스크톱 프로그램 사용자가 MySQL 및 고유 SQLite에 사용할 수 있습니다. 그들은 AndroidSQLiteDtabase 클래스를 초기화하지 않으므로 예외가 발생하지 않기 때문입니다.

+0

SQLite 관련 기능 : 파일에서 데이터베이스를로드하는 중입니다. 나머지는 꽤 표준적인 (그러나 고급) SQL입니다. –

+0

내 라이브러리가 그 라이브러리를 지원합니다. 파일 이름을 지정하면 Android에서 나머지 파일을 처리합니다. 네이티브 쿼리를 실행할 수도 있습니다 (그러나 쿼리 작성기는 고급 쿼리를 작성할 수도 있습니다). ORM 솔루션을 사용하고 싶다면 도움을 드릴 수 있습니다. –