お世話になってます。プログラミング初心者です。
現在、独学でWebアプリケーションで商品を販売するサイトを作成しています。
そこでページング作成をしているのですが、
どうしても躓いてしまいます。
問題点としては
DAOクラスでmysqlのLIMITとOFFSETを使用して10件ずつ表示をアイテムの表示をさせようとしています。
ただアイテム情報を表示させるだけなら可能なのですが、制限を
SELECT * FROM m_item LIMIT 10 OFFSET ?
という形でOFFSETの値を可変で変えてページングを作成していきたいのですが、
このOFFSETの値の変え方がわかりません。
OFFSETは入力したりして変えるものではないですが可変するものなので ? にしてみています。
DAOクラスのソースはこのような形で作成しています。
因みに servlet、DAO、model、jspを使用して作成しています。
稚拙な質問内容ではありますが、ご回答よろしくお願いします。
public class ItemDAO {
private static final String PATH = "jdbc:mysql://localhost/ec_site"; private static final String USER_ID = "root"; private static final String PASSWORD = ""; private static final String DORAIV = "com.mysql.jdbc.Driver"; public List<Item> allItems() { Connection conn = null; List<Item> itemList = new ArrayList<Item>(); try{ Class.forName(DORAIV); conn = (Connection) DriverManager.getConnection(PATH,USER_ID,PASSWORD); String sql = "SELECT * FROM item LIMIT 10 OFFSET ?"; PreparedStatement pStmt = (PreparedStatement) conn.prepareStatement(sql); ResultSet rs = pStmt.executeQuery(); while (rs.next()) { String itemName = rs.getString("item_name"); String itemNumber = rs.getString("item_number"); String price = rs.getString("price"); String image = rs.getString("image"); String stock = rs.getString("stock"); String category = rs.getString("category"); String saleFlag = rs.getString("sale_flag"); String itemId = rs.getString("item_id"); Item item = new Item(itemNumber,itemName,price,image,stock,categoryId,saleFlag,itemId); itemList.add(item); } return itemList; } catch(SQLException e) { e.printStackTrace(); return null; } catch(ClassNotFoundException e){ e.printStackTrace(); return null; } finally { if (conn != null) { try { conn.close(); } catch(SQLException e) { e.printStackTrace(); return null; } } } }
}

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/28 08:04
2015/12/28 23:38
2015/12/29 00:04
2015/12/29 01:04
2015/12/29 01:06
2015/12/29 01:18