Domino の Java プログラム 講座 (初級編 パス名の取得)

データベースにアクセスする際に、導入されるデータベースの保存されているディレクトリが何かの事情で変わってもいいように、フルパスでハードコードすることはやはりしない方がいいことです。

そこで、パスを実行時に取得するための方法をご紹介してみたいと思います。

ここでの前提はエージェントが起動されたデータベースが保存されているディレクトリに、また他のデータベースがあり、それをアクセスしに行く、というものです。
あるディレクトリにまとめてデータベース群を導入する、というのは通常行われることですので、それにあわせて作ってみました。


まず最初に現在のコンテキストでデータベースオブジェクトを作成します。

Database dbCur = agentContext.getCurrentDatabase();

そのデータベースオブジェクトに対して、そのファイルパスを getFilePath で取得します。
以下の処理ではファイル名の部分を引いて、パス部分のみを抜き出す処理をしています。

String strDBPath = dbCur.getFilePath().substring(0, dbCur.getFilePath().length() - dbCur.getFileName().length());

セッションオブジェクトからサーバー名を取得し、ファイル名を先ほど取得したパスにつけてアクセスします。

String strServer = session.getServerName() ;
Database db = session.getDatabase( strServer, strDBPath + "DatabaseFile.nsf");
import lotus.domino.*;

public class JavaAgent extends AgentBase {

public void NotesMain() {

try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

// (Your code goes here)
Database dbCur = agentContext.getCurrentDatabase();
String strDBPath = dbCur.getFilePath().substring(0, dbCur.getFilePath().length() - dbCur.getFileName().length());
String strServer = session.getServerName();
String strDBFile = strDBPath + "JBasic.nsf";
Database db = session.getDatabase( strServer, strDBPath + "JBasic.nsf");
// Database db = session.getDatabase( strServer, strDBFile);

Document doc = agentContext.getDocumentContext();
getAgentOutput().println("Content-type: text/html");
getAgentOutput().println("<br><br>");
getAgentOutput().println("<h2>パス取得のテスト</h2><br>");
getAgentOutput().println("サーバー名 ==> " + strServer +"<br>");
getAgentOutput().println("DBパス ==> " + strDBPath +"<br>");
getAgentOutput().println("ファイル名 ==> " + strDBFile +"<br>");

} catch(Exception e) {
e.printStackTrace();
}
}
}

ファイル名やパス名がどうなっているかを見てみましょう。

[Top Pageに戻る]

[PR] | ハウスクリーニング葬儀 東京韓国食材転職サイトSEOアクセス解析ハウスメーカーレンタルオフィスSEO対策消費者金融不動産担保ローン時計車 買取ハワイハワイ挙式アスクル転職生命保険テンプレート沖縄旅行動画FX免許合宿二輪引越し消費者金融税理士ゴルフ会員権留学レーシックマッサージ貸し店舗FX投資信託くりっく365アフィリエイト育毛剤FXホームページ制作デイトレードFXホノルルマラソンベスト ハワイ ホテル レーツバリ島ハワイウエディングHawaii hotelsHawaii Activitiesbhhr
【運営会社「パラダイムシフト」サービス】 ハワイ現地オプショナルツアーリラックマ.ビジネスクラス ハワイ) - ビジネスクラス航空券 - 格安航空券(1) - 格安航空券(2) - 海外ホテル - 韓国旅行
無料ホームページ作成 - レンタルサーバー - 携帯ホームページ - ブログ - ホテル 予約 - 格安航空券 - 長期滞在 - タイムシェア - ヴィラ - ハワイ コンドミニアム - バリ島 ホテル
[PR] 1番高くバイクを売れる業者を探しませんか?厳選サイトをご紹介