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

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

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

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

servlet

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

Q&A

解決済

2回答

9790閲覧

ResultSetを使った値の取得

MISHIRO

総合スコア27

Java

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

servlet

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

0グッド

0クリップ

投稿2017/05/16 03:04

編集2017/05/16 03:36

LOGIN_IDとPASSが一致した場合Campany_nameのデータをデータベースから取得したいのですが
ResultSetを使いこのような形で書きました。

public void isGetName(String Login_ID,String PASS) throws ClassNotFoundException, SQLException {

Connection conn = null; User user = new User(null); try { Class.forName(DRIVER_NAME); conn = DriverManager.getConnection(JDBC_URL, DB_USER, DB_PASS); String sql = "SELECT * FROM Conpany_Registration WHERE LOGIN_ID=? AND PASS=? AND DEL_FLG=?"; PreparedStatement pStmt = conn.prepareStatement(sql); pStmt.setString(1, Login_ID); pStmt.setString(1, PASS); ResultSet rs = pStmt.executeQuery(); // 取得できれば if (rs.next()) { String Campany_name = rs.getString("Campany_name"); user = new User(Campany_name); } // 必ずDBを切断 } finally { if (conn != null) { conn.close(); } } return; }

この後違うクラスでこのCompany_ nameにはいっているデータを取得したいのですがどのように書けばよいでしょうか?
また上記のコードで正しく動作しますか?
もしくはこのような書き方のほうがよいというものがあればご教授願えないでしょうか。

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

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

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

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

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

guest

回答2

0

ベストアンサー

Java

1pStmt.setString(1, Login_ID); 2pStmt.setString(1, PASS);

どちらも1を指定しています。
この数字はSQLに書かれた?の順番です。
?が3つあるので、1, 2, 3 で指定してください。

この後違うクラスでこのCompany_ nameにはいっているデータを取得したいのですがどのように書けばよいでしょうか?

このメソッドがUserをリターンしてはどうですか?
かならず、ResultSetが1件なのであれば、以下でいいんじゃないでしょうか?

Java

1User user = null // もしくは、new User(null) ですか? 2if (rs.next()) { 3 String Campany_name = rs.getString("Campany_name"); 4 user = new User(Campany_name); 5} 6return user;

また上記のコードで正しく動作しますか?

実行すれば分かります。もしかして1度も実行していないですか?
teratailの回答者はコンパイラではありませんよ。

投稿2017/05/16 04:32

root_jp

総合スコア4666

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

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

MISHIRO

2017/05/16 05:49

ご指摘ありがとうございます。 指摘された部分はこの後修正を加えていこうと思います。 正しく動作するかという質問は実行すればわかりますが質問してしまいすみませんでした。 回答ありがとうございました。
guest

0

java

1 public void isGetName(String Login_ID, String PASS) throws ClassNotFoundException, SQLException { 2 }

このメソッド実行後に何も返さないので、せっかくデータベースから値を取得したとしても、他のクラスからこのメソッドを呼んでも何も取得できないでしょう。

String Campany_name で宣言されている変数を返すようにすれば良いのでは。
他にも細かい指摘になりますが、会社名なら、companyName ではないでしょうか。SQLのテーブル名とも、Javaの変数でも違う名前になっているのでそこも直すべきでしょうか。

途中の処理は書きませんが。

java

1 public String isGetName(String Login_ID, String PASS) throws ClassNotFoundException, SQLException { 2(中略)3 return companyName; 4 }

投稿2017/05/16 04:38

A-pZ

総合スコア12011

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

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

MISHIRO

2017/05/16 05:44

ご指摘ありがとうございます。 変数名は揃えるように修正します。 回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問