JDOQLによる検索について (3/4)
作成:2010-05-07 15:25
更新:2010-05-10 17:34
更新:2010-05-10 17:34
■クエリーを実行する
このQueryクラスを利用したやり方の他に、SQLなどと同様にクエリーをテキストとして用意し、実行させることも可能です。ただし、SQLではなく、「JDOQL」という独自のクエリー言語を使うことになりますが……。
では、これもサンプルを作成してみましょう。まずはWebページの作成からです。ここではfind2.htmlとしてページを作成しましょう。ここで行っているのは、find.htmlと似たようなものです。
ここでは、送信先として、"/find2?find=" + encodeURI(str)というように指定をしていますね。これで、/find2というアドレスにサーブレットを用意すればよいことになります。web.xmlに追記をして、FindData2Servletというサーブレットが受け取り、処理するようにしておきましょう。これに、クエリーを直接実行するための処理を用意しておけばよいわけですね。
では、これもサンプルを作成してみましょう。まずはWebページの作成からです。ここではfind2.htmlとしてページを作成しましょう。ここで行っているのは、find.htmlと似たようなものです。
ここでは、送信先として、"/find2?find=" + encodeURI(str)というように指定をしていますね。これで、/find2というアドレスにサーブレットを用意すればよいことになります。web.xmlに追記をして、FindData2Servletというサーブレットが受け取り、処理するようにしておきましょう。これに、クエリーを直接実行するための処理を用意しておけばよいわけですね。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※find2.htmlのソースコード <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>データの検索</title> <script type="text/javascript" src="lib.js"></script> <script type="text/javascript"> <!-- function findData(){ var request = createHttpRequest(); if (request == null){ alert("HttpRequestが取得できませんでした。"); return; } var str = document.getElementById("find").value; var uri = "/find2?find=" + encodeURI(str); request.open("GET",uri,true); request.setRequestHeader("User-Agent","XMLHttpRequest"); request.onreadystatechange = function(){ if (request.readyState == 4 && request.status == 200){ callback(request); } } request.send(); } function callback(request){ var json = eval(request.responseText); var res = ''; for (var i = 0;i < json.length;i++){ res += '<tr><td>' + json[i].id + '</td>' + '<td>' + json[i].title + '</td>' + '<td>' + json[i].date + '</td>' + '</tr>'; } var obj = document.getElementById("datatable"); obj.innerHTML = res; } //--> </script> </head> <body> <h1>データの検索</h1> <table> <tr> <td>FIND:</td> <td><textarea id="find" cols="40" rows="3"></textarea></td> </tr> <tr> <td></td> <td><input type="button" value="GET" onclick="findData();"></td> </tr> </table> <br> <table id="datatable" border="1"> <tr> <td>no data.</td> </tr> </table> <br> </body> </html> ※web.xmlへの追記 <servlet> <servlet-name>find2_data</servlet-name> <servlet-class>jp.tuyano.FindData2Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>find2_data</servlet-name> <url-pattern>/find2</url-pattern> </servlet-mapping>
※関連コンテンツ
「Google App Engine for Java(GAE/J)プログラミング入門」に戻る