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

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

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

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

Java

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

Q&A

解決済

1回答

685閲覧

mysql JDBC 検索結果が異なる

miyagon

総合スコア5

MySQL

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

Java

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

0グッド

0クリップ

投稿2020/05/21 09:33

JDBCでSQL送信したときに結果がうまく帰ってきません。 原因を教えていただけないでしょうか。 getProduct_name = "iphone6"です。 mysqlを使っています。

該当のソースコード

public class ProductDAO { // データベース接続に使用する情報 private String url = "jdbc:mysql://localhost/gwec"; private String id = "root"; private String pass ="1qaz2wSX?"; PreparedStatement pStmt; Connection conn; public DetailProduct getProductDetail(String getProduct_name) { //商品詳細データの習得 DetailProduct detailProduct = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(url,id,pass); //SELECT文を準備 String sql = "select ProductTbl.product_name,ProductTbl.product_price,CategoryTbl.category_name,StockTbl.stock,ProductTbl.product_detail,ProductTbl.product_img"; sql += " from ProductTbl inner join StockTbl on ProductTbl.product_id = StockTbl.product_id inner join CategoryTbl"; sql += " on ProductTbl.category_id = CategoryTbl.category_id WHERE ProductTbl.product_name = ?;"; pStmt = conn.prepareStatement(sql); pStmt.setString(1, "%" + getProduct_name + "%"); //SELECT文を実行し結果表を作成 ResultSet rs = pStmt.executeQuery(); //一致した商品があった場合Productインスタンスを生成 if(rs.next()) { String product_name = rs.getString("product_name"); int product_price = rs.getInt("product_price"); String category_name = rs.getString("category_name"); int stock = rs.getInt("stock"); String product_detail = rs.getString("product_detail"); String product_img = rs.getString("product_img"); detailProduct = new DetailProduct(product_name,product_price,category_name,stock,product_detail,product_img); } } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } finally { try { if(conn != null) conn.close(); if(pStmt !=null) pStmt.close(); return detailProduct; } catch (Exception ex) {} } return detailProduct; } } mysql> select ProductTbl.product_name,ProductTbl.product_price,CategoryTbl.category_name,StockTbl.stock,ProductTbl.product_detail,ProductTbl.product_img from ProductTbl inner join StockTbl on ProductTbl.product_id = StockTbl.product_id inner join CategoryTbl on ProductTbl.category_id = CategoryTbl.category_id WHERE ProductTbl.product_name = 'iphone6'; +--------------+---------------+---------------+-------+--------------------+-------------+ | product_name | product_price | category_name | stock | product_detail | product_img | +--------------+---------------+---------------+-------+--------------------+-------------+ | iphone6 | 600 | Iphone | 30 | 少し古いiphoneです | iphone6 | +--------------+---------------+---------------+-------+--------------------+-------------+

試したこと

rs.next()の値はfalse
sqlをコピペしmysqlで実行すると値は正常に返ってくる

補足情報(FW/ツールのバージョンなど)

mysql バージョン 8.0
Eclipse 4.8.0
Tomcat9
java10

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

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

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

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

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

guest

回答1

0

ベストアンサー

WHER ProductTbl.product_name = ? の?に対して、'%iphone6%'を設定しています。
product_name列に、%iphone6%と、完全一致する行がないならば、正常な処理です。

投稿2020/05/21 11:40

YT0014

総合スコア1708

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

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

miyagon

2020/05/21 11:58

回答ありがとうございます。 初歩的なミスでした。しっかりとSQL文を勉強していきたいと思います。 貴重なお時間を割いていただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問