<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>

<!--#include file="head_common.html" -->

	<meta name="keywords" content="JDBC,アクセス,ツール,参照,更新,BLOB,BYTEA,BINARY,バイナリ,CSV,インポート,エクスポート,入力,出力,16進文字列,表形式,JAVA,データ型,oracle,postgresql,mysql,getobject,getblob,getbyte,ビューワー,connect,DB接続">
	<meta name="verify-v1" content="oXJnbCKIBFLNWC8tmD5pMnwbLX5GYrsa+howrFH41TI=" />
	<title>JDBCでDBアクセス</title>
</head>
<body>
	<script LANGUAGE="JAVASCRIPT">
	<!--
	var ID="100258178-index";
	var AD=0;
	var FRAME=0;
	// -->
	</script>
	<script LANGUAGE="JAVASCRIPT" SRC="http://j1.ax.xrea.com/l.j?id=100258178">
	</script>
	<noscript>
		<a HREF="http://w1.ax.xrea.com/c.f?id=100258178" TARGET="_blank"><IMG SRC="http://w1.ax.xrea.com/l.f?id=100258178-index&url=X" BORDER="0"></A>
	</noscript>

<!--#include file="header.html" -->

	<div align=right>
		<strong>更新日 2007/7/27</STRONG>
	</div>
	<div align=right>
		<a HREF="http://ct1.xrea.com/cgi-bin/link.cgi?site=dounanda"><IMG SRC="http://ct1.xrea.com/cgi-bin/count.fcg?site=dounanda&img=00009&ovlp=1&max=6&day=0" BORDER="0"></A>
	</div>


	<p>データ編集は基本的にテーブル形式ですが、バイナリ系データ参照／改行を含むテキスト参照更新を、専用の別ウィンドウで行えます。</p>
	<p>Javaで作成されたDB操作のクライアントツールです(GUIはSwing)。プログラムテスト時の『ＳＱＬ発行・データ編集・ロード・アンロード』が簡単に行える事を目的としてます。</P>
	<p>データ編集は基本的にテーブル形式ですが、バイナリ系データ参照／改行を含むテキスト参照更新を、専用の別ウィンドウで行えます。</p>
	<p>DB更新時はカーソルを使用せずに、更新系SQL文を毎回組み立て実行します。その為、主キーが定義されているテーブルのみGUI画面から更新できます。（結果セットでの更新は行っていません。最近はJDBCドライバの機能向上で簡単に作れるようでが、いまさら修正は厳しいな〜）</P>
	<p>
		データの編集機能に特化してまが、カラムの属性表示程度の機能はあります。残念ながら、データベース定義の参照変更に関する本格的な機能を実装する予定はありません。
		本当は、定義参照は欲しいのですが「データ編集に有益な情報を、JDBCでどれくらい取得出来るか？」が調査課題になってます。
	</p>
	<h2>お知らせ</H2>
	<h3>2007/7/27 バージョン1.6をリリースしました。</H3>
	<p>
いくつかの機能を追加しました。<br>
<ul>
  <li>SQLiteを使用できるように修正しました。Catalog/Schema/User等が無い為に、JDBCドライバから期待していた値が受取れず異常終了してました。<br>
不思議な事に、小文字で作成したテーブル名が、getTable()では大文字・getColumns()では小文字　として返却されてしまい。正しく動かない状態でした。<br>とり対応しました。(JDBCドライバが変なきもする？)<br>
あと、検索結果のjavaクラス名が、全てjava.lang.Objectになっており、「SQL型マッピング」で指定しないと、正しく更新できないようです。
  <li>検索結果としてJavaObjectを受取った時の参照機能として、リフレクションを利用したフィールド変数参照画面を作ってみました。<br>
Oracleでは、接続時にJDBCドライバを指定する時に、orai18n.jarとSQLDataを実装したクラスファイルかjarファイルも、一緒に指定して下さい。<br>

</ul>
等です。
	</p>

	<h3>2007/7/23 バージョン1.5をリリースしました。</H3>
	<p>
いくつかの機能を追加しました。<br>
<ul>
  <li>ストアド呼出機能  「CALL xxx(?,?)」や「?=CALL xxx(?,?)」 で実行できます。但し、現在機能を検討中であり、うまくいかない事があります。とりあえず作ってみた程度です。<br>なお、Oracleでは一切動作しません。OracleのJDBCドライバではgetParameterMetaData()が動作しないためです。
  <li>Array型の参照機能を作りました。Arrayでの更新はできません、java.sql.Arrayのオブジェクト生成は、標準JDBC規格では存在しない？みたいで、作り方が分からなかった。
  <li>デバックモードで表示するPanelを、tabの中に入れた。また、DatabaseMetaDataの情報をダンプする画面も用意しました。全情報ではありませんが…
  <li>SQLマッピング設定内容を若干変更しました。以前のバージョンで作成された設定ファイルでは、この機能変更は反映されません。設定画面で全て初期値設定を実行してください
</ul>
等です。
	</p>

	<h3>2007/7/4 バージョン1.4をリリースしました。</H3>
	<p>
問題のあった動作を修正しました。<br>
<ul>
  <li>PostgreSQLのJDBCドライバVer8以降を使用すると、日付・時刻系のデータ型の値変更が出来ませんでした。
  <br>データ更新時にStringのデータを渡していたのですが、チェックが行われるようになり、SQLデータ型に対応するオブジェクトのクラスでないとエラーになっていました。<br>
  SQLデータ型マッピング機能を変更し対応しました。<br>
  設定ファイルの内容を変更したので、以前のバージョンで作成された設定ファイルでは、この機能変更は反映されません。設定画面で全て初期値設定を実行してください
  <li>Java6で実行すると、「このプログラムについて」画面が開きませんでした。System.getProperty("java.ext.dirs")が複数パスを返すようになったらしく、単一パスしか想定していなかった為に例外が発生していました。<br>
  複数パスでも動作するように修正しました。
  <li>DriverManager.setLogWriterに標準出力を設定し、無条件にSQLログを出力していたのですが、DB2だと膨大なログ出力が行われ処理速度にも影響があるようなので、DriverManager.setLogWriterを削除しました。
  <li>大量の検索結果を取り込むとヒープメモリが足りなくなり動作が遅くなるのですが、不足気味状態の時にダイアログメッセージを表示するようにしました。
  <li>linuxだけかもしれませんが、java6でUIManager.setLookAndFeel にDefault以外を設定するとnullexception発生し、一切起動しませんでした。<br>UIManager.getInstalledLookAndFeelsを実行してからだと何故か動きました（笑）。<br>何故動く？
</ul>
	</p>
	<p>
いくつかの機能を追加しました。<br>
<ul>
  <li>データオブジェクトツリーの表示を充実させました。<br>プロシジャも表示されます。表示だけで実行することは出来ないのですが…現在プロシジャ実行機能を開発中です。
  <li> SQL文中にパラメータ部分を ? とすれば、パラメータ入力画面が開き値を設定出来るようになりました。ストアドプロシジャの実行用に準備したものですが、まだ実行出来ないので、あまり意味がありません。<br> SQL文をどっかから切り貼りしたとき有効かも。
</ul>
	</p>
  <p> あとよくわからのですが、java web startで起動しJDBCドライバファイルを画面から指定すると通信エラーが発生していたのですが、Java6のjava web start で今回のリリースプログラムを実行したらセキュリティ警告ダイアログが表示されるだけで、動作してしまいました。<br>今回JDBCドライバのロード関係は若干修正しているのですが、たぶんその影響はないと思っています。
  <br>何故動く？
  </p>

	<h3>2006/9/12 バージョン1.2をリリースしました。</H3>
	<p>
いくつかの機能を追加しました。<br>
<ul>
<li>SELECT結果を取り込みながらのデータ作成
<li>外部結合条件を持つSELECT文をGUIで作成
<li>Shift + F10 でポップアップメニュー表示
<li>検索結果をSQL文で使用できる条件式を、クリップボードにコピー
</ul>
等です。
	</p>

	<h3>2006/3/11 バージョン1.0.0をリリースしました。</H3>
	<h3>2006/3/7  2006/3/8</H3>
	<p>
		いろいろなデータ型に対応出来るように、検索結果取得で使用するjava.sql.ResultSetのgetterを、自由に変更する機能を作りました。
		データ検索結果で右クリックし「SQLデータ型マッピング」で、ResultSetのgetterを設定できます。
	</p>
	<p>
		確認したSQLデータ型を、
		<a href="mapping.html#type">対応するデータ型</A>
		にまとめました。
	</p>
	<h3>2006/2/23 バージョン0.4をリリースしました。</H3>
	<p>
		<a href="mapping.html#sikumi">データ表示更新の仕組み</A>
		に『どうしてクラス名@１６進文字列が表示されてしまうのか？』を簡単に説明しました。
	</p>
	<ol>
		<li>大きなサイズのバイナリデータ読込を可能とする為、１カラムあたりの取得バイト数を制限出来るようになりました</li>
		<li>取得バイト数を制限に伴い、カラム内データ全体を参照できなくなったので、専用ウィンドウで起動するバイナリビューワを用意しました</li>
		<li>改行を含んだテキストデータを編集出来るように、専用ウィンドウで起動するテキスト編集画面を用意しました</li>
		<li>CSVファイルの各項目内に改行が含まれていても、インポート・エクスポート出来るようにしました</li>
		<li>
			OracleのTIMESTAMP型に対応しました。タイムゾーンを含むTIMESTAMP型の検索結果は、常にJST扱いなるはずです
			（ＤＢのタイムゾーンをいろいろ変更して、テストする事が出来なかったのであまり自信ないです）。
		</li>
		<li>
			Oracle8では、TIMESTAMPのフォーマットを指定する為の『ALTER SESSION SET
			NLS_TIMEZONE_FORMAT』が失敗し、処理続行出来なかったはずなので、エラーが起きても続行するようにしました。
		</li>
		<li>
			ダイアログでエラーを表示した時の内容を、ログファイルに出力するようにしました。ログのファイル名は、
			<pre>


『"user.home" / .jdbcacsess 』ディレクトリの message.log


</PRE>
			になります。
		</li>
		<li>
			１カラム分のデータ &lt;-&gt;
			１ファイル　で、カラム更新・ファイル出力を出来るようにしました。テキストとバイナリが扱えますが、テキストの場合の日本語エンコードは実行環境デフォルトのみです。windowsであれば、MS932（MSのSJIS）になります。
		</li>
	</ol>
	<h3>2006/2/8</H3>
	<p>
		<a href="csv.html#csv">CSV入力の実行例</A>
		、
		<a href="createdata.html">データ生成の実行例</A>
		を作成しました。
	</p>
	<h3>2006/2/7 バージョン0.3をリリースしました。</H3>
	<p>ＣＳＶデータ生成機能で日時の連続値を作成できるようにしました。</P>
	<h3>2006/2/3 バージョン0.2をリリースしました。</H3>
	<p>ＣＳＶデータ生成機能追加とＣＳＶ入力履歴ウィンドウの使い勝手向上です。</P>
	<p>他テーブルデータを取り込みながら生成する機能を作りたいのですが、どんなユーザインタフェースにするか悩んでおり、今回のバージョンに含まれいません。連続値生成・固定値リスト　によるデータ生成が可能です。</P>
	<p>尚、出力先はＣＳＶファイルだけで、直接ＤＢにＩＮＳＥＲＴする事は出来ません。ＣＳＶ生成後にインポート機能で更新して下さい。</P>
	<p>大量の母体データが欲しい時に使える程度かも．．．．まだまだ機能向上は狙ってます。</P>
	<h3>2006/1/25</H3>
	<p>データ作成機能をβ版として実装しました。他テーブルをデータ参照し、ＪＯＩＮが必ず成功するデータを作成するのが目標ですが、そこまでは出来ません。</P>
	<p>JWSからのみダウンロードできます。他テーブルをデータ参照しながらのデータ作成機能が完成したらsourceforgeから正式版リリースします。</P>
	<h2>動作環境</H2>
	<p>
		java5.0の実行環境(JRE)と、DBMSに対応したJDBCドライバが必要です。java5.0で追加された機能を使っているので、
		<strong>java5.0以降でないと動作しません</STRONG>
		。
	</p>
	<p>
  <s>PostgreSQL7.4.5（Win2k+cygwin） Oracle10g（Win2k） MySQL（Win2k Linux ）</s>
  PostgreSQL8（Linux） DB2 Express-C V8（Linux） MySQL（Linux）
    で動作確認しながら開発を進めていますが、JDBCドライバの動作違いや、WindowsとLinuxのJava動作違い、等でうまく動かないDBMS/OSの組み合わせもあると思います。
	</p>
	<p>また、ユーザ定義型、配列型、PostgreSQLの特別な型、Java型、及び外部ファイル参照等のデータ型は対応していません。</P>
	<h2>その他</h2>
	<h3>質問等</h3>
	<p>
		<a href="http://sourceforge.jp/projects/sidujdbc/">http://sourceforge.jp/projects/sidujdbc/</a>
		のフォーラムでどうぞ。
	</p>
	<p>
		<a href="https://sourceforge.jp/users/shimakazuro/">https://sourceforge.jp/users/shimakazuro/</A>
		からmailでも構いません。
	</p>
	<p>なお、どちらも、souceforge.jpにログインする必要があります。</p>
	<p>
		<a href="http://sourceforge.jp/"><img height=31 alt=SourceForge.jp src="http://sourceforge.jp/sflogo.php?group_id=1967" width=96 border=0></a>
	</p>
	<h3>現在の完成度</h3>
	<p>仕事でやってるプログラム開発のテスト時に、自分が欲しい機能を優先して作ってます。見栄えは、最低の優先度になってるので、非常に素っ気無いGUIです。（とういかセンスなさすぎかも）</p>

<!--#include file="footer.html" -->

</body>
</html>
