public static List<?> convertList(ResultSet set,Class<?> obj) throws SQLException, Secur

JAVA中 List&? extends Serializable& 什么意思?_百度知道
JAVA中 List&? extends Serializable& 什么意思?
public &T& int delete(Class&T& entityClass , List&? extends Serializable& ids);
我有更好的答案
按默认排序
您提问者:
&?代表传类型extends表示传必须Serializable类&
代表向转型向转型&? super xxx&
List&? extends Serializable& ids,表示 ids 是只读。应为 ids.add不能做ids.add((Serializable)o);也不能做ids.add((ChildOfSerializabe)o);
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁ResultSet转换为List的方法
private static List convertList(ResultSet rs) throws SQLException {
List list = new ArrayList();
ResultSetMetaData md = rs.getMetaData();
int columnCount = md.getColumnCount(); //Map rowD
while (rs.next()) { //rowData = new HashMap(columnCount);
Map rowData = new HashMap();
for (int i = 1; i &= columnC i++) {
rowData.put(md.getColumnName(i), rs.getObject(i));
list.add(rowData);
/*** 通用取结果方案,返回list*&* @param rs* @return* @throws SQLException*/public List extractData(ResultSet rs) throws SQLException {ResultSetMetaData md = rs.getMetaData();int num = md.getColumnCount();List listOfRows = new ArrayList();while (rs.next()) {Map mapOfColValues = new HashMap(num);for (int i = 1; i &= i++) {mapOfColValues.put(md.getColumnName(i), rs.getObject(i));}listOfRows.add(mapOfColValues);}return listOfR}
/*** 通用取结果方案,返回JSONArray*&* @param rs* @return* @throws SQLException*/public JSONArray extractJSONArray(ResultSet rs) throws SQLException {ResultSetMetaData md = rs.getMetaData();int num = md.getColumnCount();JSONArray array = new JSONArray();while (rs.next()) {JSONObject mapOfColValues = new JSONObject();for (int i = 1; i &= i++) {mapOfColValues.put(md.getColumnName(i), rs.getObject(i));}array.add(mapOfColValues);}}
ResultSet在的二纬结构可以用二维模型处理,即网格数据 处理这里模型时候,通常用list与与Map的合成,json语法格式本质上是map格式,所以在数据与java,js处理上可以做如上的抽取.
原理就是用Map存放单条数据然后放到List里
用起来可以这样调用 List list = rs.selectRS(sqlStr);
for(int i=0;i&list.i++){&&& ((Map)list.get(i)).get("username");}这样的话就不用每次在写数据库连接了,而且有比较复杂的页面格式输出就可以通过对 i 的控制来实现了
下面是具体实现类可以结合struts,webwork2的标签来用,我已经测试过了没问题我也看到一些人是自己写类来代替Map来用的
import conn.DBConnMimport java.sql.*;import java.util.*;
public class ResultGather&{private Spublic ResultGather(){&&}public ResultGather(String sqlcom){&& this.sql=}public List selectRS(String sqlStr){&& this.sql = sqlS&& return selectRS();&}public List selectRS(){&& List rsall = new ArrayList();&& Map rsT&& DBConnManager conn =&& Connection con =&& Statement stmt =&& ResultSet rs =&& try{&&& conn = DBConnManager.getInstance();&&& con = conn.getConnection("mssql");&&& stmt = con.createStatement();&&& rs = stmt.executeQuery(sql);&&& ResultSetMetaData rsmd = rs.getMetaData();//取数据库的列名 我觉得名比1,2,3..更好用&&& int numberOfColumns = rsmd.getColumnCount();&&& while(rs.next())&&& {&&& rsTree = new HashMap(numberOfColumns);//注意要new&&&&& for(int r=1;r&numberOfColumns+1;r++)&&&&& {&&&&&& rsTree.put(rsmd.getColumnName(r),rs.getObject(r));&&&&&& }&&&&& rsall.add(rsTree);&&& }&&&&& }catch(java.lang.Exception ex){&&& ex.printStackTrace();&& }finally{&&& try{&&&& if(rs!=null)&&&&& rs.close();&&&& if(stmt!=null)&&&&& stmt.close();&&&& if(conn!=null)&&&&& conn.releaseConnection("mssql",con);&&& }catch(Exception e){&&&&&&& }&&&&& }&&}}
简单的东西 交流交流
评论:自己写什么类哦,用spring的jdbc模板干脆&List lst=jdbcTemplate.queryForList(list);&&
将ResultSet 转成Map&String, List&String& &:
public Map&String, ArrayList&String& & query(String sql){
&Map&String, ArrayList&String& & map = new HashMap&String, ArrayList&String& &();
&PreparedStatement preStat =
&preStat = conn.prepareStatement(sql);
&ResultSet rs = preStat.executeQuery();
&ResultSetMetaData rsMeta = rs.getMetaData();
for(int i = 0; i & rsMeta.getColumnCount(); ++i){
map.put(rsMeta.getColumnName(i+1), new ArrayList&String&());
while(rs.next()){
for(int i = 0; i & rsMeta.getColumnCount(); ++i){
String columnName = rsMeta.getColumnName(i+1);
map.get(columnName).add(rs.getString(columnName));
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
preStat.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
public&Map&String,&ArrayList&String&&&&query(String&sql){&&
&&&&&&&&Map&String,&ArrayList&String&&&&map&=&new&HashMap&String,&ArrayList&String&&&();&&
&&&&&&&&PreparedStatement&preStat&=&null;&&
&&&&&&&&try&{&&
&&&&&&&&&&&&preStat&=&conn.prepareStatement(sql);&&
&&&&&&&&&&&&ResultSet&rs&=&preStat.executeQuery();&&
&&&&&&&&&&&&ResultSetMetaData&rsMeta&=&rs.getMetaData();&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&for(int&i&=&0;&i&&&rsMeta.getColumnCount();&++i){&&
&&&&&&&&&&&&&&&&map.put(rsMeta.getColumnName(i+1),&new&ArrayList&String&());&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&while(rs.next()){&&
&&&&&&&&&&&&&&&&for(int&i&=&0;&i&&&rsMeta.getColumnCount();&++i){&&
&&&&&&&&&&&&&&&&&&&&String&columnName&=&rsMeta.getColumnName(i+1);&&
&&&&&&&&&&&&&&&&&&&&map.get(columnName).add(rs.getString(columnName));&&
&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&&&
&&&&&&&&}&catch&(SQLException&e)&{&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&e.printStackTrace();&&
&&&&&&&&}finally{&&
&&&&&&&&&&&&try&{&&
&&&&&&&&&&&&&&&&preStat.close();&&
&&&&&&&&&&&&}&catch&(SQLException&e)&{&&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&e.printStackTrace();&&
&&&&&&&&&&&&}&&
&&&&&&&&} &
阅读(...) 评论()博客园_遗忘海岸江湖程序员 -Feiph(LM战士)uuid:abc1d-b;id=574T23:58:31Z遗忘海岸/wdfrog/</wdfrog/p/4254092.html按条件设置gridcontrol 单元格属性 - 遗忘海岸等价代码设置:(注意这里使用都是FieldName, 即绑定对象的字段名) var cn = new StyleFormatCondition(FormatConditionEnum.Expression); cn.Expression = "[ProduceName] !=nu...T13:44:00ZT13:44:00Z遗忘海岸/wdfrog/等价代码设置:(注意这里使用都是FieldName, 即绑定对象的字段名) var cn = new StyleFormatCondition(FormatConditionEnum.Expression); cn.Expression = &[ProduceName] !=nu...&img src="/blog/rss/4254092" width="1" height="1" alt=""/&&br/&&p&本文链接:&a href="/wdfrog/p/4254092.html" target="_blank"&按条件设置gridcontrol 单元格属性&/a&,转载请注明。&/p&/wdfrog/p/4249723.htmlDevExpress gridcontrol Master-Detail绑定到对象类型 - 遗忘海岸数据库:C_ProductPlan ,C_ProductPlanItemDTO定义:(实现每个计划条目-Master,对应多个ProcessInfo-Detail) [DataContract] [Serializable] public class PlanInfo:C_Prod...T03:00:00ZT03:00:00Z遗忘海岸/wdfrog/数据库:C_ProductPlan ,C_ProductPlanItemDTO定义:(实现每个计划条目-Master,对应多个ProcessInfo-Detail) [DataContract] [Serializable] public class PlanInfo:C_Prod...&img src="/blog/rss/4249723" width="1" height="1" alt=""/&&br/&&p&本文链接:&a href="/wdfrog/p/4249723.html" target="_blank"&DevExpress gridcontrol Master-Detail绑定到对象类型&/a&,转载请注明。&/p&/wdfrog/p/4123113.htmldev ChartControl 备忘 - 遗忘海岸一个chartControl 里包括以个diagram(图表)diagram里可以设置 x-axis与y-axis ,另外还可以设置SecondaryXAxis与SecondaryYAxis,在Series属性里可以选择使用Secondary Axis一个diagram里包括多少个Series,一个...T06:05:00ZT06:05:00Z遗忘海岸/wdfrog/一个chartControl 里包括以个diagram(图表)diagram里可以设置 x-axis与y-axis ,另外还可以设置SecondaryXAxis与SecondaryYAxis,在Series属性里可以选择使用Secondary Axis一个diagram里包括多少个Series,一个...&img src="/blog/rss/4123113" width="1" height="1" alt=""/&&br/&&p&本文链接:&a href="/wdfrog/p/4123113.html" target="_blank"&dev ChartControl 备忘&/a&,转载请注明。&/p&/wdfrog/p/4115269.htmlgridcontrol 图片列异步加载 - 遗忘海岸在gridview中指定一列,将ColumnEdit设置成pictureEdit在使用showDialog这里窗体后,需要frm.Dispose()将资源释放1.将该列的UnboundType属性设置为bound(默认值)以外的数据类型2.为该列设置一个窗体内全局唯一的FieldName,这个Fie...T08:00:00ZT08:00:00Z遗忘海岸/wdfrog/在gridview中指定一列,将ColumnEdit设置成pictureEdit在使用showDialog这里窗体后,需要frm.Dispose()将资源释放1.将该列的UnboundType属性设置为bound(默认值)以外的数据类型2.为该列设置一个窗体内全局唯一的FieldName,这个Fie...&img src="/blog/rss/4115269" width="1" height="1" alt=""/&&br/&&p&本文链接:&a href="/wdfrog/p/4115269.html" target="_blank"&gridcontrol 图片列异步加载&/a&,转载请注明。&/p&/wdfrog/p/4111057.html关于EmitMapper,映射配置 - 遗忘海岸public static T Snapshoot(this XtraForm form, T obj) { var config = new DefaultMapConfig(); config.SetConfigName(...T09:17:00ZT09:17:00Z遗忘海岸/wdfrog/public static T Snapshoot(this XtraForm form, T obj) { var config = new DefaultMapConfig(); config.SetConfigName(...&img src="/blog/rss/4111057" width="1" height="1" alt=""/&&br/&&p&本文链接:&a href="/wdfrog/p/4111057.html" target="_blank"&关于EmitMapper,映射配置&/a&,转载请注明。&/p&/wdfrog/p/4063036.htmlasp.net Hessian 服务的注册 - 遗忘海岸Hessian服务端实现了IHttpHandle,默认情况下是在Web.Config中的handles接点中注册,这样当有 很多实现时比较麻烦这个时候可以实现IHttpHandleFactory注册到Web.Config中,在Factory中实现对具体服务的实例化,另外也可以使用RouteTable...T08:27:00ZT08:27:00Z遗忘海岸/wdfrog/Hessian服务端实现了IHttpHandle,默认情况下是在Web.Config中的handles接点中注册,这样当有 很多实现时比较麻烦这个时候可以实现IHttpHandleFactory注册到Web.Config中,在Factory中实现对具体服务的实例化,另外也可以使用RouteTable...&img src="/blog/rss/4063036" width="1" height="1" alt=""/&&br/&&p&本文链接:&a href="/wdfrog/p/4063036.html" target="_blank"&asp.net Hessian 服务的注册&/a&,转载请注明。&/p&/wdfrog/p/4049829.htmlXtrasReport 标签打印 - 遗忘海岸var lblList = new List(); using (JL_MFGEntities ctx = new JL_MFGEntities()) { lblList=ctx.product_Lbl...T02:49:00ZT02:49:00Z遗忘海岸/wdfrog/var lblList = new List(); using (JL_MFGEntities ctx = new JL_MFGEntities()) { lblList=ctx.product_Lbl...&img src="/blog/rss/4049829" width="1" height="1" alt=""/&&br/&&p&本文链接:&a href="/wdfrog/p/4049829.html" target="_blank"&XtrasReport 标签打印&/a&,转载请注明。&/p&/wdfrog/p/4041093.htmlDevexpress + wcf +ef 批量更新处理 - 遗忘海岸项目结构:1.客户端:Winform,2.数据访问:EF4.0(从数据库生成模型-懒人必需这样)3.DTO:直接使用EF实体4.服务端:WCF 托管在IIS中采用basicHttp帮定(这样可以客户端的代理类就不需要每次人肉释放了)Winform或asp.net ,MVC中每次一般只操作一条记录或者...T10:46:00ZT10:46:00Z遗忘海岸/wdfrog/项目结构:1.客户端:Winform,2.数据访问:EF4.0(从数据库生成模型-懒人必需这样)3.DTO:直接使用EF实体4.服务端:WCF 托管在IIS中采用basicHttp帮定(这样可以客户端的代理类就不需要每次人肉释放了)Winform或asp.net ,MVC中每次一般只操作一条记录或者...&img src="/blog/rss/4041093" width="1" height="1" alt=""/&&br/&&p&本文链接:&a href="/wdfrog/p/4041093.html" target="_blank"&Devexpress + wcf +ef 批量更新处理&/a&,转载请注明。&/p&/wdfrog/p/4015309.htmlDevExpress,LayoutControl,TreeList,GridControl等 - 遗忘海岸1.显示边框进行折叠选择一个layoutControlGroupX 将其GroupBordersVisible设置成True,将TextVisiable=True2. TreeList2.1需要绑定的数据有ParentFieldName,KeyFieldName,2.2.1.TeeList前面的连线...T02:58:00ZT02:58:00Z遗忘海岸/wdfrog/1.显示边框进行折叠选择一个layoutControlGroupX 将其GroupBordersVisible设置成True,将TextVisiable=True2. TreeList2.1需要绑定的数据有ParentFieldName,KeyFieldName,2.2.1.TeeList前面的连线...&img src="/blog/rss/4015309" width="1" height="1" alt=""/&&br/&&p&本文链接:&a href="/wdfrog/p/4015309.html" target="_blank"&DevExpress,LayoutControl,TreeList,GridControl等&/a&,转载请注明。&/p&/wdfrog/p/4006071.html调试时重新生成代码 - 遗忘海岸T07:44:00ZT07:44:00Z遗忘海岸/wdfrog/

我要回帖

更多关于 resultset 的文章

 

随机推荐