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)プログラミング入門」に戻る