CsvJdbc ( csvファイル用の JDBC ドライバー) を使用して csv ファイルにアクセスしています。csv ファイルに含まれる列の数がわかりません。列数を取得するにはどうすればよいですか? このための JDBC 関数はありますか? java.sql.ResultSet には、このためのメソッドが見つかりません。
ファイルにアクセスするには、CsvJdbc Web サイトの例と同様のコードを使用します。
ResultSetMetaDataから列番号を取得できます。
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();
PreparedStatement ps=con.prepareStatement("select * from stud");
ResultSet rs=ps.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
System.out.println("columns: "+rsmd.getColumnCount());
System.out.println("Column Name of 1st column: "+rsmd.getColumnName(1));
System.out.println("Column Type Name of 1st column: "+rsmd.getColumnTypeName(1));
接続を確立してクエリを実行したら、次のことを試してください。
ResultSet resultSet;
int columnCount = resultSet.getMetaData().getColumnCount();
System.out.println("column count : "+columnCount);
これにより、データが列に印刷され、最後の列に達すると新しい行になります。
ResultSetMetaData resultSetMetaData = res.getMetaData();
int columnCount = resultSetMetaData.getColumnCount();
for(int i =1; i<=columnCount; i++){
if(!(i==columnCount)){
System.out.print(res.getString(i)+"\t");
}
else{
System.out.println(res.getString(i));
}
}