Java入門 - Javaでsitemap.xmlを自動で生成【while( rs.next() )】
Javaの動作環境
接続先のDB
前回は、JavaでODBC接続をして、SQLを実行までのソースを紹介しました。
●Java入門 - JavaでODBC接続をして、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入門 - JavaでODBC接続をして、SQLを実行【JDBC】 http://asobicocoro.com/tips/?p=72
【第4回】Java入門 - Javaでsitemap.xmlを自動で生成【JDBC】 http://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