解説動画
SQLの検索結果からカラム情報を取得します。
困ったときにどうぞw
■動画はこちら
■Youtube版の解説で使用しているソースコード
動画と一緒にこちらも参考にどうぞ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import java.util.ArrayList; public class ResultMetaTest2 { public static void main(String[] args) { try { //DBに接続 Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@DBYURUFUWA:xe", "YURUKU", "FUWATTO"); //SQLを発行 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM PRICE_LIST"); //カラム情報を取得 ArrayList<String> columnNameList = new ArrayList<String>(); ArrayList<String> columnTypeNameList = new ArrayList<String>(); ArrayList<Integer> precisionList = new ArrayList<Integer>(); ArrayList<Integer> scaleList = new ArrayList<Integer>(); ArrayList<Integer> nullableList = new ArrayList<Integer>(); ResultSetMetaData meta = rs.getMetaData(); for(int i=1 ; i<=meta.getColumnCount() ; i++) { //カラム名 columnNameList.add(meta.getColumnName(i)); //カラム型名 columnTypeNameList.add(meta.getColumnTypeName(i)); //桁数 precisionList.add(meta.getPrecision(i)); //小数点以下桁数 scaleList.add(meta.getScale(i)); //NULL可否(0:NULL不可(columnNoNulls) / 1:NULL可(columnNullable)) nullableList.add(meta.isNullable(i)); } //結果(データ)を取得 ArrayList<String> resultList = new ArrayList<String>(); rs.next(); //(とりあえず1行のみ取得) for(int i=0 ; i<columnNameList.size() ; i++) { //メタデータから取得したカラム名でデータを取得する resultList.add(rs.getString(columnNameList.get(i))); } //クローズ rs.close(); stmt.close(); conn.close(); //取得したカラム情報とデータを整形して表示 System.out.println("カラム名 / データ型 / 桁数 / 小数点以下桁数 / NULL可否 / データ"); for(int i=0 ; i<columnNameList.size() ; i++) { System.out.print(String.format("%-10s", columnNameList.get(i))); System.out.print(" / "); System.out.print(String.format("%-8s",columnTypeNameList.get(i))); System.out.print(" / "); System.out.print(String.format("%4d",precisionList.get(i))); System.out.print(" / "); System.out.print(String.format("%14d", scaleList.get(i))); System.out.print(" / "); System.out.print(String.format("%8d",nullableList.get(i))); System.out.print(" / "); System.out.println(resultList.get(i)); } }catch(Exception e) { e.printStackTrace(); } } } |