質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

1回答

6754閲覧

H2 DBからカラムを取得できない(Eclipse)

cookie.

総合スコア14

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

1グッド

0クリップ

投稿2017/08/22 08:58

編集2017/08/22 09:31

Eclipse4.7.0上で
DB Viewer を使ってh2データベースを設定しましたが、
DB ViewerのパースペクティブではSelect文が実行できるのに
Javaファイル(動的Webプロジェクト)からDB接続に必要となる文を書いた上で
全く同じSELECT文を実行しようとすると
**”テーブル "EMPLOYEE" が見つかりません。"**というエラーがコンソールに出ます。

Javaファイルの実行を通してコンソール上にエラーなしで指定のテーブルからカラムを表示しようとしています。

わかる方がいらっしゃればご指摘よろしくお願いします。

###前提条件

・Macbook13.1です
・Eclipse4.7.0はPleiades all in oneをダウンロードして使っています。
・h2はh2-1.4.196.jarというファイルを/WEB-INF/lib以下に設置して使っています。

・データベース名sample
・テーブル構造は
テーブル名EMPLOYEE、
ID CHAR(6) PRIMARYKEY,
NAME VARCHAR(100) NOT NULL,
AGE INT NOT NULL,
です。

Java

1//SelectSample.java 2import java.sql.Connection; 3import java.sql.DriverManager; 4import java.sql.PreparedStatement; 5import java.sql.ResultSet; 6import java.sql.SQLException; 7 8public class SelectSample { 9 public static void main(String[] args) { 10 Connection conn = null; 11 try { 12 Class.forName("org.h2.Driver"); 13 conn = DriverManager.getConnection( 14 "jdbc:h2:file:C:/data/sample","",""); 15 16 String sql = "SELECT ID,NAME,AGE FROM EMPLOYEE"; 17 PreparedStatement pSmt = conn.prepareStatement(sql); 18 ResultSet rs = pSmt.executeQuery(); 19 20 while(rs.next()) { 21 String id = rs.getString("ID"); 22 String name = rs.getString("NAME"); 23 int age = rs.getInt("AGE"); 24 25 System.out.println("ID:" + id); 26 System.out.println("名前:" + name); 27 System.out.println("年齢:" + age + "¥n"); 28 } 29 }catch(SQLException e) { 30 e.printStackTrace(); 31 }catch(ClassNotFoundException e){ 32 e.printStackTrace(); 33 }finally { 34 if(conn != null) { 35 try { 36 conn.close(); 37 }catch(SQLException e) { 38 e.printStackTrace(); 39 } 40 } 41 } 42 } 43} 44 45

###自分で調べたこと

・SELECT文を書かずにDB接続だけ実行すると何もエラーが出ないので
接続はできている可能性が高いです。
・H2にはデフォルトでINFORMATION_SCHEMAとPUBLICというスキーマがあり
その中にEMPLOYEEというテーブルをCREATEしているので
そういったことも何か関係があるのかもしれないです

.Java EE のパースペクティブとDB Viewerのパースペクティブでそれぞれ別のDBを扱ってしまっていることがわかりました。が、原因はわかっていません。

sapichan👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

組み込みモードでJDBC接続で指定している sample は、実際に作成されたものでしょうか?

H2の組み込みモードの接続は、指定したファイルがない場合は自動的に空のデータベースを作成します。作成したテーブルが存在していないのであれば、それは接続先が誤っているため、新たにデータベースが作成され、そこに接続していますので、接続エラーにはならないのです。

ちなみにH2インストール後に管理画面で作るデータベースは test で、Windows7以降ならば、以下の場所にファイルが作成されます。

ユーザーディレクトリ\test.mv.db
( 例:C:\Users\ユーザ名\test.mv.db )

投稿2017/08/23 06:28

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問