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

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

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

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Java

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

Q&A

0回答

902閲覧

java MVC DB更新処理

n-k_.77

総合スコア5

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Java

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

0グッド

0クリップ

投稿2020/07/29 07:23

編集2020/07/29 07:44

javaのWebアプリケーション作成で質問があります。
MVCに沿ってファイルを分けて作成したいのですが、DBの更新処理がうまくいきません。
Controller→Model間の正しいコードが分からなかったのでヒントでも教えていただけると助かります。

JSP(一部抜粋)

</tr> <% List<Bean> Prodcutlist = (List<Bean>)request.getAttribute("Prodcutlist"); for (Bean bean : Prodcutlist) { %> <tr> <td><%=bean.getId()%></td> <td><%=bean.getName()%></td> <td><%=bean.getPrice()%></td> <form action="/Product_management/edit" method="Get"> <input type="hidden" name="id" value="<%=bean.getId()%>"> <input type="hidden" name="name" value="<%=bean.getName()%>"> <input type="hidden" name="price" value="<%=bean.getPrice()%>"> <input type="submit" onClick="location.href='http://localhost:8080/Product_management/edit'" value="編集"> </form>

Controller

protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

ManagementModel model = new ManagementModel(); ArrayList<Bean> Prodcutlist = model.getBeanlist(); req.setAttribute("Prodcutlist", Prodcutlist); String name = req.getParameter("name"); String price = req.getParameter("price"); String id = req.getParameter("id"); RequestDispatcher rd = req.getRequestDispatcher("/EditingScreen.jsp"); rd.forward(req, res); } protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String name = req.getParameter("name"); String price = req.getParameter("price"); String id = req.getParameter("id"); EditModel dao = new EditModel(); dao.list(id, name, price); res.sendRedirect("/EditingScreen.jsp");

}

Model

public class EditModel {

private Connection con_ = null; private ResultSet rs_ = null; private PreparedStatement ps_ = null; public void list(String id, String name, String price) { try { Connection con = null; String url = "jdbc:mysql://192.168.1.2/komori"; String user = "contentsservice"; String password = "contentsservice"; Class.forName("com.mysql.jdbc.Driver").newInstance(); con = DriverManager.getConnection(url, user, password); this.ps_ = this.con_.prepareStatement("update Prodcutlist set name=?,price=? Where id = ?"); this.ps_.setString(1,"id"); this.ps_.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public void close() { try { // データベースとの接続を解除する if (this.con_ != null) { this.con_.close(); } if (this.ps_ != null) { this.ps_.close(); } if (this.rs_ != null) { this.rs_.close(); } } catch (SQLException se) { // データベースとの接続解除に失敗した場合 se.printStackTrace(); } }

}

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

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

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

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

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

m.ts10806

2020/07/29 07:31

作業依頼をする場所ではありません。 「簡単に」と書いてはいても、ほぼ何も情報がない状態でコードだけ書くのも無理ですし、作業としたらそれなりの対価を支払う必要があります。言うほど話は簡単にはなりません。 まず「質問するときのヒント」を熟読の上、「質問」にしてください。
n-k_.77

2020/07/29 07:46

回答ありがとうございます。作業依頼する場所ではありませんでした。気を付けます。 対価を払ってでも解決したい問題だったので(急ぎ)、何も確認せずに投稿してしまいました。 内容は修正いたしました。
m.ts10806

2020/07/29 07:57

>対価を払ってでも解決したい問題だったので(急ぎ) ではクラウドワークスなどで対価を払って解決してください。 「質問するときのヒント」を無視した内容に答えたい人はあまりいません。そして「急ぎ」というのは回答者を遠ざけます。
m.ts10806

2020/07/29 08:00

ちなみに、ひとつのゴールのための道筋はひとつではないので「正しいコード」というのは存在しません。 要件を満たせて不具合なければ「正しいコード」と言えます。
n-k_.77

2020/07/29 08:46

ご教示いただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問