摘要: 通过前面几节的介绍,你是否已经隐约感受到了Marklogic的强大,这一节开始,我将逐步讲解Marklogic在项目中是如何体现其价值的。
背景
之前写过一个练习项目,是关于网上书城的工程。大概用到了 Java、jsp、js、Tomcat、MySQL等方面知识实现了前端展示与后台管理模块。这里我将利用Marklogic、html、js等方面知识实现网上书店的后台管理功能。
配置
- 请确保你已经安装好了Marklogic. 我的版本是Marklogic 8.0-4
- 链接到http:localhost:8000/console.
- 已经创建好了可用的数据库. 我的数据库名为Teaching
编码
- 首先有一个保存图书的界面:savebook.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>Save Book</title>
</head>
<body>
<div align="center">
<form action="save.xqy">
<h3 align="center">保存书籍</h3>
I D:<input type="text" name="id"><br>
目录:<input type="text" name="category"><br>
标题:<input type="text" name="title"><br>
作者:<input type="text" name="author"><br>
页数:<input type="text" name="pages"><br>
<input type="submit" value="提交" style="width:50px">
</form>
</div>
</body>
</html>
2 . 注意到form请求提交到了 save.xqy
xquery version "1.0-ml";
declare namespace html = "http://www.w3.org/1999/xhtml";
let $id := xdmp:get-request-field("id")
let $category := xdmp:get-request-field("category")
let $title := xdmp:get-request-field("title")
let $author := xdmp:get-request-field("author")
let $pages := xdmp:get-request-field("pages")
let $book := element book {
attribute id {$id},
attribute category {$category},
element title {$title},
element author {$author},
element pages {$pages}
}
return xdmp:document-insert(concat("/book/",$id,".xml"),$book)
执行
- 先将编写好的代码,放到保存在本地,我在E盘下创建一个Marklogic工作空间。
- 建立一个HTTP服务
- 登陆到AdminPage,我的服务在本地 http://localhost:8001/
- Configure – > Default –> App Servers – > Create HTTP
- 在http server 面板填入相关信息:server name 取bookstore, root路径填刚才保存代码的路径,port端口号填一个数字,尽量填大一点的数字,我填8899,数据库选Teaching。
- 访问http://localhost:8899/savebook.html,来到保存图书的页面,填入一组图书信息,点击提交。
- 在qconsole页面,查看一下这条记录。