@WebServlet("/ResultSetMetaDataTest")
public class ResultSetMetaDataTest extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String sql = "select * from user where id<?";
Object obj[] = new Object[]{1020};
List<Map<String, Object>> list = test1(sql, obj);
request.setAttribute("list", list);
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
private List<Map<String, Object>> test1(String sql, Object[] obj) {
List<Map<String,Object>> list = new ArrayList<>();
Connection conn=null;
PreparedStatement ps =null;
ResultSet rs = null;
JDBCUtils utils =JDBCUtils.getInstance();
try {
conn = utils.getConnection();
ps=conn.prepareStatement(sql);
ParameterMetaData pmd = ps.getParameterMetaData();
int parameterCount = pmd.getParameterCount();
for(int i=1;i<=parameterCount;i++){
ps.setObject(i, obj[i-1]);
}
rs= ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int count = rsmd.getColumnCount();
while(rs.next()){
Map<String,Object> map = new HashMap<>();
for(int i=1;i<=count;i++){
String key = rsmd.getColumnName(i);
Object value = rs.getObject(key);
map.put(key, value);
}
list.add(map);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
utils.free(conn, ps, rs);
}
return list;
}
}