所有回答列表(7)
遇见, LV36
2014年10月7日
这个问题困扰我好久了, 以前也去看过jdbc源码 只知道Field类里面是有列的数量和列的序号以及列名和别名的, 但是ResultSetImpl并没有提供获取Field的方法,当时郁闷了很久, 一度都想改源码了, 最后想尽各种办法没有解决,只能再看源码了, 发现ResultSetImpl提供了getMetaData()方法,该方法可以获取到ResultSetMetaData对象中具有获取Field属性的方法。最后我用LinkedHashMap来存储了查询出来的一行数据,下面是封装的方法,跟大家分享一下(基于spring jdbc 道理和普通jdbc一样)。
public Map getOrderedRow(String sql, Object... param) { SqlRowSet rs = this.getJdbcTemplate().queryForRowSet(sql, param); if(rs == null) { return null; } Map result = new LinkedHashMap(); int columnCount = rs.getMetaData().getColumnCount(); for(int i=1; i<=columnCount; i++) { //rs.getMetaData().getColumnName(i) 获取不到别名 改用getColumnLabel //rs.first()判断是否有数据 result.put(rs.getMetaData().getColumnLabel(i), rs.first() ? rs.getString(i) : null); } return result; }
评论(4)
最佳答案
最代码官方 LV168
2014年10月1日
客户端查询显示的列顺序是和建表的时候列顺序一致的,我在mysql上测试过,不知道oracle是否如此,你验证下。
另外关于java jdbc查询数据库获取字段的顺序问题
com.mysql.jdbc.JDBC4ResultSet返回的ResultSet中fields的顺序也是和建表的列顺序一致。
通过java获取的时候无所谓顺序了吧。
PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); String result = ""; while (rs.next()) { String id = rs.getString("id"); String name = rs.getString("name"); String pwd = rs.getString("pwd"); result += id + "\t" + name + "\t" + pwd + "\n"; }
- 等 最代码怎么获取牛币啊?
- 完 谁来告诉我最代码上线的时间,答对者给5牛币,先来先得
- 等 牛友们,大家好,你们做程序员多久了?现在还好吗?
- 完 在微信打开的页面里进行app下载
- 等 最代码2014年欢乐聚声会
- 完 mysql如何查询表数据并且对3个字段降序的SQL?
- 完 最代码牛币机制改革
- 完 成功的在bae上使用了自定义运行环境 jetty+nginx的组合,大家对jetty+nginx优化有哪些心得?
- 完 进来分享一下各位牛牛是如何加入最代码大家庭的?
- 等 为什么java BufferedImage类处理大图直接抛出内存溢出的异常?
- 等 最代码是否开发手机app客户端?
- 完 java程序员学习哪些java的技术?java有哪些框架?都能做哪方面的开发?
- 等 php格式网页文件怎么运行?
- 等 Java volatile值获取的问题
- 等 前端vue,拦截了登录后台后,返回的token,requests拦截token,但是发送请求的时候,就出现跨越异常
- 等 大专本科计算机科班怎么找到Java工作?
- 等 eclipse怎么把三个java swing游戏项目合成一个项目?
- 完 伙伴们,大家都有什么好的解压方式么,分享一下~
- 完 三四线城市,6、7k,运维工作,索然无味,想去辞职上培训,各位牛牛有什么建议嘛
- 等 jsp页面输入中文变成问号
- 等 JPA在线上运行一段时间后报错Caused by: java.lang.IncompatibleClassChangeError: null
- 等 PHP 这个规则用preg_match_all怎么写
- 等 大佬们,有没有知道Alfresco如何配置LDAP登录呢?
- 等 php的install目录是框架带的吗?
相关问答
最近浏览
ls0000006 LV1
2021年12月31日
mengxiaoyao LV3
2021年1月22日
yy回忆天空 LV6
2021年1月5日
8877zh
2020年10月8日
暂无贡献等级
啊啊啊ya LV9
2019年12月18日
想想未来 LV3
2019年10月17日
346675489 LV2
2019年9月26日
vieky LV10
2019年8月15日
hellomatou LV1
2019年7月31日
海鹏qqq LV2
2019年5月29日