2012-03-23 2 views
1

저는 Xcode 및 OSX 개발의 모호함을 배우는 과정에있는 새로운 Mac OSX 앱 개발자입니다. 이 단락의 나머지 부분은 건너 뛰고 원하는 경우 다음 단락으로 건너 뛰십시오. 약간의 배경 - 저는 지난 30 년 동안 컴퓨터 분야에서 25 년 동안 소프트웨어 개발 업체로 일해 왔습니다. Windows 개발 도구에서 OSX로 전환하고 있습니다.Xcode가 설치된 JDBC (jTDS) 및 Mac OSX 앱 4.3

확인 - Mac Mini Server에서 실행되는 간단한 (?) OSX 앱을 쓰고 있습니다. 서버는 iPad iOS 응용 프로그램과 Windows Server 2008의 Windows 기반 MS SQL Server 데이터베이스 사이의 "미들웨어"역할을합니다.

SourceForge의 jTDS 드라이버로 작업하기로 결정했습니다. SQL 드라이버를 선택하고 필요한 매개 변수를 설정하고 데이터베이스에 연결할 수있는 SQuirreL OSX 앱을 다운로드했습니다. 챔피언처럼 일 했어! 내 애플 리케이션과 동일한 일을하고 싶지,하지만 내 애플 리케이션에. jar 파일을 포함하는 방법을 모르겠어요 그리고 그것을로드 실행 abd. 나는 적절한 문서와 특히 소스 코드 샘플에 대한 조언을 주시면 감사하겠습니다. Xcode와 함께 Java ODBC 드라이버를 사용하는 경우 doc 파일이 있지만 오래된 버전이며 더 이상 Xcode의 현재 버전에 적용되지 않습니다.

어떤 도움을 주시면 감사하겠습니다. 특히 소스 코드 샘플이 좋습니다. TIA와 다른 모든 OSX 개발자들에게 최고의 도움이됩니다.

답변

0

(초기) 클래스 경로에있는 클래스와 함께 Java에서 클래스를로드 할 수 있습니다.

문제의 .jar 파일로 URLClassloader를 만들고 클래스를로드하고 새 인스턴스를 만들어야합니다. 해당 인스턴스를 사용하여 새 연결을 만들 수 있습니다.

뭔가 대안으로

URL[] libs = new URL[1]; 
File jarFile = new File("/path/to/jtds.jar"); 
libs[0] = jarFile.toURI().toURL(); 

URLClassLoader loader = new URLClassLoader(libs, ClassLoader.getSystemClassLoader()); 

Class drvClass = this.classLoader.loadClass("net.sourceforge.jtds.jdbc.Driver"); 

Driver drv = (Driver)drvClass.newInstance(); 
Properties props = new Properties(); 
props.put("user", "my_db_user"); 
props.put("password", "very_secret_password"); 

Connection con = drv.connect("jdbc:jtds:sqlserver://someserver", props); 

처럼, 나는() 당신은 또한 DriverManager.getConnection를을 DriverManager를 가진 인스턴스를 등록하고 호출 할 수 있다고 생각합니다. 그러나 그것이 작동하는지 나는 완전히 확신하지 못합니다. 드라이버 인스턴스에서 직접 connect()을 호출하면 확실히 작동합니다.

+0

멋진! 코드 샘플을 보내 주셔서 감사합니다. :-) – Brian

0

JAR을/lib 디렉토리에 넣고 시작했기 때문에 SQL Squirrel에서 작동했습니다. SQL Squirrel은 Java Swing 앱입니다./lib 디렉토리의 모든 JAR이 CLASSPATH에 있다고 가정하므로 Java JVM이 시작되면 jTDS 드라이버 JAR과 Bob이 삼촌을 찾습니다.

X 코드와 비슷한 작업을해야합니다. 타사 JAR 파일을 찾을 위치와 jTDS JAR 파일을 넣어야합니다.

"Java ODBC 드라이버"라고 썼습니다. "Java JDBC 드라이버"를 의미합니까?

+0

예, 물론 JDBC 드라이버. – Brian

+0

그냥 명확히하고 싶었습니다. 고맙습니다. – duffymo