JavaからSqlServer2008への接続

このQ&Aのポイント
  • JavaとEclipseを使用して、SqlServer2008への接続方法を学んでいます。
  • Midldegenプラグインを使用して、Hibernateのファイルを作成しようとしていますが、うまくいきません。
  • Sql Server Management Studio2008でsaでログインし、[db1]というデータベースを作成し、その中に[tbl1]というテーブルを作成しています。
回答を見る
  • ベストアンサー

JavaからSqlServer2008への接続

Java + EclipseからSqlServer2008への接続を勉強しています。 MidldegenというEclipseのプラグインを入れてhibernateのファイルを作成しようと試しているのですがうまくいきません。 Sql Server Management Studio2008でsaでログインし、[db1]というデータベースを作成し、その中に[tbl1]というテーブルを作成しています。 新規追加でMidldegenを選択するとフォームが表示されます。 フォームには以下の入力項目があります。 JDBC jar ->・・・sqljdbc.jar JDBCドライバ ->com.microsoft.sqlserver.jdbc.SQLServerDriver データベースURI ->jdbc:sqlserver://localhost:1433;databaseName=db1 ユーザ ->sa パスワード ->saのパスワード スキーマ ->空白です カテゴリ ->空白です ビューを含める ->false この状態でテーブル読み込みをすると 「データベース'%'が存在しません。名前が正しく入力されていることを確認してください。」 というエラーが出ます。。。 データベースURI ->jdbc:sqlserver://localhost:1433;databaseName=サーバ名\db1 とし、テーブル読み込みをすると 「このログインで要求されたデータベース"サーバ名\db1"を開けません。ログインに失敗しました。」 というエラーが出ます。。。 どなたかご教示よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

#1です。ちょっと時間があったのでmiddlegenで試してみました。 確かに日本語は「カテゴリ」になっていますが、これは「カタログ」の間違いですね。 「スキーマ」「カテゴリ」を指定したら接続できました。 少し気になっていたのは、質問者さんは少し前にSQL Server 2008のExpress Editionを入れていませんでしたか? そのときにデフォルトインスタンスに変更してインストールしたのですか?Express EditionはデフォルトではSQLEXPRESSインスタンスでインストールされますし、TCP/IPが無効なので、JDBCで使うにはTCP/IPを有効にして固定ポートを割り当てる必要があると思いますが。。

kuuchan00
質問者

お礼

すみません。 SqlServer2008 ExpressEdtionを入れて勉強しています;; >TCP/IPを有効にして固定ポートを割り当てる必要があると思いますが TCP/IPを有効にして固定ポートを割り当てました。 >#1です。ちょっと時間があったのでmiddlegenで試してみました。 態々試していただいてありがとうございます! >確かに日本語は「カテゴリ」になっていますが、これは「カタログ」の間違いですね。 そうなんですね。SqlServerもmiddlegenもあまり分かってなくて。。。 middlegenですが、 DBURI ->jdbc:sqlserver://localhost:1433;databaseName=db1 スキーマ ->dbo カタログ ->tb1 でうまくいきました! この部分で5日ぐらい悩んでいましたので、接続することができてよかったです。 どうもありがとうございました!

その他の回答 (1)

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

JDBCは1.2ですか? >スキーマ ->空白です >カテゴリ ->空白です Middlegenを使ったことはありませんが、ここは「カタログ」ではないですか?通常接続に失敗している人はここを指定しないケースが多いみたいですね。 スキーマ:dbo カタログ:db1 手元に試せる環境がないので、見当違いならばごめんなさい。

関連するQ&A

  • JavaとSQLServer2000の接続について

    サーブレットでJDBCデータソースを使ってDB接続をしようと試みておりますが, <Tomcatエラー表示> 「NameNotFoundException 名前"Java:comp"がデータソースにバインドしておりません」 のエラーが出ており接続が確立できません。webアプリケーションはTomcat4.1.30を使っています。再度念のため[Tomcatフォルダ]\common\libにある接続に必要なjarと[Tomcatフォルダ]\conf\server.xmlの中身を確認し,classのDataSource名が不整合になっていないかを確認しましたが,やはり上述のエラーが出てしまいます。 そこでエラーの内容はどのようなことをさしているのかまた,このエラーへの対策もしくは接続設定の際の確認事項などをご教授していただきたくお願いいたします。 何分まだまだ勉強不足なもので補足情報が必要であればご提供します。 [server.xmlの設定] <Resource name="jdbc/myApp" javax.sql.DataSource"/> <ResourceParams name="jdbc/myApp"> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>password</name> <value>AAAA</value> </parameter> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://localhost:1433;databaseName=COSMO;SelectMethod=Cursor</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>maxIdle</name> <value>100</value> </parameter> <parameter> <name>username</name> <value>AAAA</value> </parameter> </ResourceParams>

    • ベストアンサー
    • Java
  • JavaサーブレットからSQL Server の接続ができません。

    環境は、 OS:win XP Webサーバ:tomcat5.5 統合開発環境:eclipse3.2 DB:SQL server 2005 です。 SQLserverのJDBCドライバ(sqljdbc.jsp)を、%CATALINA_HOME%common/libに配置し、DB接続用のサーブレットを作成、デバッグを行いましたが、 com.microsoft.sqlserver.jdbc.SQLServerException: TDS ログイン前応答が不完全です。対象サーバーは SQL Server 2000 以降である必要があります。 とのエラーが表示され接続できませんでした。 またデバッグを行ったところ、 Class.forName(driver); までは通りますが、次の行の con = DriverManager.getConnection(url,user,passwd); でエラーになるようです。次のステップは、データベース切断の public synchronized void close() throws Exception { 行に飛んでしまいます。 どなたかお気づきの方がおられればご回答願います。 ソースは以下の通りです。 //////////////////////////////////////////// package report.pack; import java.sql.*; public class DatabaseAccess { private String driver; private String url; private String user; private String passwd; private Connection con; private Statement stmt; private ResultSet rs; /** * コンストラクタ */ public DatabaseAccess() { driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; url = "jdbc:sqlserver://localhost:8080;databaseName=testdb;"; user = ""; passwd = ""; } /** * データベースに接続 */ public synchronized void open() throws Exception { // ドライバクラスをロード Class.forName(driver); // データベースへ接続 con = DriverManager.getConnection(url,user,passwd); // ステートメントオブジェクトを生成 stmt = con.createStatement(); } /** * データベースから切断 */ public synchronized void close() throws Exception { if (stmt!=null) { stmt.close(); } if (con!=null) { con.close(); } } /** * クエリーを実行(検索) */ public ResultSet executeQuery(String sql) throws Exception { return stmt.executeQuery(sql); } /** * クエリーを実行(新規、更新、削除) */ public int executeUpdate(String sql) throws Exception { return stmt.executeUpdate(sql); } } //////////////////////////////////////

  • SQLServer の DB を、VB2005 で作成したアプリから作りたい

    こんにちは。 APサーバにVB2005 DBサーバに SQLServer 2005 という環境で動作する自作アプリケーションがあります。 このアプリを新規の環境にセットアップする際には、 1. DBサーバにSQLServer をインストール 2. SQLServer Management Studio で、データベース作成 3. 同じくテーブル作成。 4. APサーバにアプリケーションをインストール 5. 動作確認 という流れになりますが、セットアップの為に 技術者が必要になってしまいます。 そこでエンドユーザが簡単にセットアップできるように 2.と3. を、セットアップ用プログラムから 自動で走らせたく思っています。 APサーバ上で動くプログラムで、 DBサーバ上のSQLServer内に「hogehoge」というデータベースを 作成するにはどのように記述すれば良いのでしょうか。 宜しくお願い致します。

  • AccessとSqlServerのテーブルリンク

    Access2007とSqlServer2008を使用しています。 Accessで作成したテーブルを「データベースツール」-「データの移動」でSqlServerに移行してリンクする際、 (1)SqlServerに新規にデータベースを作成すると、リンクテーブルマネージャから見てもリンク先DBが正しく表示されますが、 (2)その後、その既存DBに同じAccess内の別のテーブルを、「データベースツール」-「データの移動」してリンクしたものは、リンクテーブルマネージャから見てもリンク先DBが ()となっており表示されていません。 ツールとしてSqlServer Management Studioを使っていますが、そこからでも(1)のテーブルは表示されていますが、(2)のテーブルは表示されません。 でもリンクはできているようなのです。 また、SqlServer Management Studioを使って、SqlServer内に新規テーブルを作成し、 それをAccessからリンクしようとしても、テーブルリンク一覧内に表示されない状態です。 (「外部データ」-「ODBCデータベース」…)にて SqlServerのファイルデータソースを表示しています) (2)のテーブルはSqlServer Management Studioから見ることができないため、更新・削除もできず困っています。 DB、テーブル、リンク方法等、何か問題があるのでしょうか? よろしくお願いします。

  • ASP.NETからSQLServerに接続出来ない

    ASP.NETからSQLServerにアクセスしようとすると、ログイン画面が表示されてしまいます。 今まで、問題なく運用出来ていましたが、新たにデータベースにテーブルを追加し、それにアクセスする処理を実行したところ、ログイン画面が表示されてしまいました。実施した手順は、以下の通りです。 ノートPC(開発機)のMicrosoft Visual Web Developer 2005でデータベースのテーブルを新規追加し、プログラムを検証したところ問題なかったので、プログラムを本番機(サーバ)にコピーし検証しようと思い、サーバ側でSQL Server Management Express 2005を用いてテーブルを新規追加して検証したところ、ログイン画面が表示されてしまいました。 実施した手順 1.ASP.NETのプログラム内で、新しいテーブルを参照する処理を追加。 2.ノートPC(開発機)内のMicrosoft Visual Web Developer 2005でテーブルを新規追加し、プログラムを検証。問題なくアクセスできた。 3.ノートPC(開発機)から本番機サーバにプログラムをコピー。 4.本番機サーバのSQL Server Management Express 2005でテーブルを新規追加。 5.本番機でプログラムを実行したところ、ログイン画面が表示されてしまった。 補足:従来のテーブルはsa認証なので、同様にsa認証でテーブルを追加。 データベース:SQLServer2005 OS:WindowsServer2003 SD SP2 このような場合は、どのように対応したら良いのでしょうか? ご存知の方いらっしゃいましたら、ご教授願います。 よろしくお願いいたします。

  • SQLServer2005のネットワークドライブの使用について

    SQLServer2005(standard Edition)についてですが、 現在、DBサーバー、NASサーバー、ストレージの3台構成になっています。 DBサーバーにSQLServerをインストールしてあるのですが、 ここから、NASサーバーに接続されている ストレージに対して、テーブル作成をする際に、DBファイルの保存を行いたいのです (ネットワークドライブへの保存) OSはWindows Server 2003 です。 テーブルを作成する際に、 パスの指定を \\NASサーバー名\DATA などのようにしているのですが、 エラーが出てしまいます。 (ネットワークパスはデータベースファイルでサポートされません等) どなたかご教授願います。

  • SQLSERVER データインポート

    SQLSERVER2008で別のデータベース1からbcpコマンドでバックアップしたdatファイルがあります。それを別のサーバーのデータベース2に インポートしたいのですが、データベース2もSQLSERVER2008です。 (データベース2にはインポートするテーブルは作成済です。) bcpコマンドでインポートしようとすると、サーバーが見つからないかインスタンスエラーになってしまいできません。 そこでツールでインポートしようとしたのですが、 データソースをテキストでdatファイルのあるパスを指定して やったのですがこれも入りません。 どうすればインポートできますでしょうか? データベース2の方はwindows認証です。コマンドでcdで datファイル(table1.dat)がある階層まで下げてからこう入力しました。複写元 table1.dat→複写先 DB TESTのtable1へ bcp TEST.dbo.table1 in table1.dat -T -C -t bcp,ツールどっちでもいいのでインポートの方法を教えてください。

  • PHPからSQLServer

    PHPからSQLServerに接続しようと試みております。 ですが、以下のソースで $conn = mssql_connect("localhost", "sa", ""); mssql_select_db("hoge", $conn); 以下のワーニングが発生してしまいます。 Warning: mssql_connect(): Unable to connect to server: localhost Warning: mssql_select_db(): supplied argument is not a valid MS SQL-Link resource クエリアナライザでは"sa"、""で接続できるのですが・・・ 接続のために行なったことはphp.iniの extension=php_mssql.dll のコメントアウトを外しました。 ご存知の方がおられましたらご教授頂けませんでしょうか。 サーバ OS:Windows2000Server SP4 WebServer:Apache2.0.54 言語:PHP4.3.11 RDBMS:SQLServer2000 端末 OS:Windows2000Professinal SP4 IE6 SP1

    • 締切済み
    • PHP
  • Access2002でSQLSERVERに接続

    Access2002でSQLSERVERに接続してデータを参照しクエリを実行して個別集計したいのですが、こっそり接続したいので方法を教えてください。 目的:Accessを開いたら、設定したSQLSERVERのテーブルがクエリ実行されて希望の集計結果が表示されるようにしたい(権限は参照)。テーブル設定情報はクライアントに見せない(セキュリティの為) 近所の書店ではあまり参考になる本がなかったので検索した情報をもとに下記方法で接続してみることにしました。 (1)標準モジュールを設定  Sub DB接続() dim adocon as New ADODB.Connection adocon.Open "Deiver={SQL Server}; server=サーバー名; database=DB名; uid=ID; pwd=パス;" cn.Open end sub (2)マクロにてAutoExecを作成   プロシージャーの実行でAutoExecを設定し、モジュールにはAutoEXEC()にて   Call DB接続を設定しました。 しかしこれではうまく接続できたのかどうかも動作確認できません。また(2)の処理後に select * from テーブル名 のクエリを実行するように設定しても、テーブルがないと メッセージが表示されるので、うまく動作できてないようです。 クエリにて 「select * from [odbc;Driver={SQL Server}; Server=サーバー名; uid=ID;database=DB名;].テーブル名;」では接続してSQLSERVERのテーブル情報が見れます。なので名前などの間違いではないようです。(Accessの知識不足ですが、一つしかテーブルが参照できなく、複数のテーブルから色々条件を設定してデータ抽出ができないので使えないと判断しました) モジュールやマクロを利用してSQLSERVERからデータを参照するコマンド・方法を教えてください。

  • SQLServer2008R2 ストアド

    データベースはSQLServer2008R2を使って開発を行っています。 トリガを作成する事になったのですが、ストアドは初心者です。 なにかと足りない内容などがあると思いますが、ご了承下さい。 あるリンクテーブル(ODBC経由)でInsertの処理があった場合にSQLServerのテーブルにInsert処理を行いたいと思っています(履歴を作成する為)。 しかしリンクテーブルの定義が分からず、現在調べている最中です。 ちなみにリンクテーブルは下記の内容になります。 select * from openQuery (Host39Kelfjk, 'select * from TblAkDfoe') リンク:「Host39Kelfjk」.「DB1」.「Host39Kelfjk」 リンクサーバ:Host39Kelfjk カタログ:DB1 テーブル名:TblAkDfoe 参考になるような、サイトなどありましたら教えて下さい。 宜しくお願いします。