Marklogic学习 由浅入深(11)—— 第一个Marklogic应用(下)

摘要:前面的章节,我们已经将数据保存到数据库,并能显示到界面上,这一节,我们要操作页面的数据,并将其更新到数据库。

XQuery思路

对于Marklogic数据的更新,可以考虑两个方向,一个是更新节点,一个是更新整个文档。如果已经知道更改哪一字段,用node-replace是合适的,本例中,不知道用户会更新那些数据,因此,可以对整个文档做覆盖来更新数据。

上一节中,我们已经将开发环境集成到了Eclipse,下面我们就把之前的代码复制到迁移到Eclipse中。
1. 在Eclipse下新建一个XQuery工程2,起名bookserver
2. 在bookserver 下新建文件夹src
3. 将之间的代码文件复制过来,代码层次如下

bookserver

对于更新操作,这里的更新代码和之前的插入代码基本一样,这样的逻辑是没问题的,在实际的环境中,有些字段可能需要去特殊处理一下,但是其他的部分代码可以重用。

对于删除操作,和我们常见的接口一致,需要拿到id,然后删除对应的数据。
新建XQuery Module,起名为delete.xqy

xquery version "1.0-ml";
declare namespace html = "http://www.w3.org/1999/xhtml";

let $id := xdmp:get-request-field("id")
let $uri := fn:concat("/book/", $id, ".xml")
let $_ := xdmp:document-delete($uri)
return "success"

前台处理

我们前台展示的部分,在末尾的地方加上一个处理各种操作的链接框。
我们可以将showbook.js做稍微的改动

$("document").ready(function (){
    $.ajax({
        url:"findbook.xqy",
        type:"get",
        dataType:"json",
        success:function(data){
            $.each(data.books.book, function(commentIndex, comment){
                $("#details").append(
                        "<tr>" +
                        "<td> <input type='text'  value="+comment.id+"></td>" +
                        "<td> <input type='text'  value="+comment.title+"></td>" +
                        "<td> <input type='text'  value="+comment.author+"></td>" +
                        "<td> <input type='text'  value="+comment.page+"></td>" +
                        "<td> <a href='delete.xqy?id="+comment.id+"'>Delete</a></td>" +
                        "</td>"
                );
            });
        }
    });
})

运行调试

之前的Marklogic配置需要改一下,以便我们在Eclipse中的更改,可以被Marklogic识别到。
1. 找到项目的路径,在项目上右键,选择最后一项Properties
path
2. 找到我们在Marklogic中对server的配置信息
configure
3. 将其中的root项该为项目的Location路径,记得加上/src
4. 访问展示界面http://localhost:8866/showbook.html
操作
5. 发现多了一个delete的链接,也可以做成按钮之类的样子,或者加上update的功能。
6. 点击Delete,发现跳转到了提示页面
success
7. 再次访问数据展示页面http://localhost:8866/showbook.html,发现删除的数据不见了。
delete

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cj96248

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值