| NetDictionaryで始める Webサービス・プログラミング 4.ICD Webサービスのデータベース処理
|
|
ここまでに解説したADO .NETによるデータベース・アクセスの処理方法を用いて、ICD Webサービスに必要なデータベース処理を行うコンポーネントを記述することができる。次のリストがこのコンポーネントのソースコードだ(ただしリストが少し長いため、解説用に多くの部分を省略している。完全なソースコードはこちら(icddb.cs)を参照していただきたい)。
|
|
| データベース処理コンポーネントのソースコード(抜粋) | |
| ICD Webサービスにおけるデータベース処理はすべてこのコンポーネントで行っている。 | |
プログラムの冒頭部分で定義しているWORDクラスは、1つの見出し語を表すこのコンポーネントの基本データ構造で、見出し語名のほかにそのIDと英文読み、日本語読みを含んでいる。
7: public class WORD { |
そしてICDDBクラスは、次の6つのメソッドを提供している。
public WORD[] GetWordsByTitle(string title, bool partial)
public WORD GetWordById(string id)
public string GetMeaningById(string id)
public WORD[] GetRefsById(string id)
public WORD[] GetAliasesById(string id)
public string GetUrlById(string id)
各メソッドでの処理は、そのメソッド名からおおよそ予想がつくだろう。GetWordsByTitleメソッドは、指定された文字列を検索して、見つかったすべての見出し語を返すメソッドである。第2引数である“partial”には、部分一致による検索のOn/Offを指定する。ここに“true”を指定した場合、見出し語名の一部に検索文字列を含むような見出し語をすべて列挙する。GetWordsByTitleメソッド以外のメソッドで引数となっているidは、ユニークな見出し語のIDである。
少し余談になるが、プログラム内でのSQL文の記述にはC#のverbatim文字列(verbatimは「一字一句変えずに」という意味)を使用している。これはダブル・クオーテーションの前に“@”を付けることによって、ソースコードに記述したままの文字列を生成することができる機能だ。
108: string sql = String.Format(@" |
プログラムでSQL文やHTML文のような長くなりがちな文字列定数を扱う場合、エディタの一行に収まらなかったり、複数の文字列に分割して連結したりして見栄えが悪くなることがよくある。このような場合にverbatim文字列は非常に便利だ。もちろん文字列には改行コードが含まれてしまうが、SQL文では特に問題にならない。
ソースコードの最後では、Mainメソッドを記述し、このコンポーネントの簡単な単体テストを行うためのコードを追加している。このようなコードを付けておけば、ほかのプログラマがこのコードを利用する場合の参考にもなる。
さて今回は、ICD Webサービスのデータベース処理のためのコンポーネントを作成したが、すでにこれでICD Webサービスの約80%はできあがっている。次回は、Webサービスとして公開するメソッドを作成し、最初のバージョンのICD Webサービスを完成させる予定だ。![]()
| INDEX | ||
| [特集]NetDictionaryで始めるWebサービス・プログラミング | ||
| 第4回 辞書データベースへのアクセス | ||
| 1.ヘルプ・ページのテンプレート | ||
| 2.ICDデータベースの構造 | ||
| 3.ADO .NETによるデータベース・アクセス | ||
| 4.ICD Webサービスのデータベース処理 | ||
| 特集 : NetDictionaryプロジェクト |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


