炊きたてのご飯が食べたい

定時に帰れるっていいね。自宅勤務できるっていいね。子どもと炊きたてのご飯が食べられる。アクトインディでは積極的にエンジニアを募集中です。

Java入門 - Javaでsitemap.xmlを自動で生成【while( rs.next() )】


Javaの動作環境

WindowsXP

接続先のDB

Oracle

前回は、JavaODBC接続をして、SQLを実行までのソースを紹介しました。
Java入門 - JavaODBC接続をして、SQLを実行【JDBC
http://asobicocoro.com/tips/?p=72
本節では、ローカルのPCからJDBCを使ってDBへ接続し、SQL文を発行して sitemap.xml を抽出するところまで説明します。
sitemap.xmlはなぜ必要なのか?それは、SEO対策の為です。
ロボット巡回型検索エンジンCrawlerに対しHPのサイトマップ構成を正しく認識してもらう為に必要となります。 検索エンジンに対しての最適化(Search Engine Optimization)を行う作業の一環として、サイト構築時に作成しておきましょう。
それでは、sitemap.xmlを生成するJavaのサンプルコードを紹介します。

例としてECサイトをあげます。
DBに登録している商品テーブルから、動的にページを生成しているケースの場合
・商品の説明ページのサンプルURL(リンクは繋がりません)
http://accentplus.blog134.fc2.com/?item=1234
1234が商品コード(product_code)となっていて、数字が切り替わると商品コードに対応した説明ページが表示される。

保存先 C:\Java
ファイル名 write.java
テーブル名/カラム名 item/product_code

[java]import java.sql.; import java.io.; import java.util.*;

class write {

public static void main( String args[] ) {

try {

//JDBCドライバのロード Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ); //各設定 String url = "jdbc:odbc:DB名"; String user = "ユーザー名"; String pass = "パスワード";

String y = null; String mo = null; String d = null; String product_code = null; String update_date = null;

//データベースに接続 Connection con = DriverManager.getConnection( url, user, pass );

System.out.println( "接続成功" );

// SQL文を作成し、情報を取得 String sql = "SELECT product_code, update_dete FROM item";

Statement ps = con.createStatement();

ResultSet rs = ps.executeQuery(sql);

//FileInputStreamオブジェクトの生成 FileOutputStream ec_sitemap = new FileOutputStream("sitemap.xml");

OutputStreamWriter out = new OutputStreamWriter( ec_sitemap, "UTF-8" );

//ファイル実行時の日付を取得 Calendar now = Calendar.getInstance();

y = String.format( "%1$tY", now ); mo = String.format( "%1$tm", now ); d = String.format( "%1$td", now );

out.write( "\n" ); out.write( "\n" ); out.write( "\t\n"); out.write( "\t\thttp://accentplus.blog134.fc2.com/\n" ); out.write( "\t\t" + y + "-"+ mo + "-" + d + "\n" ); out.write( "\t\talways\n" ); out.write( "\t\t1.0\n"); out.write( "\t\n" );

while( rs.next() ) {

product_code = rs.getString( "product_code" ); update_date = rs.getString( "update_date" );

out.write( "\t\n"); out.write( "\t\thttp://accentplus.blog134.fc2.com/?item=" + product_code + "\n" ); out.write( "\t\t" + update_date + "\n" ); out.write( "\t\tweekly\n" ); out.write( "\t\t0.7\n"); out.write( "\t\n" );

System.out.println( "product_code:" + product_code );

}

out.write( "");

//close処理

if( out != null ) {

out.close();

}

//close処理 if( ps != null ) {

ps.close();

}

//データベースを切断 if( con != null ) {

con.close();

}

} catch( Exception e ) {

e.printStackTrace();

}

}

} [/java]

コマンドプロンプトを開き、write.javaが置かれているフォルダまで移動
javaプログラムのコンパイル

> javac write.java

を実行することで、test.classというファイルが作成されます。
●classファイルの実行

>java write

●出力結果

System.out.println( "product_code:" + product_code ); で記述した商品コードが表示されます。

write.javaファイルと同階層に「sitemap.xml」が作成されればOKです。

次節では、作成した sitemap.xml を scp でルートドキュメントに自動アップロードする手順を紹介します
sitemap.xmlの詳しい説明についてはこちらを参照してください。

●sitemaps.org
http://sitemaps.org/ja/protocol.php

指定した本番サーバに、sitemap.xmlが生成されていればOKです。

【第1回】Java入門 - 簡単なサンプルからDB接続してsitemap.xmlサイトマップ)を作成 http://asobicocoro.com/tips/?p=70

【第2回】Java入門 - Javaの開発キッドのインストールと簡単なサンプルの作成【JDK(J2SDK)】 http://asobicocoro.com/tips/?p=71

【第3回】Java入門 - JavaODBC接続をして、SQLを実行【JDBChttp://asobicocoro.com/tips/?p=72

【第4回】Java入門 - Javaでsitemap.xmlを自動で生成【JDBChttp://asobicocoro.com/tips/?p=73

【第5回】Java入門 - sitemap.xml を scp でルートドキュメントに自動アップロード【import ch.ethz.ssh2】 http://asobicocoro.com/tips/?p=74

【第6回】Java入門 - sitemap.xmlウェブマスターツールに登録&タスクスケジューラーで自動更新 http://asobicocoro.com/tips/?p=75