jsp oracle쿼리문 질문드립니다..
public List selectList(List whereCond, Map valueMap, int startRow, int endRow)
throws Exception
{
if(valueMap == null) valueMap = Collections.EMPTY_MAP;
Connection conn = null;
PreparedStatement pstmtMessage = null;
ResultSet rsMessage = null;
try
{
StringBuffer query = new StringBuffer(200);
query.append("select * from( ");
query.append("select THEME_MESSAGE_ID, GROUP_ID, ORDER_NO, LEVELS," +
"PARENT_ID, REGISTER, NAME, EMAIL, IMAGE, PASSWORD, TITLE," +
"ROWNUM rnum ");
query.append("from( ");
query.append("select THEME_MESSAGE_ID, GROUP_ID, ORDER_NO, LEVELS," +
"PARENT_ID, REGISTER, NAME, EMAIL, IMAGE, PASSWORD, TITLE ");
query.append("from THEME_MESSAGE ");
if(whereCond != null && whereCond.size() > 0)
{
query.append("where ");
for(int i = 0; i
{
query.append(whereCond.get(i));
if(i < whereCond.size() - 1)
{
query.append(" or ");
}
}
}
query.append("order by GROUP_ID desc, ORDER_NO asc ");
query.append(") where ROWNUM<=? ");
query.append(") where rnum>=? ");
conn = getConnection();
pstmtMessage = conn.prepareStatement(query.toString());
Iterator keyIter = valueMap.keySet().iterator();
while(keyIter.hasNext())
{
Integer key = (Integer)keyIter.next();
Object obj = valueMap.get(key);
if(obj instanceof String)
{
pstmtMessage.setString(key.intValue(), (String)obj);
}
else if(obj instanceof Integer)
{
pstmtMessage.setInt(key.intValue(), ((Integer)obj).intValue());
}
else if(obj instanceof Timestamp)
{
pstmtMessage.setTimestamp(key.intValue(), (Timestamp)obj);
}
}
pstmtMessage.setInt(valueMap.size() + 1, endRow + 1);
pstmtMessage.setInt(valueMap.size() + 2, startRow + 1);
rsMessage = pstmtMessage.executeQuery();
if(rsMessage.next())
{
List list = new java.util.ArrayList(endRow - startRow + 1);
do
{
Theme theme = new Theme();
theme.setId(rsMessage.getInt("THEME_MESSAGE_ID"));
theme.setGroupId(rsMessage.getInt("GROUP_ID"));
theme.setOrderNo(rsMessage.getInt("ORDER_NO"));
theme.setLevels(rsMessage.getInt("LEVELS"));
theme.setParentId(rsMessage.getInt("PARENT_ID"));
theme.setRegister(rsMessage.getTimestamp("REGISTER"));
theme.setName(rsMessage.getString("NAME"));
theme.setEmail(rsMessage.getString("EMAIL"));
theme.setImage(rsMessage.getString("IMAGE"));
theme.setPassword(rsMessage.getString("PASSWORD"));
theme.setTitle(rsMessage.getString("TITLE"));
list.add(theme);
}while(rsMessage.next());
return list;
}
else
{
return Collections.EMPTY_LIST;
}
}catch(SQLException ex){
ex.printStackTrace();
throw new Exception("selectList", ex);
}finally{
if(rsMessage != null)
try { rsMessage.close(); } catch(SQLException ex) {}
if(pstmtMessage != null)
try { pstmtMessage.close(); } catch(SQLException ex) {}
if(conn != null) try { conn.close(); } catch(SQLException ex) {}
}
}
이쿼리문은 오라클용이더라구요..
저는 mysql을 사용하는데 mysql은 서브쿼리가 안되가지고 애가먹고있습니다..
저걸 mysql용으로 좀 바꿔주셧으면 감사하겟습니다
부탁드립니다..
급해서요 ㅠㅠ
댓글 달기