SQLの窓

2011年10月04日


java(JSP) : テーブル名一覧と列名一覧の取得

テータベースは、ODBC 経由の Oracle です

関連する記事

VB.net : GetSchema メソッドでデータベース内のテーブル一覧と指定したテーブルの列名一覧を取得する

Microsoft の ODBC アクセスとあまり変わりはありません。
データベースの情報は接続オブジェクトに依存します
<!DOCTYPE html>
<html lang="ja">
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<%@ page
	language="java"
	import="java.io.*"
	import="java.text.*"
	import="java.util.*"
	import="java.sql.*"
	contentType="text/html;charset=Windows-31J" %>
<body>

<%
// *********************************************************
// Shift_JIS の特殊文字を正しく表示する為の Windows-31J
// ( ※ 7 行目に注目 )
// *********************************************************

Connection cn = null;
Statement st = null;
ResultSet rs = null;
int nCnt = 0;

// *********************************************************
// ドライバの準備
// *********************************************************
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );

// *********************************************************
// 接続
// *********************************************************
String connectionString =
	"Provider=MSDASQL" +
	";Driver={Oracle in OraClient11g_home1}" +
	";DBQ=PC名/ORCL" + 
	";UID=DOUMI" +
	";PWD=DOUMI" +
	";";

cn = DriverManager.getConnection(
	"jdbc:odbc:"+connectionString
);

// *********************************************************
// データベースのメタデータを取得
// *********************************************************
DatabaseMetaData objMet = cn.getMetaData();
// *********************************************************
// テーブル一覧を返すリザルトセットを取得
// *********************************************************
rs = objMet.getTables(null,"スキーマ名","%",new String[]{"TABLE"});

while( rs.next() ) {
	out.print( rs.getString("TABLE_NAME") + "<br />" );
}
rs.close();

out.print( "<hr />" );

// *********************************************************
// 対象テーブルの列一覧を返すリザルトセットを取得
// *********************************************************
rs = objMet.getColumns(null,"スキーマ名","テーブル名","%");

while( rs.next() ) {
	out.print( rs.getString("COLUMN_NAME") + " | " );
	out.print( rs.getInt("COLUMN_SIZE") + " | " );
	out.print( rs.getString("TYPE_NAME") + "<br />" );
}
rs.close();

out.print( "<hr />" );

// *********************************************************
// SQL 実行の準備
// *********************************************************
st = cn.createStatement();
// *********************************************************
// SQL 実行
// *********************************************************
rs = st.executeQuery("SELECT * from 社員マスタ");
// *********************************************************
// リザルトセットより、テーブルのメタデータを取得
// *********************************************************
ResultSetMetaData rsmd = rs.getMetaData();
// *********************************************************
// 列数
// *********************************************************
int numberOfColumns = rsmd.getColumnCount();

// *********************************************************
// 列一覧
// *********************************************************
for( int i = 1; i <= numberOfColumns; i++ ) {
	out.print( rsmd.getColumnName(i) + "<br />" );
}

rs.close();

// *********************************************************
// 接続解除
// *********************************************************
cn.close();

%>

</body>
</html>



posted by lightbox at 2011-10-04 14:12 | java : JSP | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり