2012-03-23 11 views
1

私は、Mac OSXの新しいアプリケーション開発者であり、XcodeとOSX開発のバラエティを学んでいます。この段落の残りの部分はスキップし、必要に応じて次の段落にジャンプしてください。ちょっとした背景 - 私は過去30年間コンピュータの分野で何かをしてきました。ソフトウェア開発者は25年間です。私はWindows開発ツールからOSXに移行しています。JDBC(jTDS)とXcode 4.3を搭載したMac OSXアプリケーション

OK - Mac Mini Serverで動作するシンプル(?)OSXアプリを書いています。サーバーは、iPad iOSアプリケーションとWindows Server 2008上のWindowsベースのMS SQL Serverデータベースとの間の「ミドルウェア」として動作します。

SourceForgeからjTDSドライバを使用することに決めました。 SQLドライバを選んで必要なパラメータを設定し、データベースに接続できるSQuirreL OSXアプリをダウンロードしました。チャンピオンのように働いた!私は私のアプリで同じことをしたいが、私はアプリに.jarファイルを含める方法を知らないし、それを実行して起動する。私は、適切なドキュメント、特にソースコードのサンプルへのポインタに感謝します。 XcodeでJava ODBCドライバを使用する際のドキュメントファイルがありますが、古いバージョンであり、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でインスタンスを登録して、()にDriverManager.getConnectionを呼び出すことができると思います。しかし、私はそれがうまくいくかどうかは完全にはわかりません。ドライバインスタンス上で直接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