
JSPでDBからデータを表示させる事ができました、これをブラウザーで10件ずつ表示させ、次へ→、←戻る又はページ数表示で移動させたいのですが、PHPとかでは
あったのですがJAVA初心者にはわかりません。
誰か教えてください、お願いします。
<%@page import="java.sql.*,MyDatabase.MyDBAccess" contentType="text/html;charset=Shift_JIS"%>
<%
String sel=request.getParameter("sel");
sel=new String(sel.getBytes("8859_1"),"Shift_JIS");//selectしたカテゴリーname
MyDBAccess db =new MyDBAccess();
db.open();
//String str;
//str=sel;
ResultSet rs = db.getResultSet("select * from "+sel+"");
String tableHTML ="<table border=1>";
tableHTML +="<tr bgcolor=\"#ff9933\">"
+"<td><font color=\"white\">商品ID</font></td>"
+"<td><font color=\"white\">画像</font></td>"
+"<td><font color=\"white\">商品名</font></td>"
+"<td><font color=\"white\">数量</font></td>"
+"<td><font color=\"white\">タイトル</font></td>"
+"<td><font color=\"white\">価格</font></td>"
+"<td><font color=\"white\">説明</font></td>";
int n=0;
while(rs.next()){
//int id=rs.getInt("id");
String id=rs.getString("id");
String name=rs.getString("name");
String sum=rs.getString("sum");
String price=rs.getString("price");
String title=rs.getString("title");
String detail=rs.getString("detail");
String ima=rs.getString("imagelink");
//ima=new String(ima.getBytes("8859_1"),"Shift_JIS");
String imag=("../image/"+ima);
tableHTML +="<tr><td align=\"right\">"+id+"</td>"
+"<td><img src="+imag+" whdth=\"120\" height=\"60\"></td>"
+"<td>"+name+"</td>"
+"<td>"+sum+"</td>"
+"<td>"+title+"</td>"
+"<td>"+price+"</td>"
+"<td>"+detail+"</td></tr>";
n++;
}
tableHTML +="</table>";
db.close();
%>
<html>
<head>
<title>商品在庫情報</title>
</head>
<body>
<h1><%= sel %>の在庫一覧</h1>
<%=tableHTML %>
</body>
</html>
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
MySQLですとこうなると思います。
<%@ page contentType="text/html;charset=Shift_JIS" %>
<%@ page import="java.sql.*" %>
<%
try {
int I=0;
int k=0;
String jj="1";
if(session.getAttribute("NO")==null){
jj="0" ;
}else{
jj=(String)session.getAttribute("NO");
}
I=Integer.parseInt(jj);
if(request.getParameter("ID")==null){
I=0;
}else if(request.getParameter("ID").equals("FRONT")){
I=I+10;
}else if(request.getParameter("ID").equals("BACK")){
I=I-10;
}
String row=Integer.toString(I);
String row2=Integer.toString(I+10);
session.setAttribute("NO",row);
// ドライバクラスをロード
// Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // ODBCの場合
Class.forName("org.gjt.mm.mysql.Driver"); // MySQLの場合
// データベースへ接続
// Connection con =
// DriverManager.getConnection("jdbc:odbc:helloworld"); // ODBCの場合
// MySQLの場合
String url = "jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=SJIS";
Connection con = DriverManager.getConnection(url,"user","pass");
// ステートメントオブジェクトを生成
Statement stmt = con.createStatement();
String sql = "SELECT a,bFROM test ORDER BY a ASC LIMIT "+row+","+row2;
// クエリーを実行して結果セットを取得
ResultSet rs = stmt.executeQuery(sql);
// 検索された行数分ループ
while(rs.next()){
// NOを取得
String no = rs.getString("a");
// 言語を取得
String lang = rs.getString("b");
// メッセージを取得
// String msg = rs.getString("MESSAGE");
// 表示
%>
<%= no + " " + lang %><br>
<%
}
// データベースから切断
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
%>
<html>
<body>確認OK
<hr>
<form action="testMySQL30.jsp" method="post" >
<br>
<input type="submit" value="FRONT" name="ID">
<input type="submit" value="BACK" name="ID">
</form>
<hr>
</body>
</html>
No.2
- 回答日時:
DBがORACLEの場合 ROWNUMを使えばできると思います。
POSTGRESの場合はLIMIT OFFSETになるでしょう。
以下ソースコードです。
<%@ page contentType="text/html;charset=Shift_JIS" %>
<%@ page import="java.sql.*" %>
<%
int I=1;
int k=0;
String jj="1";
if(session.getAttribute("NO")==null){
jj="1" ;
}else{
jj=(String)session.getAttribute("NO");
}
I=Integer.parseInt(jj);
if(request.getParameter("ID")==null){
I=1;
}else if(request.getParameter("ID").equals("FRONT")){
I=I+10;
}else if(request.getParameter("ID").equals("BACK")){
I=I-10;
}
%>
<%= I %>
<%
String ii=Integer.toString(I);
session.setAttribute("NO",ii);
// ログインに必要な情報
String user = "user"; // ユーザ名
String pass = "pass"; // パスワード
String database = "XE"; // データベース
String server = "127.0.0.1";
out.println ("Connecting..."+"<br>");
// 接続およびSQL実行
try {
// ドライバクラスをロード
Class.forName("oracle.jdbc.driver.OracleDriver");
// データベースへ接続
Connection con = DriverManager.getConnection ("jdbc:oracle:thin:@"+server+ ":1521:"+database ,user ,pass);
// ステートメントオブジェクトを生成
Statement stmt = con.createStatement();
// クエリーを実行して結果セットを取得
int I2=I+10;
String sql = "select employee_id,first_name,last_name,email from (select rownum m,employee_id,first_name,last_name,email from hr.employees)";
sql=sql+"where m >='"+I+"' and m < '"+I2+"'";
ResultSet rs = stmt.executeQuery(sql);
// 表示
while (rs.next()) {
%>
<%= rs.getInt("employee_id") + " " + rs.getString("first_name") + " "+ rs.getString("last_name") + " " + rs.getString("email") %><br>
<% }
// データベースから切断
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
%>
<html>
<body>確認OK
<hr>
<form action="testOracleXE3.jsp" method="post" > <!--自分にpostしている-->
<br>
<input type="submit" value="FRONT" name="ID">
<input type="submit" value="BACK" name="ID">
</form>
<hr>
</body>
</html>
本当にありがとうございます。ソースまで記入いただき目からうろこです。
考え方の基本が良くわかりました。DBはMysqlですが出来そうです。
後ほど結果報告させて頂きます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSPでImportエラーになります
-
プログラミングの意味
-
WebWork(struts2)でのパラメー...
-
JSPにて、変数を利用してフォン...
-
オブジェクトの中のプロパティ...
-
JSPでDBからデータ読み込みブラ...
-
StrutsでJSPからListを受け取り...
-
データベースに変数の値を挿入
-
requestの値が削除されません…
-
JavaでXMLといったら何を使いま...
-
apacheとtomcatの連携
-
System.err. printlnとSystem.o...
-
JSPやサーブレットでSystem.out...
-
C言語のポインターに関する警告
-
Javaで文字と数字が混ざったも...
-
ループ処理の際、最後だけ","を...
-
配列をセッションに割り当てた後で
-
数値⇒漢数字変換 java
-
透過色について
-
yyyymmddからyyyy/mm/d...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
オブジェクトの中のプロパティ...
-
JSPでImportエラーになります
-
StrutsでJSPからListを受け取り...
-
hiddenの値が期待した値で取得...
-
JSPからServletに、テーブルに...
-
requestの値が削除されません…
-
データベースに変数の値を挿入
-
javaの環境変数の%CATALINA_HOM...
-
【Struts】bean:writeタグのpro...
-
PropertyNotFoundException解決...
-
Enumのname()とtoString()の違...
-
Java Struts ~に対するゲッタ...
-
JSPにて、変数を利用してフォン...
-
JSFタグ<h:dataTable>でヘッダ...
-
JSP DB 表示
-
enumでの要素番号から要素名の...
-
サーブレットjspで勤怠スケジュ...
-
JSPでの文字列編集出力
-
文字列の抽出とSQL表作成
-
【struts】 ActionFormで別のAc...
おすすめ情報