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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

解決済

1回答

6583閲覧

リレーション"~"は存在しませんというエラーについて

hayashiyujirou

総合スコア9

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2018/07/01 06:48

ウェブアプリケーションの勉強を始めた初心者です。
社員の情報を登録、検索ができるページを作成しています。
社員登録画面でDaoのinsertShainDataメソッドを実行するようにしているのですが、リレーション"employee_information_table"は存在しません"というエラーが表示されます。
テーブル名の綴りミスかと思い、コマンドを叩いて確認したのですが、employee_information_tableというリレーションは存在しているので頭を悩ましております。

補足ですが、当初はデータベースをmySQLで作成しておりその際は問題なく登録出来ておりました。
しかしpostgrSQLに替えて実行するとエラーが発生しました。
ここに問題があるのだとは思うのですが、原因の特定ができませんでした。

どうかご教示いただけますでしょうか。何卒よろしくお願いいたします。

Eclipseのエラーログ

org.postgresql.util.PSQLException: ERROR: リレーション"employee_information_table"は存在しません
ポジション: 13
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2433)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2178)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:306)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:155)
at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:132)
at shain.ShainDataDao.insertShainData(ShainDataDao.java:55)
at shain.InsertExecutionServlet.doGet(InsertExecutionServlet.java:54)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

lang

1postgres=# select * from employee_information_table; 2 employee_number | employee_lastname | employee_firstname | employee_firstname_yomi | employee_lastname_yomi | birthday | gender | telephone_number | address01 | address02 | address03 | mailaddress01 | mailaddress02 | join_year | join_month | group_id | registration_function_id | registration_user_id | registration_time 3-----------------+-------------------+--------------------+-------------------------+------------------------+----------+--------+------------------+-----------+-----------+-----------+---------------+---------------+-----------+------------+----------+--------------------------+----------------------+------------------- 4(0 行)

lang

1package shain; 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.PreparedStatement; 6import java.sql.SQLException; 7 8public class ShainDataDao { 9 10 private String url; 11 private String userName; 12 private String password; 13 14 public ShainDataDao() throws ClassNotFoundException { 15 this.url = "jdbc:postgresql://localhost:5432/shain_data"; 16 this.userName = "postgres"; 17 this.password = "sauron44"; 18 19 try { 20 Class.forName("org.postgresql.Driver").newInstance(); 21 } catch (ClassNotFoundException e) { 22 } catch (Exception e) { 23 } 24 } 25 26 //insertのためのinsertShainDataメソッド 27 public void insertShainData(RegistrationBean rb) throws SQLException { 28 String sql = "INSERT INTO employee_information_table" 29 + "(employee_number,employee_lastname,employee_firstname," 30 + "employee_firstname_yomi,employee_lastname_yomi,birthday,gender," 31 + "telephone_number,address01,address02,address03,mailaddress01,mailaddress02," 32 + "join_year,join_month,group_id,registration_function_id,registration_user_id,registration_time)" 33 + "values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; 34 try (Connection connection = DriverManager.getConnection(url, userName, password); 35 PreparedStatement pstatement = connection.prepareStatement(sql);) { 36 pstatement.setString(1, rb.getFormalNumber()); 37 pstatement.setString(2, rb.getLastName()); 38 pstatement.setString(3, rb.getFirstName()); 39 pstatement.setString(4, rb.getLastNameHurigana()); 40 pstatement.setString(5, rb.getFirstNameHurigana()); 41 pstatement.setString(6, rb.getBirthday()); 42 pstatement.setString(7, rb.getSelectGender()); 43 pstatement.setString(8, rb.getTelephoneNumber()); 44 pstatement.setString(9, rb.getPrefectureAddress()); 45 pstatement.setString(10, rb.getCityAddress()); 46 pstatement.setString(11, rb.getBuildAddress()); 47 pstatement.setString(12, rb.getMailAddress01()); 48 pstatement.setString(13, rb.getMailAddress02()); 49 pstatement.setString(14, rb.getJoinYear()); 50 pstatement.setString(15, rb.getJoinMonth()); 51 pstatement.setString(16, rb.getGroupId()); 52 pstatement.setString(17, rb.getFunctionId()); 53 pstatement.setString(18, rb.getUserId()); 54 pstatement.setString(19, rb.getRegistrationTime()); 55 pstatement.executeUpdate(); 56 57 } catch (SQLException e) { 58 e.printStackTrace(); 59 throw e; 60 } 61 } 62 63 public void findUser(String userId)throws SQLException { 64 String sql = "SELECT * FROM employee_shain_table WHERE user_id = ?"; 65 try (Connection connection = DriverManager.getConnection(url, userName, password); 66 PreparedStatement pstatement = connection.prepareStatement(sql);) { 67 pstatement.setString(1,userId); 68 pstatement.executeQuery(); 69 } 70 71 } 72}

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

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

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

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

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

m.ts10806

2018/07/01 09:53

employee_information_tableはデータベース「shain_data」内にあるのは間違いないですか?
hayashiyujirou

2018/07/01 11:38

ご指摘ありがとうございます。仰るように「shain_data」に接続せずにテーブルを作成していたことが原因でした。本当にありがとうございます。
guest

回答1

0

ベストアンサー

postgresはスキーマの指定が無い場合、ログイン名と同じ名称のスキーマまたはpublicスキーマを参照します。

postgresでログインした場合、postgresまたはpublicスキーマに、employee_information_tableが存在して居無い場合は、スキーマ修飾した問合せでないとエラーになります。

投稿2018/07/01 11:29

編集2018/07/01 11:31
sazi

総合スコア25173

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

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

hayashiyujirou

2018/07/01 11:39

ご指摘ありがとうございます。お陰様で解決いたしました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問