SQLの窓

2014年12月10日


バッチ処理サンプル : Java sun.jdbc.odbc.JdbcOdbcDriver 用 各種 RDBMS 接続文字列

関連する記事

Java 8 で、sun.jdbc.odbc.JdbcOdbcDriver を使う手順



このサンプルは、Java をバッチでビルドして実行するサンプルです( SDK さえあれば実行できます )
ソースコードは SHIFT_JIS です。UTF-8 でビルドしたい場合は、UTF-8N で保存しなおして javac のパラメータに -encoding utf-8 を追加して下さい。ソースコード内のJDBC-ODBC ブリッジでの日本語設定用プロパティが必要がどうかは環境によって異なると思いますが、一応設定して動作しています。同様の機能が、RDBMS 側で用意されている場合(MySQL等)もあるので注意して下さい。
import java.util.*;
import java.sql.*;

public class Main {

	// ***************************
	// エントリポイント
	// ***************************
	public static void main(String[] args) {
		Main thisClass = new Main();
	}

	// ***************************
	// コンストラクタ
	// ***************************
	public Main() {
		super();
		my_acton();
	}

	// ***************************
	// 初期処理
	// ***************************
	private void my_acton() {

		// 接続用
		Connection con = null;
		// クエリー(SQL)用
		Statement stmt = null;
		// 結果セット用
		ResultSet rset = null;

		// 表示ツール
		MyTool out = new MyTool(">>>");
		out.println("処理開始");

		// 接続文字列
		String connectionString = "";

		// ***************************
		// ODBC 接続文字列
		// ***************************
		connectionString =
			"Provider=MSDASQL" +
			";Driver={Microsoft Access Driver (*.mdb, *.accdb)}" +
			";Dbq=" + System.getProperty("user.dir") + "\\販売管理B.accdb"+
			";";

		// 日本語設定用プロパティ
		Properties prop = new Properties();
		prop.put("charSet", "MS932");
		out.println(connectionString);

		try {
			// 接続
			con = DriverManager.getConnection("jdbc:odbc:"+connectionString, prop);
			// ステートメント作成
			stmt = con.createStatement();
			// SQL より レコードセット取得
			rset = stmt.executeQuery ( "select * from 社員マスタ" );

			// 一覧表示
			while( rset.next() ) {
				out.println( rset.getString( "氏名" ) );
			}

			// 後処理
			rset.close();
			stmt.close();
			con.close();

		}
		catch (Exception ex) {
			ex.printStackTrace();
			return;
		}

		out.println("処理終了");

	}

	// ***************************
	// 内部用クラス
	// ***************************
	private class MyTool {

		private String mark = null;

		MyTool(String pm) {
			mark = pm;
		}

		public void println(String str) {
			System.out.println( this.mark + str );
		}

	}

}

以下は接続文字列のサンプルです。Oracle は 純正ドライバを使用したほうが無難です。
// *********************************************
// Java sun.jdbc.odbc.JdbcOdbcDriver 用
// 各種 RDBMS 接続文字列
// *********************************************
String connectionString = "";

// *********************************************
// MDB
// *********************************************
connectionString =
	"Provider=MSDASQL" +
	";Driver={Microsoft Access Driver (*.mdb, *.accdb)}" +
	";Dbq=" + System.getProperty("user.dir") + "\\販売管理B.mdb"+
	";";

// *********************************************
// MySQL
// *********************************************
connectionString =
	"Provider=MSDASQL" +
	";Driver={MySQL ODBC 5.3 Unicode Driver}" +
	";SERVER=localhost" + 
	";DATABASE=lightbox" +
	";UID=root" +
	";PWD=password" +
	";Charset=sjis" +
	";";

// *********************************************
// Oracle( 純正 )
// *********************************************
connectionString =
	"Provider=MSDASQL" +
	";Driver={Oracle in OraClient11g_home1}" +
	";DBQ=vpc-019/ORCL" + 
	";UID=LIGHTBOX" +
	";PWD=LIGHTBOX" +
	";";

// *********************************************
// SQLServer
// SERVER は別名
// *********************************************
connectionString =
	"Provider=MSDASQL" +
	";Driver={SQL Native Client}" +
	";SERVER=lightbox" +
	";DATABASE=lightbox" +
	";UID=sa" +
	";PWD=password" +
	";";

connectionString =
	"Provider=MSDASQL" +
	";Driver={SQL Server}" +
	";SERVER=lightbox" +
	";DATABASE=lightbox" +
	";UID=sa" +
	";PWD=password" +
	";";



関連する記事

ODBC ドライバの列挙

Eclipse + WindowBuilder : JDBC と ODBC を使った、オールマイティなデータベース接続サンプル( MySQL / SQLServer / Oracle / Postgres / MS Access)

javamail でメール送信と、付属のバッチビルド用のスクリプトの解説



posted by lightbox at 2014-12-10 11:00 | java : データベース | このブログの読者になる | 更新情報をチェックする

2014年12月04日


テーブル要素内のデータよりグラフを作成する jQuery プラグイン『jQuery-Visualize』をもっと使いやすく改造しました



概要

オリジナルはもう2年くらい処理の更新が無いのですが、問題点がいくつかあるので改造しました。問題点は、付属の css が中途半端なのと、上限と下限を設定できないので、一番大きい値がグラフの上限になり見にくいです。その上、Y軸のラベルの数字の間が自動なので100区切りとかになりません。そのあたりをオプションに追加しました。

enhance.js について

IE7 のエミュレーションでもグラフそのものは動作したので削除しています。

追加オプションと仕様変更



1) tableDisplay : デフォルトは true で、false にすると、データ元のテーブルを表示しない
2) top: グラフの上限
3) bottom : グラフの下限
※ yLabelInterval のデフォルトを 100 にして、Y軸の区切りの単位として変更
12月 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月
2013 712 1144 938 972 714 771 515 641 1051 1018 658 681
2014 857 1219 927 947 709 674 495 537 900 758 536 550
▼ 棒グラフ( dark 色 )


colors は、オプションで指定する場合は、データの数ぶん色を設定する必要があります。
タイトルは、th で指定する必要があります。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript"> 
if ( window[window.location.hostname+'.visualize'] !== true ) { 
	window[window.location.hostname+'.visualize'] = true; 
	(function(){
		var str="";
		str+="<link href=\"http://winofsql.jp/jquery/plugins/visualize/visualize-light.css\" type=\"text/css\" rel=\"stylesheet\"> \n";
		str+="<"+"script type=\"text/javascript\" src=\"http://winofsql.jp/jquery/plugins/visualize/excanvas.js\"></"+"script> \n";
		str+="<"+"script type=\"text/javascript\" src=\"http://winofsql.jp/jquery/plugins/visualize/visualize.jQuery.js\"></"+"script> \n";
		document.write(str);
	})();
} 
</script> 
<script type="text/javascript">
$(function(){
	$("#target_table").visualize({
		tableDisplay: true,
		type: "line",
		width: "400px",
		height: "200px",
		title: "電気使用量の推移",
		colors: ['#F5CE0A','#0AB2F5'],
		lineWeight: 2,
		top: 1300,
		bottom: 400,
		yLabelInterval: 100
	});
});
</script>
<style>
.visualize * {
	font-size: 12px!important;
	font-family: Arial,"メイリオ","MS Pゴシック";
}
.visualize .visualize-title {
	font-size: 24px!important;
	font-family: Arial,"メイリオ","MS Pゴシック";
}
.visualize { 
	margin: 20px 0 0 15px;
}
#target_table {
	border-collapse: collapse;
}
#target_table td, #target_table th {
	text-align: center;
	border: 1px solid #ddd;
	padding:2px 5px;
}
</style>
<table id="target_table">
<thead>
<tr>
	<td></td>
	<th>12月</th>
	<th>1月</th>
	<th>2月</th>
	<th>3月</th>
	<th>4月</th>
	<th>5月</th>
	<th>6月</th>
	<th>7月</th>
	<th>8月</th>
	<th>9月</th>
	<th>10月</th>
	<th>11月</th>
</tr>
</thead>
<tbody>
<tr>
	<th>2013</th>
	<td>712</td>
	<td>1144</td>
	<td>938</td>
	<td>972</td>
	<td>714</td>
	<td>771</td>
	<td>515</td>
	<td>641</td>
	<td>1051</td>
	<td>1018</td>
	<td>658</td>
	<td>681</td>
</tr>
<tr>
	<th>2014</th>
	<td>857</td>
	<td>1219</td>
	<td>927</td>
	<td>947</td>
	<td>709</td>
	<td>674</td>
	<td>495</td>
	<td>537</td>
	<td>900</td>
	<td>758</td>
	<td>536</td>
	<td>550</td>
</tr>
</tbody>
</table>


タグ:jquery
posted by lightbox at 2014-12-04 00:42 | プラグイン:jQuery | このブログの読者になる | 更新情報をチェックする

2014年12月02日


PATH 環境変数メンテナンス : Redmond Path

Path_06

2009-07-18に最初に記事を書いた時から5年以上経過しており、現在オリジナルサイトは運営されていないような感じ(画像がリンク切れ)ですが、窓の杜からダウンロードできますし、内容が単純なので今でも使えます。

Redmond Path( 窓の杜 )

ソフトそのものはWindows ですが、PATH 環境変数のお世話になるのはコマンドプロンプトで実行されるアプリケーションがメインです。

Windows でも GUI で変更できますが、とても面倒で失敗しやすいのでおすすめできません。でも、これなら非常に簡単です。


操作の概要はこちらのページを参照して下さい


posted by lightbox at 2014-12-02 12:25 | フリーソフト | このブログの読者になる | 更新情報をチェックする

ブログ更新通知先に関する情報

2014版という記事が3つほどありました。送信先の多い順に記事を以下に並べていますが、全ての送信先を無条件に使うものでは無いので注意して下さい。あまり多いとブログのサーバーにも負荷がかかりますし、エラーが発生するものもあります。

エラーが表示されるブログシステムもあります(JUGEM が表示されます)が、無いものもあります。本来は一つ一つそれらの背景をチェックして追加するべきです。

ただ、どうしてもそのまま使ってみたいのであれば、3) の 27個 がいいと思い、JUGEM のブログでテストしてみましたが、かなりアウトでした。
http://blog.goo.ne.jp/XMLRPC
http://blog.with2.net/ping.php/
http://blogsearch.google.co.jp/ping/RPC2
http://blogsearch.google.com/ping/RPC2
× http://hamham.info/blog/xmlrpc/
× http://ping.bloggers.jp/rpc/
http://ping.blogranking.net/
× http://ping.cocolog-nifty.com/xmlrpc
× http://ping.exblog.jp/xmlrpc
http://ping.fc2.com/
× http://ping.feedburner.com
http://ping.freeblogranking.com/xmlrpc/
× http://ping.rootblog.com/rpc.php
× http://ping.rss.drecom.jp/
× http://ping.sitecms.net
http://pingoo.jp/ping/
http://ranking.kuruten.jp/ping
× http://rpc.blogrolling.com/pinger/
http://rpc.pingomatic.com/
http://rpc.weblogs.com/RPC2
× http://serenebach.net/rep.cgi
× http://taichistereo.net/xmlrpc/
http://www.bloglines.com/ping
× http://www.i-learn.jp/ping/
http://xping.pubsub.com/ping/


1) アクセスアップのためのPING送信リスト|2014年版

2) 『WordPress Ping Optimizer』の設定とPing送信先一覧2014年夏

3) 2014年上半期 ping送信先一覧、まだ生きてるベスト27+12個セレクト


タグ:メモ
posted by lightbox at 2014-12-02 11:44 | 記録 | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



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

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