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

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

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

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

JSP

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

Java

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

Q&A

解決済

1回答

1751閲覧

SQLでデータ取得した金額をカンマ区切りしたい

ooood

総合スコア2

MySQL

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

JSP

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

Java

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

0グッド

0クリップ

投稿2022/10/14 11:52

編集2022/10/16 03:22

SQLでデータ取得した金額をカンマ区切りしたい

SQLでデータ取得した表を表示をすることができたが、カンマ区切りにすることができないため、ご質問させていただきました。

金額は、表示できるが、カンマ区切りにならない。

実現したいこと

金額をカンマ区切りしです。

給与の分だけをカンマ区切りしたいです。

Java

1import java.sql.PreparedStatement; 2import java.sql.ResultSet; 3import java.text.DecimalFormat; 4import java.util.ArrayList; 5 6import list.ListBean; 7public class ListDao extends DBAccess { 8 9 @SuppressWarnings("unused") 10 public ArrayList<ListBean> getUserList() { 11 12 ArrayList<ListBean> list = new ArrayList<ListBean>(); 13 14 //SQL文を作成する 15 String sql = "select employee.emp_id, employee.emp_name, type.type_name, post.post_name, salary.salary from (((employee inner join type on employee.type_id=type.type_id) left join post on employee.post_id=post.post_id) left join salary on employee.type_id=salary.type_id and employee.post_id=salary.post_id) order by employee.emp_id asc"; 16 17 try { 18 19 //Connectionオブジェクトを取得する 20 connect(); 21 //ステートメントを作成する 22 PreparedStatement ps = getConnection().prepareStatement(sql); 23 //SQLを発行する 24 ResultSet rs = ps.executeQuery(); 25 26 //ResultSetからbeanにユーザ情報を設定する 27 while (rs.next()) { 28 ListBean bean = new ListBean(); 29 bean.setId(rs.getString("emp_id")); 30 bean.setName(rs.getString("emp_name")); 31 bean.setTypename(rs.getString("type_name")); 32 bean.setPostname(rs.getString("post_name")); 33 bean.setSalary(rs.getInt("salary")); 34 35 36 list.add(bean); 37 38 DecimalFormat objFmt=new DecimalFormat("###,###"); 39 } 40 41 } catch (Exception e) { 42 e.printStackTrace(); 43 } 44 45 finally { 46 disconnect(); 47 } 48 return list; 49 } 50 51} 52

jsp

1 2<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 3<%@ page import="java.util.*"%> 4<%@ page import="list.ListBean" %> 5 6 7<html> 8<head> 9 <title>社員一覧画面</title> 10 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 11 12</head> 13<body> 14 <% 15 ArrayList<list.ListBean> list =(ArrayList<list.ListBean>)request.getAttribute("list"); 16 %> 17 18 <div style="text-align:center;"> 19 <h2>社員一覧</h2> 20 <table align="center" border="1" style="border-collapse: collapse; border-color: black; width: 500;"> 21 <tr> 22 <td style="background-color: #cccccc;">ID</td> 23 <td style="background-color: #cccccc;">氏名</td> 24 <td style="background-color: #cccccc;">職種</td> 25 <td style="background-color: #cccccc;">役職</td> 26 <td style="background-color: #cccccc;">給与</td> 27 28 </tr> 29 30 <% for(int i=0; i<list.size();i++){ %> 31 <tr align="center"> 32 <td><%= list.get(i).getId() %></td> 33 <td><%= list.get(i).getName() %></td> 34 <td><%= list.get(i).getTypename() %></td> 35 <td><%= list.get(i).getPostname() %></td> 36 <td style="text-align:right;"><%= objFmt.format(list.get(i).getSalary()) %></td> 37 38 </tr> 39 <% } %> 40 </table> 41 </div> 42</body> 43</html>

| emp_id | emp_name | type_name | post_name | salary |
+--------+------------+-----------+-----------+--------+
| 10001 | ffffff | vvv部 | hhhhh | 100000 |


| emp_id | emp_name | type_name | post_name | salary |
+--------+------------+-----------+-----------+--------+
| 10001 | ffffff | vvv部 | hhhhh | 100,000 |

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

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

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

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

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

jimbe

2022/10/14 12:01 編集

ご提示のコードのどこでカンマ区切りにしようというのでしょうか。 表示する個所がありません。
ooood

2022/10/14 12:05

申し訳ございません。 給与の分を3桁ごとに,(カンマ)で区切られたようにしたのですが、うまくいかずご相談しました。
jimbe

2022/10/14 13:00

表示を追加されましたが、それは java コードで表示したのでしょうか。
m.ts10806

2022/10/15 01:46 編集

表示出力部分を担当している「コード」を提示してください。 キーワード「桁区切り」で分かることもあるのでは
ooood

2022/10/15 06:49

自分なりに考えてみたのですが、エラーメッセージが出てしまいました。 jsp <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*"%> <%@ page import="list.ListBean" %> <html> <head> <title>社員一覧画面</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <% ArrayList<list.ListBean> list =(ArrayList<list.ListBean>)request.getAttribute("list"); %> <div style="text-align:center;"> <h2>社員一覧</h2> <table align="center" border="1" style="border-collapse: collapse; border-color: black; width: 500;"> <tr> <td style="background-color: #cccccc;">ID</td> <td style="background-color: #cccccc;">氏名</td> <td style="background-color: #cccccc;">職種</td> <td style="background-color: #cccccc;">役職</td> <td style="background-color: #cccccc;">給与</td> </tr> <% for(int i=0; i<list.size();i++){ %> <tr align="center"> <td><%= list.get(i).getId() %></td> <td><%= list.get(i).getName() %></td> <td><%= list.get(i).getTypename() %></td> <td><%= list.get(i).getPostname() %></td> <td style="text-align:right;"><%= objFmt.format(list.get(i).getSalary()) %></td> </tr> <% } %> </table> </div> </body> </html> Java import java.sql.PreparedStatement; import java.sql.ResultSet; import java.text.DecimalFormat; import java.util.ArrayList; import list.ListBean; public class ListDao extends DBAccess { @SuppressWarnings("unused") public ArrayList<ListBean> getUserList() { ArrayList<ListBean> list = new ArrayList<ListBean>(); //SQL文を作成する String sql = "select employee.emp_id, employee.emp_name, type.type_name, post.post_name, salary.salary from (((employee inner join type on employee.type_id=type.type_id) left join post on employee.post_id=post.post_id) left join salary on employee.type_id=salary.type_id and employee.post_id=salary.post_id) order by employee.emp_id asc"; try { //Connectionオブジェクトを取得する connect(); //ステートメントを作成する PreparedStatement ps = getConnection().prepareStatement(sql); //SQLを発行する ResultSet rs = ps.executeQuery(); //ResultSetからbeanにユーザ情報を設定する while (rs.next()) { ListBean bean = new ListBean(); bean.setId(rs.getString("emp_id")); bean.setName(rs.getString("emp_name")); bean.setTypename(rs.getString("type_name")); bean.setPostname(rs.getString("post_name")); bean.setSalary(rs.getInt("salary")); list.add(bean); DecimalFormat objFmt=new DecimalFormat("###,###"); } } catch (Exception e) { e.printStackTrace(); } finally { disconnect(); } return list; } }
m.ts10806

2022/10/15 06:53

>自分なりに考えてみたのですが、エラーメッセージが出てしまいました。 どういうエラーでしょうか。 コードも質問本文に提示してください。
ooood

2022/10/15 06:57

jspの方に <td style="text-align:right;"><%= objFmt.format(list.get(i).getSalary()) %></td> をたしてみまして、「objFmt を解決できません」エラーメッセージが出ます。 Javaの方には、 DecimalFormat objFmt=new DecimalFormat("###,###");を足しました。
m.ts10806

2022/10/15 07:04 編集

コードも質問本文に提示してください。
jimbe

2022/10/15 18:22

どうやら java, jsp 及びそれらの連携の基本部分の理解が足りないようです。 ListBean (これまた酷い名前ですが) クラスに getStringifiedSalary() メソッドを作って "," を入れた文字列を返すようにしたほうが分かり易いかもしれませんね。
guest

回答1

0

ベストアンサー

Javaの方には、
DecimalFormat objFmt=new DecimalFormat("###,###");を足しました。

Javaに足したところでJSPに持ってくるような記述もありませんし、
スコープの問題でJavaのwhileの中で宣言された変数なので、whileの中でしか活きません。
listにフォーマットした値を追加して返すか、可能ならJSP側でDecimalFormat()を出力時にかけたほうが良いでしょう。

投稿2022/10/15 07:06

m.ts10806

総合スコア80765

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問