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

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

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

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

Q&A

解決済

1回答

2593閲覧

取得した値を詰めたい

Yoshi--

総合スコア62

Java

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

0グッド

0クリップ

投稿2017/05/12 04:18

java

1 2package dao; 3 4import java.sql.Connection; 5import java.sql.PreparedStatement; 6import java.sql.ResultSet; 7 8import model.User; 9import util.JDBCUtils; 10 11public class UserDAO { 12 13 public User getUser(String userName, String pass) { //User型 14 User user = null; //初期化 15 16 //データベースに接続 17 try (Connection conn = JDBCUtils.getConnection()) { 18 19 // USERテーブルからUSER_NAME,PASSを検索 20 String sql = "SELECT * FROM USER WHERE USER_NAME=? AND PASS=?"; 21 try (PreparedStatement pStmt = conn.prepareStatement(sql)) { 22 23 // 文中の「?」に使用する値を設定しSQLを完成 24 pStmt.setString(1, userName); //postで送られたuserNameがデータベース上にあるか検索 25 pStmt.setString(2, pass); 26 27 // SQLを実行してResultSetを受け取る 28 try (ResultSet rs = pStmt.executeQuery()) { 29 30 // ResultSetから結果を取得 31 if (rs.next()) { //値が一つしか存在しないのでif文 32 //nameにデータベース上の検索したUSER_NAMEを代入 33 String name = rs.getString("USER_NAME"); 34 String pa = rs.getString("PASS"); 35 System.out.println("<検索結果> ユーザー名:" + name + "パスワード:" + pa); 36 37 // TODO(ユーザー情報)の生成 38 User user = new User(name, pa); 39 40 // 取得した値を詰める 41 } 42 } 43 } 44 } catch (Exception e) { 45 throw new RuntimeException(e); 46 } 47 48 return user; //値を詰めたuserを返す(なかったら初期のnullが返る) 49 }

// TODO(ユーザー情報)の生成
userに取得した name,paを詰めたいのですがこの場合はどう書いたらよいのでしょうか??
User user = new User(name, pa);
user =
みたいな感じでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

getUser()の頭で、User user = null; の宣言があるので、
ifの中のUser user = new User(name, pa);は、同名の変数宣言でコンパイルエラーですね。

最初に宣言している変数を使用すればいいだけなので、user = new User(name, pa)にしましょう。

投稿2017/05/12 04:33

root_jp

総合スコア4666

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

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

Yoshi--

2017/05/12 04:38

なるほど!!ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問