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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

JSP

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

servlet

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

Q&A

解決済

1回答

6300閲覧

JSPでDBのデータを表示させたい

c111000

総合スコア4

Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

JSP

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

servlet

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

0グッド

0クリップ

投稿2020/05/26 22:50

編集2020/05/26 23:05

データベースからテーブルを持ってきてJSPで表示させたい(全件検索)のですが何度見直しても記述がうまくいかずエラーがでてしまいます。全レコードの情報を持ったlistを作成し格納したいのですがご教授いただければ幸いです。

servlet

1package jp.co.sss.book.dao; 2 3import java.sql.Connection; 4import java.sql.PreparedStatement; 5import java.sql.ResultSet; 6import java.sql.SQLException; 7import java.util.ArrayList; 8import java.util.List; 9 10public class BookDAO { 11 public static List<Book> findAll(){ 12 Connection con = null; 13 14 PreparedStatement ps = null; 15 Book book = null; 16 List<Book> bookList = new ArrayList<>(); 17 try { 18 con = DBManager.getConnection(); 19 ps = con.prepareStatement("SELECT * FROM book WHERE book_id = ?"); 20 //ps.setString(1, bookId); 21 22 ResultSet rs = ps.executeQuery(); 23 24 while (rs.next()) { 25 book = new Book(); 26 book.setBookId(rs.getInt("book_id")); 27 book.setBookName(rs.getString("book_name")); 28 book.setAuthor(rs.getString("author")); 29 book.setPublicatoindate(rs.getDate("publicatoin_date")); 30 book.setStock(rs.getInt("stock")); 31 book.setGenreId(rs.getInt("genre_id")); 32 bookList.add(book); 33 } 34 } catch (SQLException e) { 35 e.printStackTrace(); 36 }finally{ 37 DBManager.close(ps, con); 38 } 39 return bookList; 40 } 41} 42 43```jsp 44

<%@ page contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link href="css/style.css" rel="stylesheet" type="text/css" /> <title>書籍一覧</title> </head> <body> <%@ include file="../header.jsp"%> <div id="main"></div> <h2>書籍一覧画面</h2> <form action="/book_list/serch" method="post"> 書籍名:<input type="text" name="bookName"/> <input type="submit" value="検索"/><br/> ジャンル名: <select name="book"> <option value="1">経済</option> <option value="2">文学</option> <option value="3">技術</option> </select> <input type="submit" value="検索"/> </form> <table border="1"> <tr> <th>書籍ID</th> <th>書籍名</th> <th>著者</th> <th>発行日</th> <th>在庫</th> <th>ジャンル名</th> </tr> <c:forEach var="book" items="${book}"> <tr> <th>${book,book_id }</th> <th>${book,book_name }</th> <th>${book,author }</th> <th>${book,publication_date }</th> <th>${book,stock }</th> <th>${book,genre_Id }</th> </c:forEach> </table>

<%@ include file="../footer.jsp"%>

</body> </html> ``` ```bean package jp.co.sss.book.bean;

import java.util.Date;

public class Book {

private int bookId; private String bookName; private String author; private Date publicatoindate; private int stock; private int genreId; public int getBookId() { return bookId; } public void setBookId(int bookId) { this.bookId = bookId; } public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public Date getPublicatoindate() { return publicatoindate; } public void setPublicatoindate(Date publicatoindate) { this.publicatoindate = publicatoindate; } public int getStock() { return stock; } public void setStock(int stock) { this.stock = stock; } public int getGenreId() { return genreId; } public void setGenreId(int genreId) { this.genreId = genreId; }

}

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

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

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

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

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

guest

回答1

0

ベストアンサー

うまくいかずエラーがでてしまいます。

エラーメッセージは表示された内容をそのまま質問にコピペしてください。

パット見たところ、

ps = con.prepareStatement("SELECT * FROM book WHERE book_id = ?");
//ps.setString(1, bookId);

SELECT * FROM book WHERE book_id = ?
とあるのに、
book_id に値を設定する
ps.setString(1, bookId);
がコメントになっているからエラーになるのでは?

全件SELECTするなら
SELECT * FROM book
だけで良いかと。

Orale SQL 入門でググるなり書籍を買ってきちんと勉強しないと、いつまで経っても使い物にならないコードを書き続けます。

投稿2020/05/26 23:35

Orlofsky

総合スコア16417

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

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

c111000

2020/05/26 23:56

ご回答ありがとうございます。その通りでした。他に気になる点はございますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問