- 締切済み
MySQLを利用したサーブレットの実行時のエラーについて。
ローカルマシンにMySQLをインストールし、サーブレットでアクセスするプログラムを作っています。MySQLの動作は確認済みです。 MySQLのPATHとJDBCドライバのCLATHPASSの設定もしました。サーブレットのソースはWEB上のサンプルをそのまま利用しています。 DBの設定部分のソース↓ Class.forName("org.gjt.mm.mysql.Driver"); Connection con = DriverManager.getConnection"jdbc:mysql:///hellodb"); PATH↓ C:\Program Files\mysql\bin CLATHPASS↓ C:\j2sdk1.4.0\jre\lib\ext\mysql-connector-java-3.0.2-beta-bin.jar エラー内容は以下の通りです。 --------------------------------------------------------------------- java.sql.SQLException: Column 'NO' not found. at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:2862) at com.mysql.jdbc.ResultSet.getInt(ResultSet.java:1338) at HelloWorldJDBCMySQL.main(HelloWorldJDBCMySQL.java:24) --------------------------------------------------------------------- DBへアクセスできていないと思うのですが、自分で調べた限りでは前述の設定以外の方法が調べきれませんでした。 お力添えお願いいたします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- yuji
- ベストアンサー率37% (64/169)
rs.getInt("NO")の代わりに rs.getInt(1)ではどうなりますか?
- ons_takeshi
- ベストアンサー率0% (0/0)
間違った jdbc:mysql:///localhost/hellodb じゃなくて jdbc:mysql://localhost/hellodb ね /が一個多かった ま、わかってもらえると思うけど一応
- ons_takeshi
- ベストアンサー率0% (0/0)
ちょっとおかしいなと思ったことがあるんですけど jdbc:mysql:///hellodb この部分ですけど jdbc:mysql:///localhost/hellodb じゃないですか? localhostの時は省略出来るとかありましたっけ? ただもしそれだとしてもそれだとConnectionが成功してるっぽい動作が謎だから直接の原因では無いと思いますけど 久しく直接DB接続なんて書いてないので自身無いんですけどね
- hidebu-
- ベストアンサー率53% (45/84)
HelloWorldJDBCMySQL.javaの24行目周辺のソースを教えてください。
- yuji
- ベストアンサー率37% (64/169)
MySQLって、ODBCなどで接続するツールを使ってテーブルの中を見ると 列名が小文字で表示されていたように思います。 Javaのソースで "NO" のカラムを取得しようとしているのなら、 "no" に変更してみてはどうでしょうか?
補足
返信ありがとうございます。 "NO"を"no"に変えてみましたが、結果は同じでした。
- yakumon
- ベストアンサー率35% (22/62)
おそらくDBにはアクセスできているのではないでしょうか? 投げているSQLでNOというカラムを参照しようとしているのにテーブルにNOというカラムがないので java.sql.SQLException: Column 'NO' not found. になっているのではないかと思います。 接続できない場合はもっと違うエラーになるはずです。
補足
返信ありがとうございます。 ご指摘の通り、テーブル作成時に項目をつくり忘れたかと思い、確認してみたところ、以下の通り項目は存在しました。 mysql> select no from HELLO_WORLD_TABLE; +----+ | no | +----+ | 1 | | 2 | +----+ そこで、ソースの方がDBへアクセスできてないと思ったのです。 ちなみに、エラー箇所を潰しても、次の項目でエラーとなってしまいます。
補足
返信ありがとうございます。 ソースは下記になります。 --------------------------------------------------------------------- while(rs.next()){ 24行目→ int no = rs.getInt("NO"); String lang = rs.getString("LANGUAGE"); String msg = rs.getString("MESSAGE"); ---------------------------------------------------------------------