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

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

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

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

Java

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

Q&A

0回答

425閲覧

DEPTテーブルの情報を取得し、インスタンスを用いて表示させたい

ypk

総合スコア83

JSP

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

Java

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

0グッド

0クリップ

投稿2020/05/28 00:17

編集2020/05/28 05:15

初めまして。
現在JSPの学習をしているものです。

Statement sttSql = db.createStatement();

ResultSet rs = db.getResultSet("select * from DEPT");

ResultSet rs =sttSql.executeQuery(select * from DEPT);

などを駆使することを通して、下記のコードの情報を「MyDBAccess」のインスタンスを生成することを通して取得し、データベースにアクセスし、JSP(「私のコード」に記述があります)にて表示することを試みています。

Java

1package atmarkit; 2 3import java.sql.*; 4 5public class MyDBAccess { 6 7 private String driver; 8 private String url; 9 private String user; 10 private String password; 11 private Connection connection; 12 private Statement statement; 13 private ResultSet resultset; 14 15 /** 16 * コンストラクタ 17 * @param driver ドライバー 18 * @param url URL 19 * @param user ユーザー名 20 * @param password パスワード 21 */ 22 public MyDBAccess(String driver, String url, String user, String password) { 23 this.driver = driver; 24 this.url = url; 25 this.user = user; 26 this.password = password; 27 } 28 29 /** 30 * 引数なしのコンストラクタ 31 * 既定値を使用する 32 */ 33 public MyDBAccess() { 34 driver = "com.mysql.jdbc.Driver"; 35 url = "jdbc:mysql://localhost:3306/××××;//意図的に伏せています 36 user = "root"; 37 password = "××××";//意図的に伏せています 38 } 39 40 /** 41 * データベースへの接続を行う 42 */ 43 public synchronized void open() throws Exception { 44 Class.forName(driver); 45 connection = DriverManager.getConnection(url, user, password); 46 statement = connection.createStatement(); 47 } 48 49 /** 50 * SQL 文を実行した結果の ResultSet を返す 51 * @param sql SQL 文 52 */ 53 public ResultSet getResultSet(String sql) throws Exception { 54 if ( statement.execute(sql) ) { 55 return statement.getResultSet(); 56 } 57 return null; 58 } 59 60 /** 61 * SQL 文の実行 62 * @param sql SQL 文 63 */ 64 public void execute(String sql) throws Exception { 65 statement.execute(sql); 66 } 67 68 /** 69 * データベースへのコネクションのクローズ 70 */ 71 public synchronized void close() throws Exception { 72 if ( resultset != null ) resultset.close(); 73 if ( statement != null ) statement.close(); 74 if ( connection != null ) connection.close(); 75 } 76}

![イメージ説明]

しかし、試行錯誤しているのですがうまくいきません。
知恵を貸していただけると嬉しいです。どうぞよろしくお願いいたします。

#私のコード

Java

1<%@ page import="java.sql.*, atmarkit.MyDBAccess" 2 contentType="text/html; charset=UTF-8" %> 3 4 5<% request.setCharacterEncoding("UTF-8"); 6 7 //DB接続オブジェクト 8 Connection db = null; 9 //命令を管理するオブジェクト? 10 Statement sttSql = null; 11 //結果セットオブジェクト 12 ResultSet rs = null; 13 14%> 15 16 17<html> 18<head> 19<title>登録/更新/削除</title> 20</head> 21<body> 22<h1 style="background:#cccccc">新規登録/更新/削除</h1> 23<form method="POST" action="updel.jsp"> 24<input type="submit" name="cndbtn" value="新規" /> 25<input type="submit" name="cndbtn" value="更新・削除" /> 26<input type="reset" value="取消" /> 27<hr> 28<table border="0"> 29<tr style="background:#00ccff"> 30<th>No.</th><th>削除</th><th>名前</th><th>場所</th> 31</tr> 32 33<% 34 int cnt=1; 35 36//MyDBAccess のインスタンスを生成する 37MyDBAccess db = new MyDBAccess(); 38 39//データベースへのアクセス 40db.open(); 41 42Statement sttSql = db.createStatement(); 43 44ResultSet rs = db.getResultSet("select * from DEPT"); 45 46ResultSet rs =sttSql.executeQuery(select * from DEPT); 47 48while(rs.next()){ 49%> 50<tr style="background:#ffffcc"> 51<td> 52<%=rs.getString("DEPTNO") %> 53<input type="hidden" name="id<%=cnt %>" value="<%=rs.getString("DEPTNO")%>" 54/> 55 56</td> 57<td><input type="checkbox" name="del<%=cnt %>" value="true" /></td> 58<td nowrap> 59<input type="text" name="nam<%=cnt %>" size="30" 60value="<%=rs.getString("DNAME")%>" 61/> 62</td><td> 63<input type="text" name="loc<%=cnt %>" size="30" 64value="<%=rs.getString("LOC")%>" 65/> 66</td> 67</tr> 68 69<% 70 cnt++; 71 } 72 rs.close(); 73 sttSql.close(); 74 db.close(); 75 %> 76 77 </table> 78 <input type="hidden" name="cnt" value="<%=cnt %>" /> 79 </form> 80 </body> 81</html>

もし何か、気になる箇所などございましたらご教授いただけたら幸いです。
どうぞよろしくお願いいたします。

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

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

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

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

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

YT0014

2020/05/28 03:04

DB接続処理はjavaで行われていますので、javaタグの追加を推奨します。 また、質問は、「コードに記載せず設定ファイルなどに接続情報を逃がしたい」でしょうか?それとも「コードにもそれ以外にも接続情報を持たずに推論などにより自動接続したい」でしょうか? 現在の文章だと、どちらともとれますので、ここへの返答ではなく、質問を編集して、質問意図が明確になるようにしてください。
YT0014

2020/05/28 10:38

試行錯誤されたのなら、どういう結果(エラーメッセージ、出力など)になったのかをご提示ください。 DBへの接続エラーなのか、SQLの実行エラーなのか、取得レコードがなかったのかなどで、検討すべき問題が異なります。 問題が起こったら、まず、状況を正確に把握すべく、エラーメッセージを含め、実際の実行推移を確認してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問