• 締切済み
  • 困ってます

javaからAccessをアクセスするときにファイルを直接指定できないのですか?

JavaでMicrosoft Accessにアクセスするときに以下のプログラムでアクセスしました。 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection("jdbc:odbc:DBs"); このプログラムを作成する前にODBC データソース アドミニストレータでデータベースの登録を行いました。 データベース名はデータソース名に拡張子を付けた名前にしました。 ODBC データソース アドミニストレータの登録を行わずにプログラムの中にファイルの場所を記述してMicrosoft Accessにアクセスすることはできないのでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数248
  • ありがとう数2

みんなの回答

  • 回答No.1

2パターン odbcconf.exe(コマンド) で登録してできるみたいです。 が削除できないみたいですし、 コマンドの発行が失敗した場合とか 面倒そう。 あと1つは JNIで出来るみたいです。 DLL作成まで試しにやってみましたが、 簡単にできましたよ。 どうせ私はAccessを持っていないので それ以上はやりませんでしたが。 下記URLを参考にどうぞ。

参考URL:
http://wiki.paulownia.jp/java/jni

共感・感謝の気持ちを伝えよう!

質問者からのお礼

public_saさん、 お返事ありがとうございます。 今回、作成したいプログラムはデータベースのパスをフォーム上の入力欄から入力してもらい、データベースにアクセスするプログラムを作るつもりでした。 javaでMicrosoft Accessにアクセスしたことがないので自分の作りたいものと質問が合いませんした。 質問の仕方が悪かったと思います。すみませんでした。

関連するQ&A

  • JDBCでaccessから取得したデータをjTableに表示させたい。

    JDBCでaccessのデータベースから取得したデータをjTableに表示させたいのですが どのようにしたらセルのデータやタイトルを入力させることができますか? またデータベースを操作したらその結果を表示させたいと考えています。どのようにすれば実現できるでしょうか? accessのデータベースには以下のように接続していました。 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String str = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=hello.mdb"; Connection con = DriverManager.getConnection(str, "", ""); 開発環境はNetBeansを使用しています。

  • javaでMySQLのデータ検索

    以下のサイトでただいま勉強しています。環境はMySQL4.0.15です。 http://msugai.fc2web.com/java/JDBC/mmMySQL.html ●JDBC ソースコードのところでつまづいています。 javaの実行 C:\java>java JdbcSample Exception: com.mysql.jdbc.Driver java.lang.ClassNotFoundException: com.mysql.jdbc.Driver  … // 1.JDBC Driver の登録 // 2.データベースへの接続 のあたりでエラーが発生している状態です。データベースの接続はAccess環境なら『コントロールパネル』→『管理ツール』→『データソース(ODBC)』で使用するデータベースを設定します。MySQLもこのあたりの設定が必要なんでしょうか? ●Accessの場合 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection Con = DriverManager.getConnection("jdbc:odbc:設定したデータベース名"); アドバイスお願いします。

  • java データベース接続

    javaの勉強していまして、質問があります。よろしくお願いします。 javaでデータベースの接続ができなくて迷っております。ずっとネットで調べてもダメでした。 ネットで調べたとおりにやっても、 例外発生:java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver このようなエラーがでます。 eclipseを使ってます。windows7 練習にアクセスにつなごうと思ってます。 事前にデータソース(ODBC)の登録はしました。 ドライバーとかインストールするものなのでしょうか? package sample; import java.sql.Connection; import java.sql.DriverManager; public class Hello { public static void main(String args[]) { try { //JDBCドライバのロード Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //各設定 String url = "jdbc:odbc:SampleDB030"; String user = ""; String pass = ""; //データベースに接続 Connection con = DriverManager.getConnection(url,user,pass); System.out.println("接続成功"); //データベースを切断 con.close(); } catch (Exception e) { System.out.println("例外発生:" + e ); } } }

    • ベストアンサー
    • Java
  • Tomcat上でMS-ACCESSに接続しようとするとメモリ不足になる

    Tomcatサーバー上で、MS-AccessにODBC経由で接続しようとすると、 "java.sql.SQLException [Microsoft][ODBC Microsoft Access Driver] メモリ不足です。" というエラーになってしまいます。 Javaのコードは、以下のようになります。 --------------------------------------------------------- Connection conn = null; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection("jdbc:odbc:データソース名"); --------------------------------------------------------- 上記3行目の、DriverManagerの部分でエラーになってしまいます。 同じサーバー上でOracleやDB2へのJDBC接続は問題なく接続できます。 TomcatのJavaメモリ設定は、以下のようになっております。 Initial memory pool : 1024 MB Maximum memory pool : 1536 MB Thread stack size : 1024 MB サーバーの物理メモリは2GBで、通常時のメモリ使用量はおおよそ1.4GB程なのでメモリ不足にはならないと思われるのですが、なぜ接続できないのでしょうか? また、同じプログラムをローカル上で実行した場合には、問題なく接続できます。 尚、サーバーの環境は以下のようになります。 OS : Windows 2003 Server R2 メモリ : 2GB Tomcatのバージョン : 5.5 JDKのバージョン : 1.5 以上、宜しくお願い致します。 

  • AccessのデータをjavaプログラムからSQL文を使って操作したい。

    フォーム上の入力欄で入力したデータベースのパスを使って、Accessのデータをjavaプログラムから SQL文を使って操作したいのですがどのような手段があるでしょうか? javaとAccessの接続について初めてで条件に合った方法を探せずにいます。 以下がこれまで試みた手段です。 JDBC-ODBCを使った場合、パスの設定がプログラム上で設定できませんでした。ODBC データソース アドミニストレータで登録をしなければなりませんでした。 jackcessはパスを入力欄から入力できましたが、SQL文が使えませんでした。

    • ベストアンサー
    • Java
  • Javaでデータベースにアクセス

    するときに以下のように Class.forName (driver); をする必要があるのですが これの意味を教えてください なぜこれが必要なのでしょうか? ・・・・・・・・・・・・・ // JDBCドライバの登録 String driver = "org.postgresql.Driver"; // データベースの指定 String url = "jdbc:postgresql://fedorasrv.com/test"; //サーバ名またはIPアドレス+データベース名 String user = "fedora"; //データベース作成ユーザ名 String password = "XXXXXXXX"; //データベース作成ユーザパスワード Class.forName (driver); // データベースとの接続 Connection con = DriverManager.getConnection(url, user, password); ・・・・・・・・・・・・・・

    • ベストアンサー
    • Java
  • なぜ「アクセス」なんですか?

    WWWからデータベースへアクセスするjavaプログラム作成時によく「MS ACCESS」を使用するのはなぜなんですか?JDBCで直接データベースへアクセスできるようなデータベースがあればわざわざODBCを使用しJDBC-ODBC bridgeで橋渡しをしなくてもJDBCだけでできるんではないですか?また直接アクセスできるデータベースがない等の問題点があるのですか?教えてください.よくわからないのでお願いします.(質問が的はずれだったらすみません.まだ勉強がたりないもので...)

  • Java環境で使用するAccessデータベースについて

    以下の様な開発環境でシステムを構築しています。 OS:windowsXP DB:Microsoft Access 2002 j2sdk:1.4.2_05 Tomcat:4.1.30 Web上で登録画面を表示、登録されたデータをサーブレット経由でDBに登録しようとしたところ、「パラメータが少なすぎます」というメッセージが出て登録できませんでした。 DBおよびSQL構文のエリア名の記入ミスも調べましたが問題ない模様です。 AccessのODBCドライバ(MDAC2.5)について調べたところ、MDAC2.5を使用したSQL文では二重引用符(”)を文字列リテラルとして使用できないようです。 この問題を回避するよい方法があれば、ぜひ教示願います。 <コーディング内容> //postされた内容を受け取る String wkkanri = request.getParameter(“kanri_No”); String wkroom = request.getParameter(“room_No”); ------------------------------------------------- //ドライバクラスのロード、DB接続 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); Connection con = DriverManager.getConnection(“jdbc:odbc:syataku”); Statement stmt = con.createStatement(); //insert用sql文の発行 String sql = “insert into kihon(kanri_No,room_No) values(wkkanri,wkroom)”; Stmt.executeUpdate(sql);

  • AccessDBのデータの抽出

    はじめまして。 JAVAを勉強しだしてまだ一週間でわからないことが まだ多いのでご教授よろしくお願いします。 開発環境はForte for, Community Edition v. 3.0で サーバーはApache Tomcat/4.0.3です。 サーブレットクラスファイルの中で Accessのデータベースからデータを抽出して そのデータを表示させたいのですが、ドライバを ロードする Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver") の部分で DBaccess/DBaccess.java [15:1] 例外 java.lang.ClassNotFoundException は報告されません。スローするにはキャッチまたは、スロー宣言をしなければなりません。 Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); エラー 1 個コンパイルエラー DBaccess. がでるのですがエラーになる原因がわかりません。 アドバイスよろしくお願いします。

    • ベストアンサー
    • Java
  • Tomcat上で動くサーブレットがデータソースを見つけられない

    こんにちは。 以前にjdbcとサーブレットに関する質問をさせてもらった者です。 以前の質問に対する皆さんのご回答のおかげで、以前の問題は解決し、あとは自分でなんとかすると言っていたのですが… 新たな問題に直面しまして自分なりに努力はしたのですが、やはり解決には至らず、結局皆さんの助言を賜りたくて来ました。 JDBC-ODBCブリッジドライバを使って、Oracle10gデータベースを問い合わせるTomcat6.0サーバ上で動作するサーブレットの構成を行っています。 データベース、サーバ、サーブレットは同一のハードウェア内で動作しています。 環境は以下の通りです。 データベース : Oracle10g 使用ポート番号:8081 データソース名:OracleInXE サーバ : Tomcat6.0 使用ポート番号:8080 接続API : jdbc-odbcブリッジドライバ データベース接続部のソースを一部抜粋します。 ~ Connection connection = null; Statement statement = null; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); connection = DriverManager.getConnection("jdbc:odbc://localhost:8081/OracleInXE",user.getName(),user.getPassword()); statement = connection.createStatement(); ~ SQLExceptionで取得したスタックトレースの内容を記述します。 [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバが見つかりません。 at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source) at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at employeeManagementSystem.Query.authentication(Query.java:59) at Run.main(Run.java:33) しかし上記の場合だとSQLExceptionga発生し、"データ ソース名および指定された既定のドライバが見つかりません。"と表示されます。 サーブレットがデータソースを見つけられない原因は何でしょうか。 あと、その解決法や、役立つ情報があれば教えて下さい。 宜しくお願いします。 データソースのURLが間違っているのでしょうか。 また、ドライバクラスとURL表記の組み合わせも色々あるみたいでややこしいです… 何か、小さい事に引っかかっている感じがするのですが。

    • ベストアンサー
    • Java