IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
※ 1.x 系の情報です。 2014/07/23 OAuth関連記事修正 Play framework について何か備忘録でも書いていこうかと思ったけど(Wicket の記事みたいに)、ドキュメントが充実しているのでその必要は無かった。わからないことがあった場合はとりあえずここを見ればほとんどの場合解決する。かなりわかりやすく書いてあってとても便利。他には、CodeZineの記事もわかりやすい。 Struts や Wicket などの他の Java 製 Web アプリケーションフレームワークと比べていろんな部分で簡単で作りやすいうえ、DBアクセスのための機能も備わっているのがありがたい(しかも素の JPA を使うよりもずっと簡単)。eclipse にインポートするための設定ファイルを作ってくれたり、ホットデプロイ(と呼んでいいのかそもそも疑問だが)によりサーバを起動しっぱなしでソースの修正
昨日はコンソールから叩いてみましたが、今日はJavaからアクセスしてみようと思います。 Downloads · mongodb/mongo-java-driver · GitHub から、最新のjarをダウンロードしてビルドパスに追加します。 Mongoをホストとポートを指定して作って、そこからDBを取得します。 必要なDBCollectionを取ってきて、それに対して色々と操作します。 insert:ドキュメントの挿入 find:ドキュメントの検索 update:ドキュメントの更新 remove:ドキュメントの削除 基本的な使い方はコードの通りですね。 import java.util.Set; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import
では、複数のデータベースに対してアクセスする場合、どのようにすれば原子性を保証できるのでしょうか。これを解決するのが、図 2 に示す 2 フェーズコミットと呼ばれる方法です。 2 フェーズコミットでは、図 2 のようにトランザクションのコミット処理を 2 段階のフェーズにわけることによって原子性を保証します。ちなみに図 2 の UML 表記は、厳密ではありません。どのようなメッセージが交換されるのかについてのみ注目してください。 第 1 フェーズでは、まず、各データベースに対してコミットできる状態であるかどうかを確認するための準備 ( 図 2 の prepare ) の指示を送ります。これを受けた各データベースは、コミットできる状態かどうかをアプリケーションに伝えます。この処理を「投票する」と呼びます。コミットができる状態であれば、コミット予定の内容を確定させた後、アプリケーションに対して
Java の研修で DB(だいたいMDBかな) にアクセスするプログラムを作ることになったとき、講師はほぼ 100% 「JDBC Driver を使用するためには Class.forName を使用します」と言うはず。ただ、呪文のごとく。 で、Class.forName の API を見てみる。 forName(String name, boolean initialize, ClassLoader loader) 指定されたクラスローダを使って、指定された文字列名を持つクラスまたはインタフェースに関連付けられた Class オブジェクトを返します そして疑問が生まれる。「クラスをロードするだけでなんでDBにアクセスできるようになるの?」と。 講師はなぜできるかは説明しない。分かってないってことは無いと思うけど「まだ初心者だから覚えとけばいい」的な感じだろう。 けど、ここは言わせてもらう!
はじめに 今回は、応用編第2回としてConditionBean/OutsideSql(外だしSQL)両方における「ページング検索」を見て行きます。 ページング検索 ページング検索とは? まずは基本的な概念から説明します。 ここで言うページング検索とは、以下のようなページングナビゲーションを 付与する検索画面の検索処理を前提としてます。 図1 ページングナビゲーションの例 そして、これら要素満たすために必要な処理は以下の3つの処理です。 リスト1 ページング処理の基本 1. ページングなし件数取得 → ページングをしなかった場合の件数を取得し、総ページ数などの導出要素とする。 → ページング検索画面のページングナビゲーションの実装において必須の処理となる。 2. ページング実データ検索 → ページング絞りの条件で絞られた取得したい実データのリスト検索。 3. ページング結果計算処理 → ペー
送金のトランザクション処理パターンでは、Google App Engine (GAE)のEntity Groupにまたがるトランザクション処理を行う方法について紹介しました。また、それに少しだけ最適化を施した結果、下図のような処理になりました。 しかし、このトランザクション処理はいくつかの制約があります。 (a) 送金中に合計金額がずれる (b) 送金先の口座に制約をかけられない このトランザクションはEventual Consistency (結果整合性)というレベルの整合性保証しかしないため、2つのEntity Groupの値にずれが発生する場合があります(a)。たとえば、口座(A)から口座(B)に1000円だけ送金する場合、(1)と(2)の間は「口座(A)から出金したが、口座(B)に入金されていない」という状態になります。 また、送金元の口座に制約はかけられますが、送金先の口座に制約
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く