Changes

Jump to navigation Jump to search
3,598 bytes added ,  15:56, 17 January 2016
no edit summary
This page is part of the [[Developer Section]].
The following Java code snippets demonstrate how easy it is to run database commands, create collections, perform queries, etc. via by integrating the BaseX APIcode. Most examples are taken from our [https://github.com/BaseXdb/basex-examples/tree/master/basex-examples/src/main/java/org/basex/examples / basex-examples] repository, in which you will find some more use cases. Note that we recommend everyone to use our own APIs, as they offer better performance and are better supported by our core team. The use of the <code>XML:DB</code> and <code>XQJ</code> APIs is discouraged: as these APIs do not utilize the client/server architecture of BaseX, their use may lead to conflicting database access operations.
<div style="float:left; width:48%;">
==Local Examples==
;[https://github.com/BaseXdb/basex-examples/blob/master/src/main/java/org/basex/examples/query/RunCommands.java RunCommands.java]
:creates and drops database and index instances, prints a list of all existing databases.
 
;[https://github.com/BaseXdb/basex-examples/blob/master/src/main/java/org/basex/examples/WikiExample.java WikiExample.java]
:creates a database from an url (wiki instance), runs a query against it and drops the database.
 
;[https://github.com/BaseXdb/basex-examples/blob/master/src/main/java/org/basex/examples/query/RunQueries.java RunQueries.java]
:shows three variants of running queries.
The following code snippets work in ''embedded'' mode;[httpsthey do not rely on an additional server instance://github.com/BaseXdb/basex-examples/blob/master/src/main/java/org/basex/examples/query/CreateCollection.java CreateCollection.java]:creates and manages a collection.
;* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/local/RunCommands.java RunCommands.java]<br/>creates and drops database and index instances, prints a list of all existing databases.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/local/RunQueries.java RunQueries.java]<br/>shows three variants of running queries.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/local/BindContext.java BindContext.java]<br/>demonstrates how a value can be bound as context item.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/local/BindVariables.java BindVariables.java]<br/>demonstrates how a value can be bound to a variable.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/local/CreateCollection.java CreateCollection.java]<br/>creates and manages a collection.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/querylocal/QueryCollection.java QueryCollection.java]:<br/>creates, runs queries against it and drops a collection.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/local/WikiExample.java WikiExample.java]<br/>creates a database from an url (wiki instance), runs a query against it and drops the database.
==Server Examples==
;[https://github.com/BaseXdb/basex-examples/blob/master/src/main/java/org/basex/examples/server/ServerCommands.java ServerCommands.java]
:launches server-side commands using a client session.
;[https://github.com/BaseXdb/basex-examples/blob/master/src/main/java/org/basex/The examplesbelow take advantage of the client/server/ServerAndLocal.java ServerAndLocal.java]architecture:processes server results locally.
;* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/server/ServerCommands.java ServerCommands.java]<br/>launches server-side commands using a client session.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/server/ServerAndLocal.java ServerAndLocal.java]<br/>processes server results locally.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/server/ServerConcurrency.java ServerConcurrency.java]<br/>runs concurrent queries.* [https:runs concurrent //github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/server/ServerQueries.java ServerQueries.java]<br/>shows how iterative queriescan be performed.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/server/UserExample.java UserExample.java]<br/>manages database users.
;[https://github.com/BaseXdb/basex-examples/blob/master/src/main/java/org/basex/examples/UserExample.java UserExample.java]:manages database users.==XQuery Module Examples==
==BaseX provides [[REST APIJava Bindings]] Examples==for accessing external Java code via XQuery functions. The following examples show how this feature can be utilized:
;* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/module/FruitsExample.java FruitsExample.java]<br/>demonstrates how Java classes can be imported as XQuery modules.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/module/FruitsModule.java FruitsModule.java]<br/>is a simple demo module called by {{Code|FruitsExample}}.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/restmodule/RESTGetModuleDemo.java RESTGetModuleDemo.java]<br/>is a simple XQuery demo module that demonstrates how XQuery items can be processed from Java. It is derived from the {{Code|QueryModule}} class.* [https:presents //github.com/BaseXdb/basex/blob/master/basex-core/src/main/java/org/basex/query/QueryModule.java QueryModule.java]<br/>is located in the BaseX core. Java query modules can extend this class to get access to the HTTP GET methodcurrent query context and enrich functions with properties ().
</div><div style="float:left;[httpswidth:4%;">&nbsp;<//github.com/BaseXdb/basex-examples/blob/master/src/main/java/org/basex/examples/rest/RESTPost.java RESTPost.java]div><div style="float:left; width:presents the HTTP POST method.48%;">
;[https://github.com/BaseXdb/basex-examples/blob/master/src/main/java/org/basex/examples/rest/RESTPut.java RESTPut.java]:presents the HTTP PUT method.==XQJ API==
;The implementation of the [http://xqj.net/basex/ BaseX XQJ API] (closed-source) has been written by Charles Foster. It uses the client/server architecture.The basex-examples repository contains [https://github.com/BaseXdb/basex-examples/blobtree/master/basex-examples/src/main/java/org/basex/examples/rest/RESTDelete.java RESTDelete.javaxqj various examples]:presents the HTTP DELETE methodon how to use XQJ.
==XML:DB [[Clients|Client API Examples]]==
;* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/api/BaseXClient.java BaseXClient.java]<br/>provides an implementation of the [[Server Protocol]].* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/api/Example.java Example.java]<br/>demonstrates how commands can be executed on a server.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/api/QueryExample.java QueryExample.java]<br/>shows how queries can be executed in an iterative manner.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/api/QueryBindExample.java QueryBindExample.java]<br/>shows how external variables can be bound to XQuery expressions.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/xmldbapi/XMLDBCreateCreateExample.java XMLDBCreateCreateExample.java]<br/>shows how new databases can be created.* [https:creates a collection using XML//github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/api/AddExample.java AddExample.java]<br/>shows how documents can be added to databases, and how existing documents can be replaced.* [https:DB//github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/api/BinaryExample.java BinaryExample.java]<br/>shows how binary resource can be added to and retrieved from the database.
;==[https://github.com/BaseXdb/basex-examples/blob/master/src/main/java/org/basex/examples/xmldb/XMLDBQuery.java XMLDBQuery.java[REST API]]:runs a query using XML:DB.==
;* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/rest/RESTGet.java RESTGet.java]<br/>presents the HTTP GET method.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/xmldbrest/XMLDBInsertRESTPost.java XMLDBInsertRESTPost.java]<br/>presents the HTTP POST method.* [https:inserts a document into a database using XML//github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/rest/RESTPut.java RESTPut.java]<br/>presents the HTTP PUT method.* [https:DB//github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/rest/RESTAll.java RESTAll.java]<br/>runs all examples at one go.
==XQJ XML:DB API Example(deprecated)==
;[httpsNote that the XML://github.com/BaseXdb/basex-examples/blob/master/src/main/java/org/basex/examples/xqj/XQJQuery.java XQJQuery.java]:runs a query using XQJDB API does not talk to the server and can thus only be used in embedded mode.
* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/xmldb/XMLDBCreate.java XMLDBCreate.java]<br/>creates a collection using XML:DB.* [Categoryhttps:Developer//github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/xmldb/XMLDBQuery.java XMLDBQuery.java]<br/>runs a query using XML:DB.* [https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/org/basex/examples/xmldb/XMLDBInsert.java XMLDBInsert.java]<br/>inserts a document into a database using XML:DB.</div>__NOTOC__
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu