例)Oracle
WHERE カラム名 = ’ ’
※二個以上のスペースであっても、’ ’で取得可能です。
WHERE カラム名 = ’ ’
※二個以上のスペースであっても、’ ’で取得可能です。
link:参考になるサイトは?
2005年4月28日 開発【開発全般】
開発に役に立ちそうなTipsが色々あります。
http://ash.jp/
昔のバージョンのSDKがダウンロードできます。
http://java.sun.com/products/archive/index.html
【Eclipse】
かなり重くて、投稿も見づらいですが、知りたい情報もある程度見つかると思います。
http://eclipsewiki.net/eclipse/index.php?FrontPage
プロパティファイルエディタ等がダウンロードできます。プロパティファイルはUnicodeで記述する必要があるので、そこそこ使えそうな気がします(まだ試していませんが)。
http://graze.at.infoseek.co.jp/plugin/
【Swing】
Swingコンポーネントの各サンプルが用意されています。
http://terai.xrea.jp/Swing.html
Swingのサンプルが色々見れます。英語ですが、サンプル画像もあるので読めなくてもある程度は参考になると思います。
http://www.objects.com.au/java/examples.do
上記サイトのサンプルを1.4用(SDK?)にしたもの・・・らしいです。
http://www.physci.org/codes/tame/
Swingのチュートリアルです。サンプルを作成しながら覚えていくという手法を取っています。
初めてでも中々分かりやすい内容になっていると思います。
http://www.javadrive.jp/tutorial/index.html
開発に役に立ちそうなTipsが色々あります。
http://ash.jp/
昔のバージョンのSDKがダウンロードできます。
http://java.sun.com/products/archive/index.html
【Eclipse】
かなり重くて、投稿も見づらいですが、知りたい情報もある程度見つかると思います。
http://eclipsewiki.net/eclipse/index.php?FrontPage
プロパティファイルエディタ等がダウンロードできます。プロパティファイルはUnicodeで記述する必要があるので、そこそこ使えそうな気がします(まだ試していませんが)。
http://graze.at.infoseek.co.jp/plugin/
【Swing】
Swingコンポーネントの各サンプルが用意されています。
http://terai.xrea.jp/Swing.html
Swingのサンプルが色々見れます。英語ですが、サンプル画像もあるので読めなくてもある程度は参考になると思います。
http://www.objects.com.au/java/examples.do
上記サイトのサンプルを1.4用(SDK?)にしたもの・・・らしいです。
http://www.physci.org/codes/tame/
Swingのチュートリアルです。サンプルを作成しながら覚えていくという手法を取っています。
初めてでも中々分かりやすい内容になっていると思います。
http://www.javadrive.jp/tutorial/index.html
Java:1秒は何ミリ秒?
2005年4月27日 開発1秒 = 1000ミリ秒です。
Dateクラス等のコンストラクタがミリ秒等で、よく迷うんですが思い出せなくて別の方法で生成してたなぁ(笑)。
Dateクラス等のコンストラクタがミリ秒等で、よく迷うんですが思い出せなくて別の方法で生成してたなぁ(笑)。
Java:複数のスレッドからアクセスされる変数は何か?
2005年4月27日 開発複数のスレッドからアクセスされる可能性のある変数は下記になります。
・クラス変数
・インスタンス変数
・配列要素
一つのスレッドからしかアクセスされない変数は下記になります。
・メソッド仮引数
・コンストラクタ仮引数
・例外ハンドラ仮引数
・ローカル変数
・クラス変数
・インスタンス変数
・配列要素
一つのスレッドからしかアクセスされない変数は下記になります。
・メソッド仮引数
・コンストラクタ仮引数
・例外ハンドラ仮引数
・ローカル変数
Java:URLとURIの違いって?
2005年4月27日 開発URL:Uniform Resource Locator
・protocol://host:port/file形式
・protocolはftpやhttp等のプロトコルを記述します。
・hostはリソースの取得先を記述します。
・portはサーバのポートを記述します。
・fileはサーバ上のファイルを記述します。
URN:Uniform Resource Name
インターネット上の各種サービスを特定する為の名称です。
URI:Uniform Resource Identifier
元々はURL+URNでしたが、URIに統合されたようです(HTML4.0仕様書ではURIになっています)。
でもまだURLって言葉の方が通りがいいですよね。
・protocol://host:port/file形式
・protocolはftpやhttp等のプロトコルを記述します。
・hostはリソースの取得先を記述します。
・portはサーバのポートを記述します。
・fileはサーバ上のファイルを記述します。
URN:Uniform Resource Name
インターネット上の各種サービスを特定する為の名称です。
URI:Uniform Resource Identifier
元々はURL+URNでしたが、URIに統合されたようです(HTML4.0仕様書ではURIになっています)。
でもまだURLって言葉の方が通りがいいですよね。
Swing:ListenerとAdapterの違いは?
2005年4月27日 開発イベントを処理するクラスは通常該当のListnerをimplementsしますが、WindowAdaperをextendsしている参考サイトがありました。
Listenerをimplementsする場合、各Listenerクラスで定義されているメソッドを全て実装しなければなりませんので(必要なくても)、それを防ぐ為にAdapterはあるみたいです。
AdapterはListenerの実装が必要なメソッドが空で実装されていますので、自分が必要なメソッドだけオーバーライドするだけで済みます。
WindowAdaper以外にもあるのかは調査中です。
上記の意味では全てのListenerに対してあると思うのですが、ちょっと見当たりません・・・。
見つかり次第追加修正します。
Listenerをimplementsする場合、各Listenerクラスで定義されているメソッドを全て実装しなければなりませんので(必要なくても)、それを防ぐ為にAdapterはあるみたいです。
AdapterはListenerの実装が必要なメソッドが空で実装されていますので、自分が必要なメソッドだけオーバーライドするだけで済みます。
WindowAdaper以外にもあるのかは調査中です。
上記の意味では全てのListenerに対してあると思うのですが、ちょっと見当たりません・・・。
見つかり次第追加修正します。
Swing:Swingって?
2005年4月27日 開発JavaでGUIアプリケーションを作成する為のコンポーネントになります。
フレームとかボタンとかテキストエリア等の部品が用意されているので、それを組み合わせる事でブラウザやエディタ等のアプリケーションを作成する事ができます。
次の仕事先がこれらしいので、勉強しようとぐぐったんですが、これが又いいのがないんですよね。
弱った。
次の休みに書籍を買いに行くとして、それまでどうしよう?
取り合えず参考URL
http://msugai.fc2web.com/java/Swing/
http://www.jx-gluck.jp/Aplt/ApltFr.html
http://www.hellohiro.com/swingevent.htm
http://kaiunix.cs.shinshu-u.ac.jp/Lesson/ProgLangT/2004/Java/program.html
http://wisdom.sakura.ne.jp/system/java/swing/swing4.html
http://homepage3.nifty.com/satoshis/java/swingtips/swing.html
http://www.ongs.co.jp/publications/articles/JAVAPRESS/Vol.14/
http://634.ayumu-baby.com/java/#swing
http://www.rsch.tuis.ac.jp/~nagai/GUIswing.html
http://jubilo.cis.ibaraki.ac.jp/~isemba/PROGRAM/JAVA/java.shtml#swing
http://terai.xrea.jp/Swing.html
フレームとかボタンとかテキストエリア等の部品が用意されているので、それを組み合わせる事でブラウザやエディタ等のアプリケーションを作成する事ができます。
次の仕事先がこれらしいので、勉強しようとぐぐったんですが、これが又いいのがないんですよね。
弱った。
次の休みに書籍を買いに行くとして、それまでどうしよう?
取り合えず参考URL
http://msugai.fc2web.com/java/Swing/
http://www.jx-gluck.jp/Aplt/ApltFr.html
http://www.hellohiro.com/swingevent.htm
http://kaiunix.cs.shinshu-u.ac.jp/Lesson/ProgLangT/2004/Java/program.html
http://wisdom.sakura.ne.jp/system/java/swing/swing4.html
http://homepage3.nifty.com/satoshis/java/swingtips/swing.html
http://www.ongs.co.jp/publications/articles/JAVAPRESS/Vol.14/
http://634.ayumu-baby.com/java/#swing
http://www.rsch.tuis.ac.jp/~nagai/GUIswing.html
http://jubilo.cis.ibaraki.ac.jp/~isemba/PROGRAM/JAVA/java.shtml#swing
http://terai.xrea.jp/Swing.html
コメントをみる |

Java:文字化けの対処方法は?
2005年4月24日 開発文字化けは結構悩まされる事が多く、原因もJSP、サーブレット、APサーバ等色々と考えられます。
下記は現時点で調べたメモ書きになりますので、間違っていたりする場合もあるかもしれません。
間違いが分かった時点や不足点はその都度更新したいと思います。
文字コードの設定の優先順位は下記になります。
1.HTTPにおけるContent-Typeヘッダのcharsetパラメータ
2.HTMLのMETA宣言及びhttp-equiv属性で設定された、Content-Typeヘッダのcharsetパラメータ
3.HTMLの各要素のcharset属性
→APサーバの設定もあったような・・・? 分かり次第追加します。
対処例1
下記でJSP内の日本語は文字化けせずに表示されると思います。
JSPにエンコーディングを記述します(JSPファイルをシフトJISで作成した場合)。
<%@ page contentType="text/html; charset=Shift_JIS" %>
→ブラウザにデータを返却する際の文字コード指定します。
<%@ page pageEncoding="Shift_JIS" %>
→JSPをサーブレットに変換する際の文字コード指定します。
※上記の詳細は自分自身まだ良く分かっていないので、分かり次第追加します(笑)。
※JSPファイルをどの文字コードで作成したかによって、該当の文字コードを指定します。
例えばEUCでJSPファイルを作成した場合は、Shift_JISをeuc-jpに変更する必要があります。
下記でStruts(1.1)のリクエストやFormに送信された日本語がサーブレット内で文字化けせずに扱えると思います。
方法1
リクエストからの送信データをどの文字コードで扱うか指定します。
request.setCharacterEncoding("Shift_JIS");
HTMLフォームで入力された日本語文字列はサーブレットエンジンによってISO-8859-1でエンコードされています。
元のバイト列に逆変換してから、文字コードを指定して、Unicodeに変換するようにします。
String input1 = new String(practice1Form.getInput1().getBytes("iso-8859-1"), "Shift_JIS"));
方法2
resetメソッドはFormに値がセットされる前に呼ばれるメソッドです。
ここでエンコード指定を行います。
public void reset(ActionMapping mapping, HttpServletRequest request) {
input1 = "";
input2 = "";
try {
request.setCharacterEncoding("Shift_JIS");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
既にエンコードされているので、特別な処理は必要ないです。
String input1 = practice1Form.getInput1();
Strutsではない場合で特に上記のようなメソッドが用意されていない場合は、1の方を使用するって感じですかね?
※Strutsの場合、フィルタ機能を使用すれば同じようにFormに値がセットされる前に、文字コードの指定ができるようですので、別途調査した後に追加します。
上記でサーブレットから送信された日本語もJSPで文字化けせずに表示されると思います。
参考URL
http://liffey2.ld.infoseek.co.jp/java/japanese/
http://members.at.infoseek.co.jp/ss_yama/java/servlet_japanese.html
http://www2d.biglobe.ne.jp/~msyk/
http://www.ingrid.org/java/jserv/i18n/corruptedchar.html
http://www.atmarkit.co.jp/fjava/rensai3/mojibake01/mojibake01.html
参考書籍
Apache Struts 逆引き大全 345の極意 P67, 71, P404
下記は現時点で調べたメモ書きになりますので、間違っていたりする場合もあるかもしれません。
間違いが分かった時点や不足点はその都度更新したいと思います。
文字コードの設定の優先順位は下記になります。
1.HTTPにおけるContent-Typeヘッダのcharsetパラメータ
2.HTMLのMETA宣言及びhttp-equiv属性で設定された、Content-Typeヘッダのcharsetパラメータ
3.HTMLの各要素のcharset属性
→APサーバの設定もあったような・・・? 分かり次第追加します。
対処例1
下記でJSP内の日本語は文字化けせずに表示されると思います。
JSPにエンコーディングを記述します(JSPファイルをシフトJISで作成した場合)。
<%@ page contentType="text/html; charset=Shift_JIS" %>
→ブラウザにデータを返却する際の文字コード指定します。
<%@ page pageEncoding="Shift_JIS" %>
→JSPをサーブレットに変換する際の文字コード指定します。
※上記の詳細は自分自身まだ良く分かっていないので、分かり次第追加します(笑)。
※JSPファイルをどの文字コードで作成したかによって、該当の文字コードを指定します。
例えばEUCでJSPファイルを作成した場合は、Shift_JISをeuc-jpに変更する必要があります。
下記でStruts(1.1)のリクエストやFormに送信された日本語がサーブレット内で文字化けせずに扱えると思います。
方法1
リクエストからの送信データをどの文字コードで扱うか指定します。
request.setCharacterEncoding("Shift_JIS");
HTMLフォームで入力された日本語文字列はサーブレットエンジンによってISO-8859-1でエンコードされています。
元のバイト列に逆変換してから、文字コードを指定して、Unicodeに変換するようにします。
String input1 = new String(practice1Form.getInput1().getBytes("iso-8859-1"), "Shift_JIS"));
方法2
resetメソッドはFormに値がセットされる前に呼ばれるメソッドです。
ここでエンコード指定を行います。
public void reset(ActionMapping mapping, HttpServletRequest request) {
input1 = "";
input2 = "";
try {
request.setCharacterEncoding("Shift_JIS");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
既にエンコードされているので、特別な処理は必要ないです。
String input1 = practice1Form.getInput1();
Strutsではない場合で特に上記のようなメソッドが用意されていない場合は、1の方を使用するって感じですかね?
※Strutsの場合、フィルタ機能を使用すれば同じようにFormに値がセットされる前に、文字コードの指定ができるようですので、別途調査した後に追加します。
上記でサーブレットから送信された日本語もJSPで文字化けせずに表示されると思います。
参考URL
http://liffey2.ld.infoseek.co.jp/java/japanese/
http://members.at.infoseek.co.jp/ss_yama/java/servlet_japanese.html
http://www2d.biglobe.ne.jp/~msyk/
http://www.ingrid.org/java/jserv/i18n/corruptedchar.html
http://www.atmarkit.co.jp/fjava/rensai3/mojibake01/mojibake01.html
参考書籍
Apache Struts 逆引き大全 345の極意 P67, 71, P404
Java:データソースを利用したコネクションの取得方法は?
2005年4月23日 開発データソースとはプログラムとデータベースへの接続との間のインターフェースです。
データソースを取得するには通常JNDIを使用し、データベースのドライバやURLの情報は外部の設定ファイルにします。
プログラム上ではデータソース名だけを使用してデータソースを取得します(設定変更でコードを変更しないで済みます)。
Javaプログラム上からデータベースに接続する方法は下記の二種類あります(他にもあるのかもしれませんが)。
・DriverManagerを利用
Class.forName("com.mysql.jdbc.Driver");
String _url = "jdbc:mysql:///test?useUnicode-true&characterEncoding=SHIFT_JIS";
_con = DriverManager.getConnection(_url);
・データソースを利用
InitialContext _ic = new InitialContext();
DataSource _ds = (DataSource) _ic.lookup("java:comp/env/jdbc/MySQL");
Connection _con = _ds.getConnection();
※JNDI上のデータソースが利用可能な場合
例)jboss-3.2.6の場合
1.データソース設定ファイルを作成し、C:jboss-3.2.6serverdefaultdeployにコピーする。
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mysql-ds.xml,v 1.1.2.1 2003/12/12 19:19:56 starksm Exp $ -->
<!-- Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql:///test?useUnicode-true&characterEncoding=SHIFT_JIS</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name></user-name>
<password></password>
</local-tx-datasource>
</datasources>
※&を記述する場合は&に変更する。
2.サーバを再起動する。
3.実際のプログラムは下記のように記述します。
InitialContext _ctx = new InitialContext();
DataSource _ds = (DataSource) _ctx.lookup("java:/MySqlDS");
Connection _con = _ds.getConnection();
※DriverManagerから取得する場合はJDBCドライバをC:jboss-3.2.6libに置いていましたが、データソースから取得する場合はここでは駄目でした。
どうもC:jboss-3.2.6serverdefaultlibに置かなければないないようです。
上記で後は取得したコネクションを元にSQLを発行する事が出来ます。
参考URL
http://www.atmarkit.co.jp/fjava/rensai2/eclipse2_05/eclipse05_1.html
http://muimi.com/j/jboss/db/
http://www.hellohiro.com/datasource.htm
http://www63.tok2.com/home2/jd4/defineDS4JBoss.html
データソースを取得するには通常JNDIを使用し、データベースのドライバやURLの情報は外部の設定ファイルにします。
プログラム上ではデータソース名だけを使用してデータソースを取得します(設定変更でコードを変更しないで済みます)。
Javaプログラム上からデータベースに接続する方法は下記の二種類あります(他にもあるのかもしれませんが)。
・DriverManagerを利用
Class.forName("com.mysql.jdbc.Driver");
String _url = "jdbc:mysql:///test?useUnicode-true&characterEncoding=SHIFT_JIS";
_con = DriverManager.getConnection(_url);
・データソースを利用
InitialContext _ic = new InitialContext();
DataSource _ds = (DataSource) _ic.lookup("java:comp/env/jdbc/MySQL");
Connection _con = _ds.getConnection();
※JNDI上のデータソースが利用可能な場合
例)jboss-3.2.6の場合
1.データソース設定ファイルを作成し、C:jboss-3.2.6serverdefaultdeployにコピーする。
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mysql-ds.xml,v 1.1.2.1 2003/12/12 19:19:56 starksm Exp $ -->
<!-- Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql:///test?useUnicode-true&characterEncoding=SHIFT_JIS</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name></user-name>
<password></password>
</local-tx-datasource>
</datasources>
※&を記述する場合は&に変更する。
2.サーバを再起動する。
3.実際のプログラムは下記のように記述します。
InitialContext _ctx = new InitialContext();
DataSource _ds = (DataSource) _ctx.lookup("java:/MySqlDS");
Connection _con = _ds.getConnection();
※DriverManagerから取得する場合はJDBCドライバをC:jboss-3.2.6libに置いていましたが、データソースから取得する場合はここでは駄目でした。
どうもC:jboss-3.2.6serverdefaultlibに置かなければないないようです。
上記で後は取得したコネクションを元にSQLを発行する事が出来ます。
参考URL
http://www.atmarkit.co.jp/fjava/rensai2/eclipse2_05/eclipse05_1.html
http://muimi.com/j/jboss/db/
http://www.hellohiro.com/datasource.htm
http://www63.tok2.com/home2/jd4/defineDS4JBoss.html
Java:PreparedStatementの使用方法は?
2005年4月22日 開発PreparedStatementはSQLのパフォーマンスを向上させる為のクラスです。
発行したSQLをキャッシュする事で、同じSQLを発行する場合に構文チェック等を行わない為、パフォーマンスの向上が期待できます。
とはいっても、実は実際のパフォーマンスはそれほど向上するわけではないです。
PreparedStatementを生成した後、closeするまでに何回も発行するような場合はそれなりに向上すると思いますが、普通は一回発行したらcloseしてしまって、又呼ばれるといった形になると思うので、その場合はデータベース側にキャッシュされている分の恩恵しか得られません。
とはいっても場合によってパフォーマンスが向上するのですから、使ってみましょうという事で(笑)。
1.パラメータ付きSQLを作成する。
例)
Strig sql = "SELECT * FROM TEST WHERE NO = ? AND VALUE = ?";
2.PreparedSttementオブジェクトを生成する。
例)
PreparedSttement stmt = con.prepareStatement(sql);
※conはConnectionクラス
3.実行前にパラメータを設定する。
例)
stmt.setInt(1);
stmt.setString("test");
※NOカラムを数値型、VALUEカラムを文字型とします。
4.実行する。
例)
stmt.executeQuery();
参考URL
http://www.atmarkit.co.jp/fjava/rensai2/webopt11/webopt11.html
参考書籍
Java 逆引き大全550の極意 P.516
発行したSQLをキャッシュする事で、同じSQLを発行する場合に構文チェック等を行わない為、パフォーマンスの向上が期待できます。
とはいっても、実は実際のパフォーマンスはそれほど向上するわけではないです。
PreparedStatementを生成した後、closeするまでに何回も発行するような場合はそれなりに向上すると思いますが、普通は一回発行したらcloseしてしまって、又呼ばれるといった形になると思うので、その場合はデータベース側にキャッシュされている分の恩恵しか得られません。
とはいっても場合によってパフォーマンスが向上するのですから、使ってみましょうという事で(笑)。
1.パラメータ付きSQLを作成する。
例)
Strig sql = "SELECT * FROM TEST WHERE NO = ? AND VALUE = ?";
2.PreparedSttementオブジェクトを生成する。
例)
PreparedSttement stmt = con.prepareStatement(sql);
※conはConnectionクラス
3.実行前にパラメータを設定する。
例)
stmt.setInt(1);
stmt.setString("test");
※NOカラムを数値型、VALUEカラムを文字型とします。
4.実行する。
例)
stmt.executeQuery();
参考URL
http://www.atmarkit.co.jp/fjava/rensai2/webopt11/webopt11.html
参考書籍
Java 逆引き大全550の極意 P.516