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();
}
}
}
}
}
文章標籤
全站熱搜
