JavaとSQLServer2000の接続について

このQ&Aのポイント
  • JavaとSQLServer2000を接続する方法についての質問です。Tomcatエラー表示「NameNotFoundException 名前"Java:comp"がデータソースにバインドしておりません」が出ており、接続が確立できません。エラーの内容や対策、接続設定の確認事項を教えてください。
  • TomcatでJavaとSQLServer2000を接続しようとしていますが、NameNotFoundExceptionのエラーが出て接続できません。Tomcatの設定ファイルやjarファイルを確認しましたが、問題はありませんでした。エラーの内容や対策について教えてください。
  • Tomcat4.1.30でJavaとSQLServer2000を接続する際にNameNotFoundExceptionエラーが発生しており、接続が確立できません。Tomcatの設定やjarファイルを確認したり、接続設定の確認を行いましたが、問題は見つかりませんでした。エラーの詳細や対処方法について教えてください。
回答を見る
  • ベストアンサー

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
  • 回答数4
  • ありがとう数3

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

  • ベストアンサー
回答No.3

コネクションは取得できていますね。 SELECT文発行後のプログラム内 でのAPIの使用方法の誤りによる エラーの可能性が高いです。 カーソルは、簡単にいえばselect文によって 取得されたレコード行の1行1行を参照する もの・・という感じです。 うまい説明が思い浮かびませんが、 どのレコードも参照していないのに ResultSetのgetStringなどを使うと このようなエラーになる気がします。 SQLServerを使用したことがないので、 エラーメッセージの詳しい原因は わかりませんが、おおよそ以下のような 可能性があると思います。 1、まだどのレコードも参照していないのに   値を取得しようとした。 2、カーソルが一番最初にあるのに、前のレコード   を見るようにカーソルを戻そうとした。 3、カーソルが一番最後にあるのに、次のレコード   を見るようにカーソルを進めようとした。 サンプルは (データソース取得まで省略) Connection con = ds.getConnection(); String sql = "SELECT....."; Statement state = con.createStatement(); ResultSet result = state.executeQuery(sql); while(result.next()) { .... } あと、各リソースのクローズ処理など・・・。 こんな感じですが、実際のソースとエラーが出た 場所を教えていただければわかると思います。

goldchildren
質問者

お礼

ありがとうございます。 どうやらselect文でデータを取得しResultSetオブジェクトにexecuteしたまではよかったのですが,ResultSet.next()を呼び出す前にResultSet.getString()を呼び出していたのが,原因でした。 それと余談ですが,IDEはnetBeans3.6を使用しており,jarをTomcatフォルダ\common\libにデプロイしている場合Servlet.jarやtool.jarなどはコンテキストのWEB-INF\libにこれらをデプロイせずともDB接続は可能なようですね。今回のようなDB接続の絡むサーブレットを作成する場合コンテキストのWEB-INF\libにjarをデプロイしなければならない,という意識がずっとあったのですがこの辺りの考え方というのは間違った考え方なのでしょうか。ちょっとヒントをいただけると助かります。 でも今回は大変勉強になりました。いろいろとありがとうございました。

その他の回答 (3)

回答No.4

できたようですね! よかったです。 >今回のようなDB接続の絡むサーブレットを作成する >場合コンテキストのWEB-INF\libにjarをデプロイ >しなければならない・・・ ↑に関しては、基本的にcommon/libにあるjarは デフォルトでクラスパスに通されるので各アプリケーション のlibへ置かなくても実行時に参照されるので大丈夫です。 ソースをコンパイルする時のクラスパスにさえ 通せばよいです。 各アプリケーションのlibへ置くことが”間違っている” とは一概に言えませんが、私の考え方ではしない方が良いといえると思います。 common/libにあるモジュールたちは、J2EEの仕様に基づいて 各コンテナベンダ(jakartaなど)が独自に実装する ものです。Tomcatのservlet.jarはTomcat専用ですし、 他のコンテナ(JRunとか、WEBLogicとか)ではそのコンテナ 専用のservlet.jar(と同様のもの)を用意しています。 作成したWEBアプリケーションは、コンテナが違っても warなどにしてデプロイするだけで(もちろんそれぞれのコンテナ専用のサーバ側の設定は必要ですが) どこでも動くように作るのが基本といえると思います。 その点からすれば、servlet.jarなど、コンテナ独自の ものはアプリケーションでは持たない方が良いといえますよね。 補足ですが、(確か)Tomcatの場合は 1、環境変数のクラスパス 2、Tomcatのcommon/lib 3、Tomcatのserver/lib 4、アプリケーションのWEB-INF/lib の順にクラスパスが参照されたと思います。 2,3の順番はちょっと怪しいですが、 おおよそこんな感じだったような・・。 なので、アプリケーションのWEB-INF/libに servlet.jarを置いても、参照されることは ありません。

goldchildren
質問者

お礼

回答をありがとうございます。 >どこでも動くように作るのが基本といえると思います。 >その点からすれば、servlet.jarなど、コンテナ独自の >ものはアプリケーションでは持たない方が良いといえますよね。 といわれるようになるほど別のサンプルアプリケーション/libを覗いてみると確かにTomcatで使用するもの以外のstruts.jarやvelocity関連などのjarしかデプロイされておりませんでした。逆に言うとものすごく基本的なことをまだまだ理解できていなかったのが非常に恥ずかしいです。うまくできなかったときにより注意深くみて考えていかなくてはいけないと痛感しました。 でも今回はnattoumakiさんのおかげで本当に助かりました。ありがとうございました。また,こちらへ投稿するときがあるかと思いますが,そのときはよろしくお願い致します。

回答No.2

nattoumakiです。 ソースは大丈夫そうですね。 おそらく設定の問題と思います。 少し気になったのですが、 <Resource name="jdbc/myApp" javax.sql.DataSource"/> の部分が切れてしまっているようですが・・。 <Resource name="jdbc/myApp" auth="Container" type="javax.sql.DataSource"/> のように書かれていますでしょうか? あと、web.xmlにも、以下の記述があるか 確認をお願いいたします。 <resource-ref> <res-ref-name>jdbc/myApp</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> もし無い場合は一応追加してみてください。 追加する場所はtaglib要素とsecurity-constraint要素 の間あたりです。

goldchildren
質問者

補足

nattoumakiさん,ありがとうございました。web.xmlの分が抜けていたので追記したらNameNotFoundExceptionは出なくなりました。 ただ,別のエラーがはかれまして,このエラーについても自分ではSQLServer側なのかな?という程度しか思い当たらずできましたらヒントでも頂けたら助かります。 <エラー内容> [Microsoft][SQLServer 2000 Driver for JDBC]現在のカーソル位置では無効な操作です。 この内容の「カーソルの位置」とはどこを指しているのですか? なんとも初歩的な内容で申し訳ありませんが,よろしくお願いいたします。

回答No.1

Servlet側でDataSourceを取得する時のJNDI名が 間違ってませんか? 上記の設定の場合、 InitialContext context = new InitialContext(); DataSource dataSource = (DataSource)context.lookup("java:comp/env/jdbc/myApp"); で取得できるはずですが・・・。 Servletのサンプルソースをここへアップして いただければ多少は原因がわかるかもしれません。

goldchildren
質問者

補足

ご返答ありがとうございます。 補足としてJavaのソースを公開します。一応DBアクセス用のクラスを作りBeanで実際にDBにアクセスをしてその結果をServletで表示するといった手法をとっておりますのでDBアクセスConnectionを返す部分を載せます。それ以外のソースも必要であればいってください。 [DBAccess.java] public class DBAccess { private static DataSource ds = null; private static Connection con = null; private static final String dataSource = "jdbc/myApp"; public synchronized static Connection getConnection()throws SQLException{ InitialContext ic = null; try{ ic = new InitialContext(); if(ds == null){ ds = (DataSource)ic.lookup("java:comp/env/" + dataSource); } }catch(NamingException e){ e.printStackTrace(); CommonLog.Output(WebResource.getResource("web.no.dbsrc")); con = ds.getConnection(); con.setAutoCommit(false); CommonLog.Output("----- connection is aquired [ " + dataSource + ", " + con.hashCode() + " ]" ); return con; } BeanでDBAccess.getConnection()を呼び出してDB接続をしております。 DataSourceを呼び出すところはSQLServerのJDBCドライバーのヘルプを参考にしました。

関連するQ&A

  • 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"を開けません。ログインに失敗しました。」 というエラーが出ます。。。 どなたかご教示よろしくお願いします

  • Tomcat5.0でJNDI

    お世話になります。 Tomcat5.0で、JNDIを使ってコネクションプーリングを実現しようとしてますが、なかなかうまいこといきません。 コンテキストファイル(hoge.xml)の設定 前略 <Resource name="jdbc/hoge" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/hoge">   <parameter>     <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>   </parameter>   <parameter>     <name>driverClassName</name>     <value>com.mysql.jdbc.Driver</value>   </parameter>   <parameter>     <name>url</name>     <value>jdbc:mysql://localhost/hoge</value>   </parameter>   <parameter>     <name>username</name>     <value>hogeuser</value>   </parameter>   <parameter>     <name>password</name>     <value>hogepass</value>   </parameter> 中略 </ResourceParams> 後略 これを、トムキャットホーム\conf\Catalina\localhostに置いています。 Javaの方のソース String dsString = getServlet().getInitParameter("java:comp/env/jdbc/hoge"); InitialContext context = new InitialContext(); DataSource ds = (DataSource) context.lookup(dsString); Connection connection = ds.getConnection(); 実行すると、 名前 java:/comp/env/jdbc/hoge はこのコンテキストにバインドされていません という具合に怒られます。名前はjdbc/hogeで合ってると思うのですが、他に何かおかしいところがあるでしょうか。 また他に調べるべき点はどのようなところでしょうか。 どうぞよろしくご教授ください。

  • JNDIでDataDourceにNullが入ってしまう

    いつもお世話になっています。 JNDIを使ってDataSourceを取得しようと思っているのですがNullが返ってきてしまってかなりハマッてます。 ご指導頂けたらと思います。 設定は下記のようになっています。 環境: jdk:1.4.2_12 tomcat:5.0 Mysql:4.0.20a-nt server.xml-------------------------------------------------- <Context docBase="C:\Documents and Settings\ESC\workspace\SNS\.deployables\SNS" path="/SNS" reloadable="true"> <Resource name="jdbc/MySQL" auth="Container" type="javax.sql.Datasource" /> <ResourceParams name="jdbc/MySQL"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <!-- Max Active <parameter> <name>maxActive</name> <value>100</value> </parameter> --> <!-- Max Idle <parameter> <name>maxIdle</name> <value>30</value> </parameter> --> <!-- Max Wait <parameter> <name>maxWait</name> <value>10000</value> </parameter> --> <parameter> <name>username</name> <value>****</value> </parameter> <parameter> <name>password</name> <value>****</value> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://localhost/dbname?useUnicode=true&amp;characterEncording=Windows-31J</value> </parameter> </ResourceParams> </Context> web.xml-------------------------------------------------- <resource-ref> <res-ref-name>jdbc/MySQL</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> java側-------------------------------------------------- InitialContext ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/MySQL"); connection = ds.getConnection(); -------------------------------------------------------- どうか宜しくお願い致します。

  • JAVA ServletでSQL Serverに接続できないんですが。

    マイクロソフトのサイト(SQL SERVER2000 Driver for JDBC)から ドライバーを取ってきて、JAVAからDB接続テストを行っています。 最初に簡単なJAVAアプリを作って実行したところ、うまく動作しました。その後、Servletで同様のtestをしたところ、Tomcatのコンソール画面に、ClassNotFoundExceptionが出て、実行できません。 下記の命令が、処理できないようです。 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); CLASSPATHの設定もコマンドプロンプトで、setコマンド実行結果で確認済みです。 他のデータベース(MySQL)では、Servlet,JSP,JAVAアプリすべて、うまく実行できました。 ご存知の方、よろしくお願いいたします。 環境:(1台のマシン内での仮想ネットワーク) windows XP Pro (SP1) j2SDK 1.4.1_03 Tomcat4.1 SQL Server2000

  • JNDIについて

    緊急で困っています。宜しくお願いします。 JNDIを使ってDB接続しようとしているのですがエラーが出て接続できません。 ■発生箇所---------------------------------------- public static Connection getConnection() { Connection con = null; try { InitialContext context = new InitialContext(); DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/MySQL"); con = ds.getConnection(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return con; } のlookupの箇所です。 ------------------------------------------ server.xml <Context>タグの中に <Resource name="jdbc/MySQL" auth="Container" type="javax.sql.Datasource"> <ResourceParams name="jdbc/MySQL"> <parameter>    <name>factory</name>   <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <!-- Max Active <parameter> <name>maxActive</name> <value>100</value> </parameter> --> <!-- Max Idle <parameter> <name>maxIdle</name> <value>30</value> </parameter> --> <!-- Max Wait <parameter> <name>maxWait</name> <value>10000</value> </parameter> --> <parameter> <name>username</name> <value>***</value> </parameter> <parameter> <name>password</name> <value>***</value> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://localhost/DB名?useUnicode=true&amp;characterEncording=Windows-31J</value> </parameter> </ResourceParams> </Resource> </Context> ---------------------------------------------- web.xml <resource-ref> <res-ref-name>jdbc/MySQL</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> ---------------------------------------------------- 必要なライブラリはTOMCAT_HOME/common/libに配置しています。 ------------エラーログ javax.naming.NamingException: Cannot create resource instance at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:132) at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source) at org.apache.naming.NamingContext.lookup(NamingContext.java:791) at org.apache.naming.NamingContext.lookup(NamingContext.java:138) at org.apache.naming.NamingContext.lookup(NamingContext.java:779) at org.apache.naming.NamingContext.lookup(NamingContext.java:138) at org.apache.naming.NamingContext.lookup(NamingContext.java:779) at org.apache.naming.NamingContext.lookup(NamingContext.java:138) at org.apache.naming.NamingContext.lookup(NamingContext.java:779) at org.apache.naming.NamingContext.lookup(NamingContext.java:151) at org.apache.naming.SelectorContext.lookup(SelectorContext.java:136) at javax.naming.InitialContext.lookup(Unknown Source) at com.llc.aison.seikei.util.DBUtil.getConnection(DBUtil.java:18) 環境: Tomcat5.0 mysql eclipse3.1.1 jdk1.4_12 以上宜しくお願いします。

    • ベストアンサー
    • Java
  • SQLServer2000へのリモート接続ができない。

    aspで作成したWEBアプリから、他マシンのSQLServerへ接続を行なっています。あるSQLServerへは接続できるのですが、異なるマシンのSQLServerへは接続できない等、現状、マシン毎のSQLServer接続可否が異なっています。 接続できない場合、下記エラーを表示します。 Server 2005 に接続しているときときにこのエラーが発生した場合は、SQL Server の既定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。 (provider: 名前付きパイプ プロバイダ, error: 40 - SQL Server への接続を開けませんでした) このエラー内容を元に、WEB上で検索を行い、 http://www.microsoft.com/japan/sql/ssj/tips/01.mspx 、また、プログラム側の接続部分を DataSource=データソース → DataSource= tcp: データソース 等、試してみましたが、問題は解決しませんでした。 解決方法をご存知の方、ご教授宜しくお願い致します。 また、こうしたらどうなの?っていうようなご意見も お待ちしています。 ・・・そういえば、udlファイルによる対象データベース接続へのは 成功しています。

  • ibatis初心者 設定エラー

    ibatisにてデータをinsertしようとしたら以下のようなエラーがでてしまいました。 com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource SqlMap-blogA.xml Configuration.xmlは以下の通りとなっております。 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <!-- DB接続設定 --> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/> <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/blog"/> <property name="JDBC.Username" value="root"/> <property name="JDBC.Password" value="nicelife"/> </dataSource> </transactionManager> <!-- sqlMapファイル参照する --> <sqlMap resource="SqlMap-blogA.xml"/>←ここの相対パスが問題 </sqlMapConfig>   ちなみにSqlMap-blogA.xmlとConfiguration.xmlはWEB-INFの直下にて同じ場所においてありますので、上記の Could not find resource SqlMap-blogA.xmlは出ないと思うのですが・・・それと Error parsing XPath '/sqlMapConfig/sqlMap'.これの意味もよくわかりません。   どうすればいいのかわかりません   なにかアドバイスをいただけたらありがたいのですが・・・・   ご教授の程よろしくお願い申し上げます。

  • JNDIを利用したJDBC接続

    Tomcat6.0とDerbyを使用してWebアプリケーションを作成しています。 JavaでJNDIを使用してDBに接続しようとしているのですが、 エラーが出てしまい正しく表示されません。 エラー内容   Cannot load JDBC driver class 'org.apache.derby.jdbc.ClientDriver' ソースに String user = "study"; String pass = "studypw"; String url = "jdbc:derby://localhost:1527/study_db"; Class.forName("org.apache.derby.jdbc.ClientDriver"); conn = DriverManager.getConnection(url, user, pass); このように記述すると正しく動いてくれますが InitialContext ic = new InitialContext(); DataSource ds = (DataSource)ic.lookup("java:comp/env/stderby"); conn = ds.getConnection(); このように変更するとエラーが出てしまい DBに接続できていない模様です。 Web.xmlの<resource-ref>の追加 context.xmlの作成を行いました。 tomcat側のxmlの変更はしていません。 こちらのサイトを参考させていただきました http://d.hatena.ne.jp/uen1130/20090621/1245563877 こちらのサイトにあるjarファイルも確認済みです。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=27454&forum=12&start=8 解決方法やアドバイスなど 宜しくお願い致します。

    • ベストアンサー
    • Java
  • EclipseのTomcatがライブラリを読み込むタイミングについて

    EclipseのTomcatがライブラリを読み込むタイミングについて 質問させてください。 EclipseでJDBCを使用したプログラムを作成しています。 Eclipseを起動後、Tomcatのlibフォルダにsqljdbc.jarを追加してテストしていたのですが、ずっと「Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver' 」というエラーが出ていました。 ところが、Eclipseで[ウィンドウ]-[設定]-[Tomcat]でバージョンとTomcatホームを5.0から6.0のものに修正した途端、正常に動作するようになりました。 その後、バージョンとTomcatホームを5.0に戻しても正常に動作しています。 こういった設定の変更だけでエラーが解決することが疑問なのですが、EclipseのTomcatがライブラリを読み込むタイミングみたいなものが何かあるのでしょうか? テスト中はサーバを停止させて再起動ということはさせていました。また、sqljdbc.jarは5.0、6.0両方のlibディレクトリに入れています。 どなたかご存知でしたらお教えください。

    • ベストアンサー
    • 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); } } //////////////////////////////////////

専門家に質問してみよう