我正在通过Java从SQL数据库中检索列名。我知道我也可以从ResultSet
中检索列名。因此我有以下SQL查询
select column_name from information_schema.columns where table_name='suppliers'
问题是我不知道如何从ResultSet
中获取列名,我的代码是
public void getAllColumnNames() throws Exception{
String sql = "SELECT column_name from information_schema.columns where table_name='suppliers'";
PreparedStatement ps = connection.prepareStatement(sql);
ResultSet rs = ps.executeQuery(sql);
// extract values from rs
}
9条答案
按热度按时间siv3szwd1#
参考:Printing the result of ResultSet
zz2j4svz2#
1)使用
Statement
代替PreparedStatement
2)在
ResultSet
中执行查询后,在rs.getString()
的帮助下将值提取为:fd3cxomn3#
进一步用作
1、2为表的列号,根据列的数据类型设置int或string
vpfxa7rd4#
对于那些想要更好版本的结果集打印为util类的人,这对打印结果集真的很有帮助,并且可以从一个util做很多事情...感谢Hami Torun!
在这个类中,
printResultSet
以通用的方式使用ResultSetMetaData
,请看一看。这是scala的版本......它会以一种通用的方式打印列名和数据......
0h4hbjxa5#
看一下documentation。您犯了以下错误。首先,
ps.executeQuery()
没有任何参数。相反,您将SQL查询传递给它。其次,关于预准备语句,如果要传递任何参数,就必须使用
?
符号。这里 xxx 代表数据类型。
31moq8wy6#
你可以使用TableSaw library,这是一个很棒的Java数据科学/数据框架库,代码很简单:
xn1cxnb47#
对于您尝试执行的操作,您可以使用
Statement
代替PreparedStatement
。您的代码可以修改为-希望这个有用。
91zkwejq8#
具有rowMapper实现的解决方案
存储库类:
行Map器类:
HashMap它是一个简单的矩阵,其中key是列名,value是值:)
r6l8ljro9#
如果您正在使用Spring Data ,可以尝试以下操作: