close
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; /* * ResultSetMetaData(常使用) */ public class ResultSetMetaDataDemo { public static void main(String[] args) throws IOException { Connection conn = null; PreparedStatement pstmt = null; BufferedWriter bfw = null; try { bfw = new BufferedWriter(new FileWriter("D:/JDBC/store/resultsetmetdata.txt")); String Url = "jdbc:sqlserver://localhost:1433;databaseName=jdbc"; conn = DriverManager.getConnection(Url, "sa", "passw0rd"); String selectdep = "SELECT * FROM department"; pstmt = conn.prepareStatement(selectdep); ResultSet rs = pstmt.executeQuery(); ResultSetMetaData rsmd = rs.getMetaData(); int count = rsmd.getColumnCount();// 取得欄位數,select * from.. // *代表取得表格內所有欄位數 /* * 1.getColumnLabel():取得欄位名稱,若有別名則傳回別名,也可用getColumnName(),結果一樣 * 2.getColumnType():取得欄位在java.sql.Type定義SQL type的整數值 * EX:若欄位的資料型態是varchar,則會傳回varchar在java.sql.Type定義的整數值12 * * 3.getColumnTypeName():取得欄位在DBMS所使用的SQL Type名稱 * EX:若欄位的資料型態是varchar,則會傳回varchar * */ for (int i = 1; i <= count; i++) { System.out.print( rsmd.getColumnLabel(i) + "(" + rsmd.getColumnType(i) + "," + rsmd.getColumnTypeName(i) + "),"); // 將欄位名稱、型態寫入記事本 bfw.write( rsmd.getColumnLabel(i) + "(" + rsmd.getColumnType(i) + "," + rsmd.getColumnTypeName(i) + "),"); bfw.flush(); } System.out.print("\n"); while (rs.next()) { for (int i = 1; i <= count; i++) { System.out.print(rs.getString(i) + ","); bfw.newLine(); bfw.write(rs.getString(i) + ",");// 將欄位內容寫入記事本 bfw.flush(); } System.out.print("\n"); } } catch (SQLException e) { e.printStackTrace(); } finally { bfw.close(); if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
全站熱搜